【问题标题】:Zend_Translate: not string, but ID based translation - or how to handle changes in original stringZend_Translate:不是字符串,而是基于 ID 的翻译——或者如何处理原始字符串的变化
【发布时间】:2012-05-10 14:46:13
【问题描述】:

据我了解,Zend_Translate 使用字符串作为翻译文件的键。这意味着,如果我更改原始字符串(例如,修正一些错字),该字符串的所有翻译都将丢失。

有没有办法自动更新这些翻译?我的想法是在原始字符串发生更改时将这些翻译标记为“TODO”。

为了实现这一点,我想我必须使用基于 ID 的翻译系统,而不是基于字符串的翻译系统。每个字符串都有一个唯一的 ID。

我知道基于字符串的翻译系统的优点是相同的字符串不必翻译两次。这是我的应用程序中非常罕见的用例,因此将相等的字符串翻译两次绝对没问题。

我想过自己实现这个,但我不知道如何以良好的性能做到这一点。

对此有什么建议吗? Zend_Translate 可以处理原始字符串的变化吗?是否有其他翻译系统可以处理这种用例?

【问题讨论】:

    标签: php zend-framework translation zend-translate


    【解决方案1】:

    这无法自动处理。至少不容易。 (可能通过代码分析、代码生成等来完成)。我们使用“存根”进行翻译 - $this->translate('please-register') // Please register. 工作正常,但为开发人员增加了更多工作 - 他们甚至需要为母语创建翻译文件。 :)

    【讨论】:

    • 感谢您的回复。但是,这在我们的用例中不起作用,因为用户定义了稍后将被翻译的句子。我们可能会开发自己的系统,该系统依赖于一个数据库表,其中主键是由连接的表 ID(从用户的项目 ID 到文本所在的表的整个层次结构)和列名组成的字符串。我们要翻译的文本。我希望告诉 MySQL 为翻译数据库表使用哈希提供足够的速度。我热烈欢迎任何其他方法。
    • 如果没有具体的例子,真的很难帮助你:(我仍然可以理解你试图翻译的内容。页面 UI?或用户输入?
    猜你喜欢
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2017-07-09
    相关资源
    最近更新 更多