Cakephp i18n 提取除一个模板文件以外的所有模板文件

Cakephp i18n extracts all but one template file

我有一个包含动态内容的站点,模板文件中只有一些按钮标签和 headers。在 View 文件夹中,我有多个 *.ctp 文件,例如 profile.ctp 和 index.ctp。我的问题是,当我 运行 蛋糕控制台的 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 文件的默认行为?还是我真的做错了什么?

谢谢!

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

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

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