titon / g11n
该软件包已被废弃,不再维护。未建议替代软件包。
Titon g11n 软件包处理您应用程序的本地化和国际化。
0.11.4
2014-02-17 00:00 UTC
Requires
- php: >=5.4.0
- ext-intl: *
- ext-mbstring: *
- titon/common: *
- titon/event: *
- titon/io: *
Requires (Dev)
- titon/cache: *
- titon/route: *
- titon/test: dev-master
Suggests
- ext-gettext: Enable the gettext extension for locale bundling
- titon/cache: Use a Storage engine to cache message bundles
README
处理应用程序的本地化(l10n)和国际化(i18n),也称为全球化(g11n)。g11n 软件包提供了一种强大且可扩展的方式来实现消息本地化、提供区域感知模式和规则、翻译字符串等。
G11n
类管理区域设置、翻译器和通过 HTTP 接受头进行初始化。
use Titon\G11n\Locale; $g11n = Titon\G11n\G11n:registry(); $g11n->addLocale(new Locale('en')); $g11n->addLocale(new Locale('fr')); $g11n->setFallback('en'); $g11n->setTranslator(new Titon\G11n\Translator\MessageTranslator()) ->setReader(new Titon\Io\Reader\PhpReader()) ->setStorage(new Titon\Cache\Storage\MemcacheStorage()); $g11n->initialize();
如果将路由软件包与 g11n 软件包结合使用,可以实现自动路由解析和 URL 区域设置前缀。还应在默认的 Route
的位置使用 g11n 的 LocaleRoute
。
$router->on('g11n', $g11n);
调用单个函数即可轻松获取和翻译字符串。当然,消息必须在资源查找路径中存在。
$message = $g11n->translate('domain.catalog.id'); // or $message = msg('domain.catalog.id'); // or $message = __('id', 'catalog', 'domain');
特性
G11n
- L10n 和 I18n 管理Locale
- 区域设置配置Translator
- 消息包解析Utility
- 扩展 Inflector、Format、Number 和 ValidatorRoute
- 区域感知路由
依赖项
公共
事件
IO
Cache
(对于翻译器是可选的)
要求
- PHP 5.4.0
- Intl
- 多字节
- Gettext(用于 GettextTranslator)
待办事项
- 测试 gettext 功能
- 实现 TranslatableBehavior