lafourchette / l10n-bundle
用于管理本地化的软件包
v1.7.1
2017-04-28 15:12 UTC
Requires
- php: >=5.3.2
- doctrine/dbal: 2.4.3
- ml/json-ld: 1.*
- symfony/framework-bundle: ~2.0
- symfony/yaml: *
- twig/extensions: *
- twig/twig: ~1.13
Requires (Dev)
- phpunit/phpunit: 3.7.*
README
概述
L10nBundle 的目的是提供一个非常简单的方式来处理本地化(L10N),类似于 I18N 与 Symfony 翻译器。
本地化数据可以存储在任何你想存储的地方。目前,L10nBundle 支持 YaML 文件和 MongoDb。
配置
全局配置
l10n:
localization_fallback: en # Fallback localization, used when no explicit Localization is asked or localization not found. Value may be string or integer
locale_fallback: en_US # Fallback locale, to manage L10N values
manager: yaml # The name of the manager you want to use currently yaml or mongodb
你可以使用你的 symfony 配置中的参数。示例:
#parameters.yml
parameters:
my_environment_extension: local
#l10n.yml
l10n:
my_url:
gb: www.domain.%my_environment_extension%
值将按照以下方式解析:
my_url => www.domain.local
yaml
yaml:
data_file: /path/to/main.yaml
你可以导入文件
imports:
- { resource: "../../src/Bundle/MyBundle/Resources/translations/l10n.yml" }
配置位于 l10n 键下
l10n:
registration:
label:
fr: FRA
es: SPA
name:
fr: french name
es: spanish name
你可以使用键 registration.label
和 registration.name
。
提供简单的翻译
使用数组作为值
l10n:
registration.label:
fr:
- {locale: fr, value: FRA_fr}
- {locale: en, value: FRA_en}
MongoDb
mongodb:
host: 127.0.0.1
port: 27017
username: test
password: T3$t
database: test_db
使用方法
PHP
控制器中的示例
$l10n = $this->getContainer()->get('l10n_bundle.business.l10n_provider');
$l10n->getL10n('key', 'idLoc');
Twig
在 twig 模板中,你可以使用 l10n 过滤器
{{ 'key'|l10n }}
你也可以提供参数,例如默认本地化和/或区域设置。
{{ 'key'|l10n('es', 'ca') }}