philasearch / i18n
该软件包最新版本(1.1.1)没有提供许可证信息。
PHP的i18n库
1.1.1
2017-03-08 11:51 UTC
Requires
- philasearch/io: 1.0.*
- symfony/yaml: 3.1.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 5.7.*
This package is not auto-updated.
Last update: 2024-09-20 07:20:04 UTC
README
PHP I18n
PHP I18n是一个用于在代码外部存储本地化字符串的简单库。
安装
将以下require添加到您的composer.json文件中。
{ "require": { "philasearch/i18n": "1.1.*" } }
设置
语言文件夹
为了使用i18n,您需要一个语言文件夹。按照惯例,此文件夹为config/locales
,但您可以选择任何您想要的。在这个文件夹中,每个支持的语言都需要自己的文件夹(config/locales/en
、config/locales/de
、...)。
在PHP中使用
您可能会在自己的实现中使用I18n类,因此您只需在您的代码中创建一个包装类即可。要创建此类,只需给出您之前决定的语言文件夹的路径。
<?php use Philasearch\I18n\I18n as Lang; $lang = new Lang( dirname(__FILE__) . '/config/locales' );
示例用法
注意: 目前,仅支持yaml文件。
对于此示例,语言文件夹位于config/locales。
创建一个文件config/locales/en/example.yml
foo: bar nested: foo: bar var: foo :var plural: one: A :color apple other: :count :color apples
以及方言文件config/locales/en_US/example.yml
foo: murica
注意: 注意yml文件名,因为它将是您键的第一部分(example.yml => example)。
现在我们可以加载翻译类并获取我们的翻译字符串。
<?php use Philasearch\I18n\I18n as Lang; $lang = new Lang( dirname(__FILE__) . 'config/locales' ); /** * normal translated string * * @param string $locale * @param string $key */ $lang->get( 'en', 'example.foo' ); // returns 'bar' /** * nested translated strings * * @param string $locale * @param string $key */ $lang->get( 'en', 'example.nested.foo' ); // returns 'bar' /** * Variable translated string * * @param string $locale * @param string $key */ $lang->get( 'en', 'example.var', ['var' => 'bar']); // returns 'foo bar' /** * Plural tranlated strings * * @param string $locale * @param string $key * @param int $count */ $lang->get( 'en', 'example.plural', ['color' => 'red'], 1); // returns 'A red apple' $lang->get( 'en', 'example.plural', ['color' => 'red'], 2); // returns '2 red apples' /** * Dialect translated strings */ $lang->get( 'en_US', 'example.foo' ); // returns 'murica' $lang->get( 'en_US', 'example.nested.foo' ); // returns 'bar' as it falls back to en