flemzord / laravel-auto-translate
使用 Google Translate 自动翻译您的语言文件
Requires
- php: ^7.3
- google/cloud: ^0.140.0
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^5.6||^6.6||^7.0||^8.0
- scn/deepl-api-connector: dev-master
- stichoza/google-translate-php: ^4.1
- themsaid/laravel-langman: ^1.3
Requires (Dev)
- mockery/mockery: ^1.2
- orchestra/testbench: ^3.6||^4.0||^5.0
- phpunit/phpunit: ^8.0||^9.0
README
使用此包,您可以使用翻译服务翻译语言文件。该包附带免费版 Google Translate、Google Translate API 和 Deepl。
指定源语言和目标语言,它会自动翻译您的文件。如果您想快速进行原型设计或只是对翻译有一个初步的了解以便稍后编辑,这很有用。该包附带两个 artisan 命令。一个用于翻译源语言中设置但目标语言中没有的所有缺失翻译。另一个用于翻译所有源语言文件并覆盖目标语言中的所有内容。
安装
此包可用于 Laravel 5.6 或更高版本,需要 PHP 7.2 或更高版本。
您可以通过 composer 安装此包
composer require Flemzord/laravel-auto-translate
配置
安装后发布配置文件
php artisan vendor:publish --provider="Flemzord\AutoTranslate\AutoTranslateServiceProvider"
您可以在其中指定源语言、目标语言(复数)、翻译器和语言文件的路径。
翻译器
如果您有很多翻译要做,我建议使用 Google Cloud Translate 或 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',
它们可以用变量替换。当我们将这些占位符传递给翻译服务时,可能会发生奇怪的事情。有时占位符以大写字母返回,或者已被翻译。幸运的是,该包将尊重您的变量占位符,因此翻译后将保持相同。
扩展
您可以通过创建一个实现 \Flemzord\AutoTranslate\Translators\TranslatorInterface
的类来创建自己的翻译器。只需在配置文件中引用它。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 moin@benjaminbortels.de 而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。
Laravel 包模板
此包是使用 Laravel 包模板 生成的。