lafourchette/l10n-bundle

用于管理本地化的软件包

安装数: 73,777

依赖项: 0

建议者: 0

安全性: 0

星标: 8

关注者: 71

分支: 4

开放问题: 0

类型:symfony-bundle

v1.7.1 2017-04-28 15:12 UTC

README

Build Status Scrutinizer Code Quality Code Coverage

概述

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.labelregistration.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') }}