我有一个包含动态内容的网站,模板文件中只有一些按钮标签和标题。在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文件的默认行为?或者我只是做错了什么?
谢谢!
编辑已解决。不要使用速记PHP标签以防万一:)
答案 0 :(得分:1)
也许是一个愚蠢的评论,但你的index.ctp实际上是否包含可翻译的字符串(即包含在__("sentence to translate");
函数中的字符串)?
答案 1 :(得分:0)
所以,经过大量的打击后,我决定尝试一些东西。我将profile.ctp内容复制到index.ctp中,然后就可以了。之后,我开始剥离index.ctp直到它工作。事实证明,如果我使用速记PHP标签(<? ?>
),那么由于某种原因,翻译字符串检测不起作用,但当我使用完整标签(<?php ?>
)时,一切都很好。数字:))