【问题标题】:Cakephp i18n extracts all but one template fileCakephp i18n 提取除一个模板文件之外的所有模板文件
【发布时间】:2015-01-04 17:13:36
【问题描述】:

我有一个包含动态内容的网站,模板文件中只有一些按钮标签和标题。在 View 文件夹中,我有多个 *.ctp 文件,例如 profile.ctp 和 index.ctp。我的问题是,当我运行 cake 控制台的 i18n 提取函数时,会拾取来自 controller.php 和 profile.ctp 的可翻译字符串,但会忽略 index.ctp。

我试过跑步 cake i18n extract --files .\View\ControllerName\index.ctp --ignore-model-validation --output .\Locale\ --paths . --overwrite yes --extract-core no --merge no

然而,这不会产生任何结果,也不会创建 *.pom 文件,这与我在没有 --files 参数的情况下运行它时不同。在这种情况下,*.pom 文件中仅缺少视图中的字符串。

有趣的是,在控制台输出中显示 index.ctp 已解析,但仍然没有给出结果。

Output Directory: C:\Dev\app\Locale\
---------------------------------------------------------------
Processing C:\Dev\app\View\ControllerName\index.ctp...
Processing C:\Dev\app\View\ControllerName\profile.ctp...

Done.

所以,我的问题是 - 有人知道为什么会这样吗?是否有禁用某些模板的设置,还是忽略 index.ctp 文件的默认行为?还是我只是做错了什么?

谢谢!

编辑:已解决。不要使用速记 PHP 标记以防万一:)

【问题讨论】:

    标签: php cakephp localization internationalization cakephp-2.0


    【解决方案1】:

    也许是一句愚蠢的话,但您的 index.ctp 是否真的包含可翻译的字符串(即包装到 __("sentence to translate"); 函数中的字符串)?

    【讨论】:

    • 是的,它们就在那里。每个按钮文本一个 :)
    【解决方案2】:

    所以,经过大量的头疼后,我决定尝试一下。我将 profile.ctp 内容复制到 index.ctp 中,然后它起作用了。之后,我开始剥离 index.ctp 直到它起作用。事实证明,如果我使用速记 PHP 标签(<? ?>),那么由于某种原因,翻译字符串检测不起作用,但是当我使用完整标签(<?php ?>)时,一切都很好。数字:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多