delfimov / translate
多语言网站易用 i18n 翻译 PHP 类
v2.6.0
2019-02-13 12:48 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- phpdocumentor/phpdocumentor: 2.*
- phpunit/phpunit: 5.*
- psr/log: 1.0.*
- satooshi/php-coveralls: ^1.0
- scrutinizer/ocular: ~1.3
- squizlabs/php_codesniffer: 3.*
Suggests
- monolog/monolog: @stable
README
Translate
带语言自动检测和复数的多语言网站易用 i18n 翻译 PHP 类。
PSR-6 翻译容器。PSR-3 日志记录器。
要求
如何安装
将此行添加到您的 composer.json 文件中
"delfimov/translate": "~2.0"
或者
composer require delfimov/translate
或者,将 Translate 文件夹的内容复制到您的项目目录之一,并执行 require 'src/Translate.php';
、require 'src/Loader/LoaderInterface.php';
、require 'src/Loader/PhpFilesLoader.php';
。如果您不熟悉 git 或只想获得 tarball,请点击 GitHub 页面顶部的 'zip' 按钮。
简单示例
源代码请参见 example
目录。
example\example.php
<pre><?php use DElfimov\Translate\Translate; use DElfimov\Translate\Loader\PhpFilesLoader; use Monolog\Logger; // PSR-3 logger, not required use Monolog\Handler\StreamHandler; $log = new Logger('Translate'); $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); $t = new Translate( new PhpFilesLoader(__DIR__ . "/messages"), [ "default" => "en", "available" => ["en", "ru"], ], $log // optional ); $num = rand(0, 100); $t->setLanguage("en"); // this is not required, language will be auto detected with Accept-Language HTTP header echo $t->t('some string') . "\n\n"; // or $t('some string'); echo $t->plural('%d liters', $num) . "\n\n"; echo $t->plural("The %s contains %d monkeys", $num, ['tree', $num]) . "\n\n"; $num = rand(0, 100); $t->setLanguage("ru"); echo $t->t('some string')."\n\n"; // or $t('some string'); echo $t->plural('%d liters', $num) . "\n\n"; echo $t->plural("The %s contains %d monkeys", $num, ['tree', $num]) . "\n\n"; ?></pre>
example\messages\en\messages.php
<?php return [ 'some string' => 'Some string', '%d liters' => ['%d liter', '%d liters'], '%d liters alt' => '%d liter|%d liters', 'The %s contains %d monkeys' => ['The %s contains %d monkey', 'The %s contains %d monkeys'], 'The %s contains %d monkeys alt' => 'The %s contains %d monkey|The %s contains %d monkeys', ];
example\messages\ru\messages.php
<?php return [ 'some string' => 'Просто строка', '%d liters' => '%d литр|%d литра|%d литров', 'The %s contains %d monkeys' => ['На %s сидит %d обезьяна', 'На %s сидят %d обезьяны', 'На %s сидят %d обезьян'], 'The %s contains %d monkeys alt' => 'На %s сидит %d обезьяна|На %s сидят %d обезьяны|На %s сидят %d обезьян', 'tree' => 'дереве' ];
待办事项
- 更好的代码覆盖率