slick / i18n
Slick 框架的国际化及字符串翻译包
v1.3.1
2017-11-19 23:53 UTC
Requires
- zendframework/zend-i18n: ^2.7@dev
- zendframework/zend-servicemanager: ^3.3@dev
Requires (Dev)
- behat/behat: ^3.2@dev
- phpspec/phpspec: ^4.0@alpha
- squizlabs/php_codesniffer: ^3.0@dev
This package is auto-updated.
Last update: 2024-09-20 11:36:08 UTC
README
Slick I18n 是一个简单的翻译和国际化包。它依赖于 Zend/I18n,这是一个支持所有主流格式并包括复数翻译和文本域等流行功能的完整翻译套件。
此包符合 PSR-2 代码标准和 PSR-4 自动加载标准。它还遵循 语义版本 2.0.0 规范。
安装
通过 Composer
$ composer require slick/i18n
使用方法
消息文件
创建消息文件
/** * pt_PT messages file */ return [ '' => array( 'plural_forms' => 'nplurals=2; plural=n!=1;' ), 'Hello world' => 'Olá mundo', 'User' => ['Utilizador', 'Utilizadores'], 'Users' => '' ];
将此文件保存到 ./i18n/pt_PT/messages.php
。
语言协商和设置
现在让我们获取我们的翻译器
use Slick\I18n\Language; use Slick\I18n\Translation; use Slick\I18n\Translator; /** * Set locale based on the browser accept language */ $locale = 'en_US'; if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']); } $translation = new Translation(new Language($locale), __DIR__.'/i18n'); $translator = new Translator($translation); setlocale(LC_ALL, $locale);
上面的代码使用浏览器的语言来设置翻译器对象的区域设置。从现在开始,只需在您想要翻译的字符串上使用翻译方法。
消息翻译
echo $translator->translate('Hello world'); // will output 'Olá mundo'
复数翻译
echo $translator->translatePlural('User', 'Users', 2); // will output 'Utilizadores'
在您的类中使用
您可以通过使用 TranslateMethods
特性和注入翻译器来为您的类添加翻译功能。
use Slick\I18n\TranslateMethods; use Slick\I18n\TranslationCapableInterface; use Slick\I18n\TranslatotInterface; class MyClass implements TranslationCapableInterface { use TranslateMethods; public function __construct(TranslatotInterface $translator) { $this->tranlator = $translator; } public function getUsers() { return $this->translatePlural('User', 'Users', $this->getUserCount()); } }
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT。
安全性
如果您发现任何与安全性相关的问题,请通过电子邮件 slick.framework@gmail.com 而不是使用问题跟踪器。
致谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件。