zubs/translator

一个简单的Laravel扩展包,可以实现语言之间的翻译

安装: 1

依赖: 0

建议者: 0

安全性: 0

星标: 3

关注者: 1

分支: 0

开放问题: 1

类型:package

v1.0.0 2023-10-19 13:32 UTC

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,还可以接受一个可选参数ttlttl用于设置缓存存储的时间。默认为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 - 返回翻译后的字符串