sergeil/extjslocalization-bundle

为 Symfony2 添加 ExtJs 类的本地化支持

v1.2.3 2019-12-12 11:10 UTC

This package is auto-updated.

Last update: 2024-09-12 21:40:41 UTC


README

此扩展包使得从 ExtJs 类中提取翻译标记成为可能,让您翻译它们,然后对 ExtJs 类进行本地化。

以下是此扩展包能够解析的示例 ExtJs

Ext.define('Company.foo.bar.MyClass', {
    // l10n
    firstnameText: 'Firstname',
    lastnameText: 'Lastname',

    doSomething: function() {
        // ...
    }
});

简而言之,为了检测您的 extjs 类,它必须符合以下规则

  • 在第一个翻译标记之前必须放置此注释 - // l10n
  • 翻译标记必须以 "Text" 结尾,例如 - firstnameText
  • 翻译标记和其他类成员(其他属性、方法等)之后必须有一行空白
  • 不要在翻译标记之间添加任何空白行(您可能会想这样做以在语义上分组您的标记)

使用方法

通常,您只需要执行以下命令即可开始翻译项目的 extjs 类

php app/console sli:update-extjs-translation fr AcmeDemoBundle --output-format=xlf

执行命令后,假设您已在项目中安装了 AcmeDemoBundle,并且该扩展包具有 "Resources/public/js/" 目录(以及其中的一些类),则该命令将解析此目录中的文件并生成 Resources/translations/extjs.fr.xlf 文件。

一旦您设置了一些翻译目录,在您的模板中,您可以使用以下方法

<script type="text/javascript" src="{{ path('sli_extjs_route', { locale: 'fr' }) }}"></script>

或以下方法

<script type="text/javascript">
  {{ render(url('sli_extjs_route', { locale: 'fr' })) }}}
</script>

来加载它们。这两个示例之间的唯一区别是,在第二个示例中,由扩展包生成的 JavaScript 代码将被嵌入到模板中。

如果您需要更改用于生成 extjs-localization 代码的 URL,则可以覆盖服务容器配置参数 sli_ext_js_localization.route 的值。

安装

将此依赖项添加到您的 composer.json 中

"sergeil/extjslocalization-bundle": "dev-develop"

更新您的 AppKernel 类并添加以下内容

new \Sli\ExtJsLocalizationBundle\SliExtJsLocalizationBundle(),

许可

此扩展包受 MIT 许可证的保护。请参阅扩展包中的完整许可证:Resources/meta/LICENSE