titon/g11n

该软件包已被废弃,不再维护。未建议替代软件包。

Titon g11n 软件包处理您应用程序的本地化和国际化。

0.11.4 2014-02-17 00:00 UTC

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 和 Validator
  • Route - 区域感知路由

依赖项

  • 公共
  • 事件
  • IO
  • Cache(对于翻译器是可选的)

要求

  • PHP 5.4.0
    • Intl
    • 多字节
    • Gettext(用于 GettextTranslator)

待办事项

  • 测试 gettext 功能
  • 实现 TranslatableBehavior