undercloud / lang
PHP 多语言系统
dev-master
2016-04-13 19:37 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-08-28 07:07:38 UTC
README
#Lang PHP 多语言系统
##安装 composer require undercloud/lang
##翻译
// /en/message.php return [ 'hello' => 'Hello, :username', 'hobbies' => 'Your hobbies is: :hobbies' ];
##设置
require 'vendor/autoload.php'; $lang = new Undercloud\Lang([ // translates path 'root' => '/path/to/translates', // list of user accepted, default parse http header Accept-Language 'accept' => ['en', 'de'], // list of supported translates 'avail' => ['en','fr','de'], // setup translates file handler, default PHP Arrays 'parser' => new Undercloud\Lang\Parser\AbstractParser ]); // Hello, John $lang('message.hello', ['username' => 'John']); //Your hobbies is: music, football, web $lang('message.hobbies', ['hobbies': ['music', 'football', 'web']]);
##API
// parse Accept-Language header and return supported locales $lang->getLangsHttp(); // return primary locale name $lang->getPrimaryLocale(); // return fallback locale $lang->getFallBackLocale();
##解析器 默认提供两种语言文件解析器 Undercloud\Lang\Parser\DefaultParser 和 Undercloud\Lang\Parser\JsonParser,您可以定义自己的解析器
// file based parser use Undercloud\Lang\Parser\AbstractParser; class MyOwnParser extends AbstractParser { public function parse() { $path = func_get_arg(0) . '.extension'; /*...*/ } }
或者
// database like parser use Undercloud\Lang\Parser\AbstractParser; class MyOwnParser extends AbstractParser { public $buildPath = false; public function parse() { $locale = func_get_arg(0); $entity = func_get_arg(1); /*...*/ } }