zubs / translator
一个简单的Laravel扩展包,可以实现语言之间的翻译
v1.0.0
2023-10-19 13:32 UTC
Requires
- guzzlehttp/guzzle: ^7.8
This package is auto-updated.
Last update: 2024-09-20 23:39:27 UTC
README
一个简单的Laravel扩展包,可以实现语言之间的翻译。
安装
您可以使用以下命令通过composer安装此包
composer require zubs/translator
然后,服务提供程序将自动注册。
使用方法
方法
此包提供了Zubs\Translator\Translate,它提供了以下方法
所有方法都会缓存结果以提高性能。缓存默认为24小时,但可以通过向方法传递额外的参数来更改。
使用getLanguages()获取所有可用语言
此函数定义如下
public function getLanguages(string $target = 'en', int $ttl = self::DEFAULT_CACHE_TIME): array
target参数是可选的,默认为en。这是返回数组将被翻译成的语言。ttl用于设置缓存存储的时间。默认为1天。
该函数返回一个包含所有可用语言的数组,格式为code => language,如下所示
[
'en' => 'English',
'fr' => 'French',
'es' => 'Spanish',
]
使用getLanguageCodes()获取所有可用语言的代码
此函数定义如下
public function getLanguageCodes(int $ttl = self::DEFAULT_CACHE_TIME): array
此函数只接受一个参数ttl,并返回与getLanguages()函数相同的数组,但不包含语言名称。如下所示
[
'en',
'fr',
'es',
]
ttl用于设置缓存存储的时间。默认为1天。
使用detectLanguage()检测字符串的语言
此函数定义如下
public function detectLanguage(string $text, int $ttl = self::DEFAULT_CACHE_TIME): string
此函数接受一个必选字符串参数text,还可以接受一个可选参数ttl。ttl用于设置缓存存储的时间。默认为1天。该函数返回字符串所使用的语言代码。如下所示
detectLanguage('Hello world!'); // returns 'en'
使用translate()翻译字符串
此函数定义如下
public function translate ( string $text, string $to, string $from = null, int $ttl = self::DEFAULT_CACHE_TIME ): string
此函数接受一个必选字符串参数text并返回翻译后的字符串。to参数是要将字符串翻译成的语言代码。from参数是字符串所使用的语言代码。如果未提供from参数,函数将尝试检测字符串的语言。ttl用于设置缓存存储的时间。默认为1天。
函数可以使用如下所示
translate('Hello world!', 'fr'); // returns 'Bonjour le monde!' translate('Hello world!', 'fr', 'en'); // returns 'Bonjour le monde!'
API
此包还公开了一些API端点,可以用来实现上述方法相同的结果。
GET /languages- 返回所有可用语言GET /language/codes- 返回所有可用语言的代码POST /detect-language- 返回字符串所使用的语言代码POST /translate- 返回翻译后的字符串