【问题标题】:Translate using CakePHP + TwigView + i18n使用 CakePHP + TwigView + i18n 翻译
【发布时间】:2013-07-09 10:19:52
【问题描述】:

如何在我的.tpl 文件中使用翻译块,以便 cakephp 的提取命令能够理解它?

我想翻译我的 CakePHP Web 应用程序。我正在使用TwigView plugin。 TwigView 有 i18n 提取命令来生成 POT 文件。我的问题是为什么它不会扫描具有{% trans %} Hello {% endtrans %} 块的.tpl(Twig 文件)。

您可以在TwigView的自述文件中看到翻译功能。

【问题讨论】:

  • 是的,Cake 需要使用类似

    。但是因为我使用了 Twig。我不能在我的视图文件中使用 php 标签。我必须使用反式块。
  • @AD7six - 能否请您简要列出如何使用 Cake Translation 的步骤?或者,如果您知道任何文档,请将我链接到相同的文档。
  • 顺便说一下,关于“蛋糕自己的翻译功能”,你能说得更简单一点吗?它的 i18n 对吗?我正在使用相同的。
  • 我不使用 twig(所以我不是提供答案的合适人选),但我希望 cakephp-twig 插件能够提供一种提取翻译的方法。 This is link to TwigView plugin - 这不是一个链接。浏览了几个 cakephp-twig 插件,他们期待使用 twig/symfony 生成 pot 文件,cake 的提取任务是 Console/cake i18n
  • 我用链接更新了问题。我正在使用 Console/cake i18n 来生成 POT。但它不是通过 .tpl 文件扫描的。

标签: cakephp internationalization twig


【解决方案1】:

我没有使用 cakePHP 的经验,但就生成 POT 文件而言,cakePHP 不需要扫描 .tpl 文件。

Twig 引擎有一个编译器,它基本上将每个 twig 视图“转换”为 PHP 脚本,该脚本保存在 Twig 缓存文件夹中。至少,如果配置正确,应该会发生这种情况。这些缓存文件将包含可以识别的常规 gettext 函数。

您必须确保在扫描缓存之前正确编译每个视图。此脚本将允许您为所有视图生成树枝缓存。之后,您可以扫描生成的 PHP 文件。 http://twig.sensiolabs.org/doc/extensions/i18n.html#extracting-template-strings

我不确定你为什么使用 cakePHP 生成 POT 文件,但 POEDIT(它又使用命令行工具 xgettext)肯定会以这种方式工作。

【讨论】:

    猜你喜欢
    • 2015-10-27
    • 2012-11-11
    • 2012-03-25
    • 2014-09-07
    • 2014-03-27
    • 2018-03-05
    • 2018-06-16
    • 1970-01-01
    相关资源
    最近更新 更多