1

我一直有这个问题几天后,研究,我还没有找到解决方案。
我在CakePHP 2.5.6项目上,现在我正在进行国际化,一切似乎都很顺利,但我遇到了这个问题:
在我的数据库中,我为我的文章存储了多个标签,问题是标签的名称是直接从数据库中查询给我的,并使用foreach打印。
这是我的疑问,有没有什么办法可以使用我的.po文件来翻译这些字段?
我想过一些解决方案,但我试图避免它们,因为我认为它们只是跛脚,比如在我的标签表中创建一个带有已翻译名称的新列。使用.po文件直接从数据库翻译文本

回答

1

CakePHP的pot文件是为模板文件中的硬编码字符串和应用程序中的其他位置生成的。基本上像__('Hello')这样的东西,如果你使用像__($var)这样的变量,它不起作用,因为它需要知道字符串来生成翻译文件。

如果内容来自数据库,您需要按照您的建议转换数据库中的数据库内容。您不应该在标签表上创建一组新的列,而应该考虑使用CakePHP的Translate behaviour。 Cake的翻译行为应该做你正在寻找的东西,而不需要重新发明轮子。

+1

谢谢你,我不知道TranslateBehaviour类,它看起来正是我需要的! :) – Asur