【问题标题】:Translating text direcly from DB using .po file使用 .po 文件直接从数据库翻译文本
【发布时间】:2016-02-05 08:46:17
【问题描述】:

这个问题困扰我好几天了,经过研究,我没有找到解决办法。
我在一个 cakePHP 2.5.6 项目上,我现在正在进行国际化,一切似乎都很好,但我遇到了这个问题:
在我的数据库中,我为我的文章存储了几个标签,问题是标签的名称是通过直接从数据库查询给我的,并使用 foreach 打印。
这是我的疑问,有没有办法使用我的 .po 文件翻译这些字段?
我已经想到了一些解决方案,但我试图避免它们,因为我认为它们很蹩脚,例如在我的标签表中创建一个新列,其中包含翻译后的名称。

【问题讨论】:

    标签: database cakephp internationalization translation cakephp-2.5


    【解决方案1】:

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

    如果内容来自数据库,您需要按照您的建议查看在数据库中翻译数据库内容。与其在标签表上创建一组新列,不如考虑使用 CakePHP 的 Translate behaviour。 Cake 的翻译行为应该可以满足您的需求,而无需重新发明轮子。

    【讨论】:

    • 谢谢,我不知道 TranslateBehaviour 类,它看起来正是我需要的! :)
    猜你喜欢
    • 2017-11-02
    • 1970-01-01
    • 2018-12-13
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多