sysoce / laravel-translation
提供翻译服务与您的Laravel应用之间的翻译字典层。
Requires
- php: >=7.0
Requires (Dev)
- fzaninotto/faker: ^1.8
- orchestra/testbench: ~3.5
- phpunit/phpunit: ^7.2
This package is auto-updated.
Last update: 2024-09-12 19:13:34 UTC
README
此包提供了翻译服务与您的Laravel应用之间的翻译字典层。字典层可用于避免成本并加快重复翻译的速度。当您通过翻译服务翻译文本时,翻译将保存到您的数据库中,并在您下次翻译相同的文本时使用,而不是使用翻译服务。
安装
Laravel
此包适用于Laravel 5.4或更高版本。
在Laravel 5.5中,服务提供程序将自动注册。在框架的旧版本中,只需在config/app.php
文件中添加服务提供程序即可。
'providers' => [ // ... Sysoce\Translation\TranslationServiceProvider::class, ];
您可以使用以下方式发布迁移
php artisan vendor:publish --provider="Sysoce\Translation\TranslationServiceProvider" --tag="migrations"
迁移发布后,您可以运行迁移来创建翻译表
php artisan migrate
您可以使用以下方式发布配置文件
php artisan vendor:publish --provider="Sysoce\Translation\TranslationServiceProvider" --tag="config"
用法
客户端
要使用此包,您需要连接到翻译服务。此包提供了对Google Cloud Translate的原生包装。要使用此翻译客户端,您需要安装Google Cloud Translate包。
composer require google/cloud-translate
在发布的config/translation.php
配置文件中输入从Google Cloud Console获得的JSON密钥文件的路径,或者简单地在.env文件中指定路径
/* * If the client requires a key file, enter its path below. */ 'keyFilePath' => env('GOOGLE_APPLICATION_CREDENTIALS', ''),
您可以通过实现Sysoce\Translation\Contracts\Client接口来为其他翻译服务创建包装器。
使用翻译字典层
要使用翻译字典层
// Set source language for translation app(Translation::class)->setSource('en'); // Set target language for translation app(Translation::class)->setTarget('ja'); // Translate text $translation = app(Translation::class)->translate('hello'); // Print translation (outputs 'こんにちは') echo $translation->text
扩展
如果您需要扩展现有的Translation
模型,请注意
- 您的
Translation
模型需要扩展Sysoce\Translation\Models\Translation
模型
如果您需要替换现有的Translation
模型,您需要考虑以下事项
- 您的
Translation
模型需要实现Sysoce\Translation\Traits\HasHashIdTrait
和Sysoce\Translation\Traits\TranslationTrait
特质
无论扩展还是替换,您都需要在配置中指定您的新模型。为此,您必须在发布配置后更新配置文件中的models.translation
值。
测试
./vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。