tleckie / translate
快速、强大、可扩展且可定制的php翻译库
1.0.0
2021-05-12 16:39 UTC
Requires
- php: ^8
Requires (Dev)
- friendsofphp/php-cs-fixer: v3.0.0-beta.2
- infection/infection: ^0.21.5
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
README
快速、强大、可扩展且可定制的php翻译库
您可以通过composer安装此包
composer require tleckie/translate
用法
创建一个Translator类的实例,并将一个loader分配给它。loader必须包含存储翻译文件的目录,它还必须指示翻译文件的扩展名。
<?php use Tleckie\Translate\Loader\ArrayLoader; use Tleckie\Translate\Translator; $trans = new Translator( new ArrayLoader('./translations/','php'), 'es_ES' ); $trans->trans('hello'); $trans->trans('other.value');
您的翻译文件应该看起来像这样
<?php return [ 'hello' => "Hola! Bienvenido a mi sitio web!", 'other.value' => "Otro valor", . . . ];
存储翻译的文件名应该看起来像这样
/translations/es_ES.php
trans()方法接受多个参数。第一个是翻译数组的键,它是在对应文件中搜索的值。
第二个参数(可选)是替换在翻译值中的值数组。如果您想向您的翻译文本中添加值,您必须用"%s"来表示。注意,参数的数量必须与"%s"的数量匹配。
<?php use Tleckie\Translate\Loader\ArrayLoader; use Tleckie\Translate\Translator; $trans = new Translator( new ArrayLoader('./translations/','php'), 'es_ES' ); $trans->trans('hello',['John']);
您的翻译文件应该看起来像这样
<?php return [ 'hello' => "Hola %s! Bienvenido a mi sitio web!" ];
即使您配置翻译器加载特定语言,如果您需要,您也可以随时更改语言。
<?php use Tleckie\Translate\Loader\ArrayLoader; use Tleckie\Translate\Translator; $trans = new Translator( new ArrayLoader('./translations/','php'), 'es_ES' ); $trans->trans('hello',['John'],null, 'en_GB');
您可以通过指定提供的locale定义的语言和国家/地区来创建翻译文件。您还可以决定是否为不同的国家使用相同的语言。地区配置示例:"en_US"和"en_GB"。在这种情况下,您只需要创建一个具有以下名称的文件
/translations/en.php
在这种情况下,以下调用将产生相同的结果,并将从同一文件加载翻译。
<?php use Tleckie\Translate\Loader\ArrayLoader; use Tleckie\Translate\Translator; $trans = new Translator( new ArrayLoader('./translations/','php'), 'es_ES' ); $trans->trans('hello',['John'],null, 'en_GB'); $trans->trans('hello',['John'],null, 'en_US');
您还可以实现自己的loader来连接到您首选的数据源。您只需实现LoaderInterface接口。
这就是全部!希望这能帮到您 ;)