pyrsmk/translator

简单的CLI/HTTP环境翻译工具

2.0.4 2020-06-21 14:42 UTC

This package is auto-updated.

Last update: 2024-09-21 23:32:57 UTC


README

Translator是一个小型的I18N/L10N库,基于Chernozem(我们建议您阅读其文档)。以下是Chernozem提供的可用选项

  • client_locales : 客户端的地区设置
  • delimiters : 设置字符串替换的起始/结束分隔符(默认:['start' => '{', 'end' => '}']
  • translations : 加载的翻译

安装

选择源或使用Composer安装

composer require pyrsmk/translator

基础知识

Translator适用于网站(Translator\Http)和CLI应用程序(Translator\Cli)。在以下示例中,我们将使用Translator\Http

首先,我们需要在实例化时定义默认地区。当您的应用程序不支持客户端的地区时,将使用此地区。

$translator = new Translator\Http('en_EN');

Translator将通过比较客户端的地区和定义的可用的地区(基于加载的翻译)来找到要使用哪个地区

如果需要,您可以强制Translator使用特定的地区

$translator->setLocale('fr');

您可以使用以下方式检索Translator将用于翻译的地区

$translator->getLocale();

加载您的翻译文件

Translator没有实现加载您的文件的适配器,它只期望地区的名称和翻译字符串。然后您可以使用任何库来加载文件,或者手动完成。以下是使用JSON的示例

/* fr_FR.json */
{
	"cat": "chat",
	"dog": "chien",
	"turtle": "tortue"
}
// Load the JSON file
$translator->load('fr_FR', json_decode(file_get_contents('fr_FR.json')));

进行翻译!

简单

// Prints 'chien'
echo $translator->translate('dog');

Translator还可以替换翻译中的字符串

/* fr_FR.json */
{
	"hello": "Bonjour, M. {name}!"
}
// Prints 'Bonjour, M. Philippe!'
echo $translator->translate('hello', [
	'name' => 'Philippe'
]);

标准化地区

如果需要,您可以使用以下方式标准化任何您想要的地区

// Prints 'sl_IT'
echo $translator->normalizeLocale('sl_Latn-IT_nedis');

许可

此库是根据MIT许可证发布的。