o80 / i18n
用于管理 i18n 的 PHP 库。
0.4
2016-05-12 12:14 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ^4.5
This package is not auto-updated.
Last update: 2024-09-28 15:57:24 UTC
README
o80-i18n 是一个用于管理 i18n(国际化)的小型 PHP 工具。默认情况下,它使用 json
格式进行语言文件,您也可以定义自己的提供者以使用其他格式。以下是如何简单使用的示例。
如何使用
安装
{ ... "require": { "o80/i18n": "~0.2" } ... }
使用方法
字典
例如,将您的语言文件放在 'lang' 目录中
langs
en.json
en_US.json
fr.json
语言文件 en.json
的示例
{ "Generic" : { "Welcome": "Welcome", "Hello": "Hello %s!", "submit": "submit" } }
语言文件 fr.json
的示例
{ "Generic" : { "Welcome": "Bienvenue", "Hello": "Bonjour %s !", "submit": "valider" } }
配置 i18n 实例
方法 1 - 单例
$i18n = I18N::instance(); $i18n->setPath(__DIR__ . '/langs'); $i18n->setDefaultLang('en');
方法 2 - 新实例
$i18n = new I18N(); $i18n->setPath(__DIR__ . '/langs'); $i18n->setDefaultLang('en');
使用方法
方法 1 - 单例
<h1><?php echo __('Generic', 'Welcome'); ?></h1> <!-- Result : <h1>Welcome</h1> --> <h1><?php echo __('Generic', 'NotExistingText'); ?></h1> <!-- Result : <h1>[missing key: Generic.NotExistingText]</h1> --> <span><?php echo __f('Generic', 'Hello', 'Olivier'); ?></span> <!-- Result : <span>Hello Olivier!</span> --> <span><?php echo I18N::instance()->getLoadedLang(); ?></span> <!-- Result : <span>en</span> -->
方法 2 - 使用实例
<h1><?php echo $i18n->get('Generic', 'Welcome'); ?></h1> <!-- Result : <h1>Welcome</h1> --> <h1><?php echo $i18n->get('Generic', 'NotExistingText'); ?></h1> <!-- Result : <h1>[missing key: Generic.NotExistingText]</h1> --> <span><?php echo $i18n->format('Generic', 'Hello', array('Olivier')); ?></span> <!-- Result : <span>Hello Olivier!</span> --> <span><?php echo $i18n->getLoadedLang(); ?></span> <!-- Result : <span>en</span> -->
如何设置要使用的语言
系统会检查多个变量以查找要加载的语言文件。请看下面的说明。
- 如果定义了
$_GET['lang']
并且它与语言文件匹配,则使用它; - 如果定义了
$_SESSION['lang']
并且它与语言文件匹配,则使用它; - 如果定义了
$_SERVER['HTTP_ACCEPT_LANGUAGE']
并且它与语言文件匹配,则使用它;- 它将检查此变量中找到的所有语言
- 使用在 I18N 实例中定义的
$defaultLang
- 如果没有找到文件,则不加载任何内容
贡献
只需分支项目,进行更改,请求拉取请求即可 ;-).