shishima / laravel-translate-spreadsheet
此包用于翻译电子表格文件
Requires
- php: ^8.1
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- phpoffice/phpspreadsheet: ^1.29
- stichoza/google-translate-php: ^5.1
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
此包用于将电子表格文件内的内容翻译成您希望的语言
安装
您可以通过composer安装此包
composer require shishima/laravel-translate-spreadsheet
发布配置
php artisan vendor:publish --provider="Shishima\TranslateSpreadsheet\TranslateSpreadsheetServiceProvider"
发布配置文件后,您可以编辑app/config/translate-spreadsheet.php文件来自定义设置。
使用方法
translate
文件可以是系统上的文件路径
use Shishima\TranslateSpreadsheet\Facades\TranslateSpreadsheet; $fileInput = public_path('demo.xlsx'); TranslateSpreadsheet::translate($fileInput);
或者它可以是使用POST
方法提交表单时从request
中检索到的文件。
TranslateSpreadsheet::translate($request->file('file'));
setTransTarget
设置所需的翻译目标语言
TranslateSpreadsheet::setTransTarget('en')->translate($file);
setTransSource
设置所需的翻译源语言
TranslateSpreadsheet::setTransSource('en')->translate($file);
重要!如果您想使用语言检测,请传递null
setShouldRemoveSheet
在翻译完成后清除当前的工作表。传递给方法的是true/false
参数。
TranslateSpreadsheet::setShouldRemoveSheet(true)->translate($file);
setOutputDir
翻译后存储文件的目录
TranslateSpreadsheet::setOutputDir('translate/')->translate($file);
重要!文件将存储在public
目录中,而不是storage
目录中。
setCloneSheetPosition
克隆工作表的位置
传递的参数是枚举ClonePosition
。您可以在文件Enumerations/ClonePosition.php中查看更多详细信息。
use Shishima\TranslateSpreadsheet\Enumerations\ClonePosition; TranslateSpreadsheet::setCloneSheetPosition(ClonePosition::AppendLastSheet)->translate($file);
highlightSheet
导出后将突出显示工作表
TranslateSpreadsheet::highlightSheet(true)->translate($file);
translateSheetName
导出后将翻译工作表名称
TranslateSpreadsheet::translateSheetName(true)->translate($file);
enableDebug
将翻译句子记录到日志文件中,用于调试目的
TranslateSpreadsheet::enableDebug()->translate($file);
要禁用此功能,请将false
作为参数传递。
翻译引擎
该包支持两种翻译引擎:Google Translate和Gemini
您可以通过配置文件中的translate_engine
设置进行安装
或者,您可以使用setTranslateEngine函数。要传递的参数是枚举TranslateEngine,可以是TranslateEngine::Gemini
或TranslateEngine::Google
use Shishima\TranslateSpreadsheet\Enumerations\TranslateEngine; TranslateSpreadsheet::setTranslateEngine(TranslateEngine::Gemini)->translate($file);
Google Translate
无需设置
Gemini
此功能是从google-gemini-php/laravel库开发的
因此,请在使用之前安装此包
测试
composer test
演示
以下仓库可以作为如何使用它的参考。
https://github.com/shishima123/laravel-translate-spreadsheet-demo
变更日志
请参阅CHANGELOG以获取更多有关最近更改的信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件shishima21@gmail.com报告,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。
Laravel Package Boilerplate
本包是使用Laravel Package Boilerplate生成的。