rostenkowski / translate
此包最新版本(v1.0.3)没有可用的许可信息。
v1.0.3
2017-12-14 14:37 UTC
Requires
- php: >=7.1
- ext-intl: *
- ext-tokenizer: *
- nette/di: ^3.0
- nette/neon: v3.0.0-beta1
- nette/safe-stream: ^2.3
- nette/utils: ^3.0
- psr/log: ^1.0
Requires (Dev)
- mockery/mockery: ^1.0@dev
- nette/tester: ^2.0
- phpstan/phpstan: ^0.9.0@dev
Suggests
- monolog/monolog: To log translation errors.
This package is not auto-updated.
Last update: 2024-09-15 04:31:25 UTC
README
一个简洁且功能强大的高性能消息本地化PHP 7.1+组件,不仅适用于Nette框架
composer require rostenkowski/translate
翻译
默认情况下,翻译存储在*.neon文件中,格式如下
# simple message Welcome!: Vítejte! # with placeholder Hi %s!: Ahoj %s! # multiple forms You have %s points.: - Máte %s bod. - Máte %s body. - Máte %s bodů.
与Nette框架一起使用
将您的翻译放在%appDir%/translations
目录中,如cs_CZ.neon
等。
# register extension extensions: translate: Rostenkowski\Translate\Extension # configuration translate: default: cs_CZ
高级选项
您可以使用特殊的复数形式来表示0
(零)的数量。在翻译源文件中,您可以在特殊索引-1
下定义此形式。
"%s problems detected": -1: "No problem detected" - "%s problem detected" - "%s problems detected"
$translator->useSpecialZeroForm = true; $translator->translate('%s problems detected', 0); // "No problem detected" instead of "0 problems detected"
与纯PHP一起使用
<?php namespace App; require __DIR__ . '/vendor/autoload.php'; use Rostenkowski\Translate\Translator; use Rostenkowski\Translate\NeonDictionary\NeonDictionaryFactory; // both translations and cache are in the same directory $translator = new Translator(new NeonDictionaryFactory(__DIR__, __DIR__)); $translator->setLocale('cs_CZ'); $translator->translate('Welcome!');
要求
- PHP 7.1+
- nette/di
- nette/neon
- nette/safe-stream
- nette/utils
- nette/tester
贡献
# run tests vendor/bin/tester -c tests/php.ini tests/ # code coverage report (requires xdebug) vendor/bin/tester -c tests/php-coverage.ini --coverage-src src/ --coverage ~/report.html tests/ # remove test artifacts rm -rf tests/temp/cache/