oss-tools / laravel-auto-translate
使用谷歌翻译自动翻译您的语言文件
Requires
- php: ^8.0.2
- google/cloud: ^v0.196.0
- illuminate/support: ^9.0 || ^10.0
- oss-tools/laravel-langman: ^2.0
- oss-tools/laravel-libretranslate: ^1.0.0
- scn/deepl-api-connector: ^2
- stichoza/google-translate-php: ^5.0.1
Requires (Dev)
- mockery/mockery: ^1.4.0
- orchestra/testbench: ^7.0 || ^8.0
- phpunit/phpunit: ^9.5.10 || ^10.1
README
使用此包,您可以使用翻译服务翻译您的语言文件。该包附带免费版谷歌翻译、谷歌翻译API和Deepl。
指定源语言和目标语言,它将自动翻译您的文件。如果您想快速原型设计或只是对翻译有一个初步的想法以供稍后编辑,这很有用。该包附带两个 artisan 命令。一个用于翻译源语言中设置但目标语言中没有的翻译。另一个用于翻译所有源语言文件,并覆盖目标语言中的所有内容。
注意
此包是 ben182/laravel-auto-translate 的分叉。
安装
此包可用于 Laravel 5.6 或更高版本,并需要 PHP 7.2 或更高版本。
您可以通过 composer 安装此包
composer require oss-tools/laravel-auto-translate
配置
安装后发布配置文件
php artisan vendor:publish --provider="OSSTools\AutoTranslate\AutoTranslateServiceProvider"
您可以在其中指定源语言、目标语言(s)、翻译器和语言文件路径。
翻译器
如果您有很多翻译要做,我推荐谷歌云翻译或Deepl。它们速度快,可靠,您不会遇到任何速率限制。
用法
缺失的翻译
只需调用 artisan 缺失命令以翻译在源语言中设置但目标语言中没有的翻译
php artisan autotrans:missing
例如,您将英语设置为源语言。源语言在 auth.php 中有翻译
<?php return [ 'failed' => 'These credentials do not match our records.', 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', ];
您的目标语言是德语。auth.php 文件有以下翻译
<?php return [ 'failed' => 'Diese Kombination aus Zugangsdaten wurde nicht in unserer Datenbank gefunden.', ];
artisan 缺失命令将翻译缺少的 auth.throttle 键。
所有翻译
要覆盖所有现有目标语言密钥,并使用源语言的翻译,只需调用
php artisan autotrans:all
这将覆盖所有密钥,并使用等效源语言密钥的翻译。
参数
有时您有像这样的翻译
'welcome' => 'Welcome, :name',
它们可以用变量替换。当我们将这些占位符传递给翻译服务时,有时会发生奇怪的事情。有时占位符以大写字母返回或已被翻译。幸运的是,该包将尊重您的变量占位符,因此翻译后将保持相同。
扩展
您可以通过创建一个实现 \OSSTools\AutoTranslate\Translators\TranslatorInterface 的类来创建自己的翻译器。只需在配置文件中引用它即可。
测试
composer test
更新日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。
Laravel 包模板
此包是使用 Laravel 包模板 生成的。