abbadon1334 / atk4-i18next-php
描述
1.0.1
2019-07-15 07:02 UTC
Requires
- php: >=7.2
- atk4/core: dev-develop
Requires (Dev)
- atk4/data: dev-develop
- codacy/coverage: dev-master@dev
- evert/phpdoc-md: dev-master@dev
- friendsofphp/php-cs-fixer: dev-master@dev
- phpmd/phpmd: 2.6.1
- phpmetrics/phpmetrics: dev-master@dev
- phpstan/phpstan: 0.11.12
- phpunit/phpunit: 8.2.4
- squizlabs/php_codesniffer: 3.4.2
- thecodingmachine/phpstan-safe-rule: 0.1.3
- victorjonsson/markdowndocs: 1.3.8
This package is auto-updated.
Last update: 2024-09-26 14:04:09 UTC
README
基于i18next http://i18next.com
直接与ATK4 - Agile Toolkit模型进行插值 https://www.agiletoolkit.org/
使用composer安装
composer require abbadon1334/atk4-i18next-php
有关原始库的所有文档都可以在这里找到: http://i18next.com/
如何使用
$this->translator = new Translator();
$this->translator->setTranslationsPath(__DIR__.'/data/locales');
定义是否使用文件名作为命名空间
$this->translator->useFilenameAsNamespace(true);
定义主语言和备用语言(使用文件夹名称)
$this->translator->setLanguagePrimary($language);
$this->translator->setLanguageFallback($fallback);
添加额外语言
$this->translator->addLanguage('it');
翻译
interface TranslatorInterface { /** * Translates the given message. * * @param string $key * @param array|null $parameters Array of parameters used to translate message * @param string|null $context * @param string|null $locale The locale or null to use the default * * @return string The translated string */ public function _(string $key, ?array $parameters = null, ?string $context = null, ?string $locale = null): string; } // Usage $result = $this->translator->_('definitionKey'); $result = $this->translator->_('definitionKey', ['param1' => 'test']); $result = $this->translator->_('definitionKey', ['param1' => 'test'], 'context'); $result = $this->translator->_('definitionKey', ['param1' => 'test'], 'context', 'specificLanguage'); $result = $this->translator->_('namespace:definitionKey', ['param1' => 'test'], 'context', 'specificLanguage');
支持I18Next
http://i18next.com
- 从文件夹中读取翻译文件,每个文件夹都是一个语言代码
- JSON
- YAML
- PHP数组
- 将翻译文件写入文件夹,每个文件夹都是一个语言代码
- JSON
- YAML
- PHP数组
- 获取主语言中定义的翻译
- 如果找不到,则尝试备用语言
- 如果找不到,则返回原始字符串
- 如果找不到,则尝试备用语言
- 命名空间
- 根据优先级回退命名空间获取定义的翻译
- 上下文为 {key}_{context}
- 复数
- 单数作为 {key}
- 复数作为 {key}_plural
- 多个复数作为 {key}_{int $counter}
- 管理当 $counter 大于定义的最大复数时的情况
- 嵌套插值复数
- 区间
- 插值
- 将 {{key}} 替换为定义的 $paramater 值
- 如果 {{key}} 有点如 {{key.index}},并且 $parameters[index] 是数组或对象,将检索该值
- 将 {{key}} 替换为定义的 $paramater 值
- 嵌套
- 基本
- 复数
- 格式化
- 添加助手以使用方法 Translator::_ 作为全局函数 __
- 添加助手以使用 Translator 作为全局单例实例
- 收集缺失的请求键
- 添加助手以在代码中搜索/收集对方法 Translator _ 的调用
- 使用键作为翻译添加直接翻译
支持 ATK4 - Agile Toolkit Model
https://www.agiletoolkit.org
- 使用 \atk4\data\Model 进行插值