sysoce/laravel-translation

提供翻译服务与您的Laravel应用之间的翻译字典层。

v1.0.2 2018-11-12 05:34 UTC

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\HasHashIdTraitSysoce\Translation\Traits\TranslationTrait特质

无论扩展还是替换,您都需要在配置中指定您的新模型。为此,您必须在发布配置后更新配置文件中的models.translation值。

测试

./vendor/bin/phpunit

贡献

有关详细信息,请参阅CONTRIBUTING

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件