yiisoft / translator-formatter-intl
该包已被弃用且不再维护。未建议替代包。
YiiTranslator intl消息格式化器
1.0.0
2021-05-13 10:44 UTC
Requires
- php: ^7.4|^8.0
- ext-intl: >=1.0.2
- lib-icu: >=49.0
- yiisoft/translator: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- roave/infection-static-analysis-plugin: ^1.7
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.7
This package is auto-updated.
Last update: 2022-12-08 07:07:16 UTC
README
此包已弃用,现在它是yiisoft/translator的一部分。
❌
YiiTranslator intl消息格式化器
该包提供了利用PHP intl扩展消息格式化功能的消息格式化器。
要求
- PHP 7.4或更高版本。
intl
PHP扩展1.0.2或更高版本。ICU
库49.0或更高版本。
安装
可以使用composer安装此包
composer require yiisoft/translator-formatter-intl --prefer-dist
配置
如果您使用yiisoft/config
,则将自动获取配置。如果没有,则需要以下DI容器配置
<?php declare(strict_types=1); use Yiisoft\Translator\MessageFormatterInterface; use Yiisoft\Translator\Formatter\Intl\IntlMessageFormatter; return [ MessageFormatterInterface::class => IntlMessageFormatter::class, ];
通用用法
使用yiisoft/translator
的示例
/** @var \Yiisoft\Translator\Translator $translator **/ $categoryName = 'moduleId'; $pathToModuleTranslations = './module/messages/'; $additionalCategorySource = new Yiisoft\Translator\CategorySource( $categoryName, new \Yiisoft\Translator\Message\Php\MessageSource($pathToModuleTranslations), new \Yiisoft\Translator\Formatter\Intl\IntlMessageFormatter() ); $translator->addCategorySource($additionalCategorySource); $translator->translate('Test string: {str}', ['str' => 'string data'], 'moduleId', 'en'); // output: Test string: string data
不使用yiisoft/translator
包的示例
/** @var \Yiisoft\Translator\Formatter\Intl\IntlMessageFormatter $formatter */ $pattern = 'Total {count, number} {count, plural, one{item} other{items}}.'; $params = ['count' => 1]; $locale = 'en'; echo $formatter->format($pattern, $params, $locale); // output: Total 1 item. $pattern = '{gender, select, female{Уважаемая} other{Уважаемый}} {firstname}'; $params = ['gender' => null, 'firstname' => 'Vadim']; echo $formatter->format($pattern, $params, 'ru'); // output: Уважаемый Vadim $pattern = '{name} is {gender} and {gender, select, female{she} male{he} other{it}} loves Yii!'; $params = ['name' => 'Alexander', 'gender' => 'male']; echo $formatter->format($pattern, $params, $locale); // output: Alexander is male and he loves Yii!
要获取您正在使用的区域设置的可用选项列表,请参阅https://intl.rmcreative.ru/
测试
单元测试
该包使用PHPUnit进行测试。要运行测试
./vendor/bin/phpunit
突变测试
该包的测试使用Infection突变框架和Infection静态分析插件进行测试。要运行它
./vendor/bin/roave-infection-static-analysis-plugin
静态分析
代码使用Psalm进行静态分析。要运行静态分析
./vendor/bin/psalm
许可
Yii翻译器Intl消息格式化工具是免费软件。它遵循BSD许可证条款发布。有关更多信息,请参阅许可证
。
由Yii软件维护。