使用 .po 文件直接从数据库翻译文本
Translating text direcly from DB using .po file
这个问题困扰我好几天了,研究了很久也没找到解决方法
我在一个 cakePHP 2.5.6 项目上,我现在正在进行国际化,一切似乎都很好,但我遇到了这个问题:
在我的数据库中,我为我的文章存储了几个标签,问题是标签的名称是直接从数据库查询给我的,并使用 foreach 打印。
这是我的疑问,有什么方法可以使用我的 .po 文件翻译这些字段吗?
我想过一些解决方案,但我试图避免它们,因为我认为它们只是蹩脚的,例如在我的标签 table 中创建一个新列,其中包含翻译后的名称。
CakePHP 的 pot 文件是为模板文件和应用程序其他地方的硬编码字符串生成的。基本上像 __('Hello')
这样的东西,如果你使用像 __($var)
这样的变量,它就不起作用,因为它需要知道字符串来生成翻译文件。
如果内容来自数据库,您需要按照您的建议查看在数据库中翻译数据库内容。与其在标签 table 上创建一组新的列,不如考虑使用 CakePHP 的 Translate behaviour。 Cake 的翻译行为应该可以满足您的需求,而无需您重新发明轮子。
这个问题困扰我好几天了,研究了很久也没找到解决方法
我在一个 cakePHP 2.5.6 项目上,我现在正在进行国际化,一切似乎都很好,但我遇到了这个问题:
在我的数据库中,我为我的文章存储了几个标签,问题是标签的名称是直接从数据库查询给我的,并使用 foreach 打印。
这是我的疑问,有什么方法可以使用我的 .po 文件翻译这些字段吗?
我想过一些解决方案,但我试图避免它们,因为我认为它们只是蹩脚的,例如在我的标签 table 中创建一个新列,其中包含翻译后的名称。
CakePHP 的 pot 文件是为模板文件和应用程序其他地方的硬编码字符串生成的。基本上像 __('Hello')
这样的东西,如果你使用像 __($var)
这样的变量,它就不起作用,因为它需要知道字符串来生成翻译文件。
如果内容来自数据库,您需要按照您的建议查看在数据库中翻译数据库内容。与其在标签 table 上创建一组新的列,不如考虑使用 CakePHP 的 Translate behaviour。 Cake 的翻译行为应该可以满足您的需求,而无需您重新发明轮子。