嗨,我想知道有没有一种方法可以编写您的代码,以便不必对默认语言字符串进行硬编码?

我的应用程序不应该需要更改代码来修复标签中的错字。如果我更改英文标签,它也不应该影响其他语言。

正如我现在看到的,我的字符串在 t('button label for example') 调用中必须是英文的。
那么这个“例如按钮标签”文本是其他语言的关键。问题:
1. 更改它需要更改代码
2. 更改需要更新所有语言的key string
3. 某些语言可能有不同的语法,一个英语单词可以映射到多个版本,因此文本“book”不是 enoguh 并且不能作为标签,因为根据上下文,它可能是其他语言中的 2 个不同单词(喜欢订购或要读的书是)。

有没有办法拥有像 mymodule_btn_buy_now 这样有意义的标签,然后每种语言都会使用它作为关键?那么英文标签会与代码分离并放在翻译文件中吗?这可以在drupal中以某种方式完成吗?

谢谢!

最佳答案

此问题的常见解决方法是添加一种新的自定义语言,也称其为英语并使用该语言而不是默认语言。如果您将翻译配置为在没有可用翻译的情况下回退到未翻译的字符串,则无需为自定义英文版本提供完整的翻译集 - 只需为要更改的字符串添加翻译。

有了这个,您实际上将硬编码的默认英语集转换为“语言不可知”标识符,所有其他语言,包括自定义英语,都提供翻译版本。

关于drupal - 在代码中没有英文默认值的情况下在 drupal 中翻译字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3203794/

10-14 21:09