【问题标题】:YAML to PO/MO for PHP internationalizationYAML 到 PO/MO 用于 PHP 国际化
【发布时间】:2014-10-31 04:19:05
【问题描述】:

我想使用 Twig 和 gettext 将我的 PHP 网站国际化。我成功设置了它,但过程很无聊:必须用 PoEdit(例如)编辑 PO 文件,以便将其转换为 MO,然后必须重新启动服务器或清空缓存。

我想要一些更简单的东西,比如在 Symfony 中:编辑一个 YAML 文件,然后一个库会自动翻译它并清空缓存。我想这就是 Symfony 所做的,因为它也是基于 Twig 的。

但我找不到任何现有的解决方案,有什么想法吗?

【问题讨论】:

    标签: php symfony internationalization twig yaml


    【解决方案1】:

    所有 Simfony2 的组件都与框架解耦,可以在任何地方实现。因此,如果您喜欢 Symfony2 翻译系统,您可以在您的 php 项目中实现Translator component(使用您想要的任何其他 symfony 组件)。

    这比重新发明轮子要好不是吗?

    【讨论】:

    • 这太棒了!但是我不确定它是否也适用于 Twig,它需要明确的 MO 文件?
    • 绝对不是。在 symfony twig 中非常适合 Translator 组件,您可以决定是使用文件(yaml、xml、其他)还是在 DB 上。
    【解决方案2】:

    本地化/国际化对于 Symfony 翻译组件来说是微不足道的。它是一个标准组件,因此您无需添加任何内容,只需了解如何配置和使用它即可。

    简而言之,您可以为您想要支持的任何语言创建翻译文件,然后只需将文本包装在 twig 翻译块 {% trans %}Text To Translate{% endtrans %} 或通过翻译过滤器 {{ myVar|trans }} 运行变量。 Symfony 然后将文本转换为客户端浏览器指定的任何_locale

    阅读Using the Symfony Translator了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多