在drupal中翻译字符串,代码中没有英文默认值

时间:2010-07-08 12:59:56

标签: drupal internationalization translation

您好,我想知道有没有办法编写您的代码,以便默认语言字符串不必硬编码?

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

正如我现在看到的那样,我的字符串必须在t(“按钮标签例如”)调用中使用英语。 然后这个'按钮标签'例如'文本是其他语言的关键。问题: 1.更改它需要更改代码 2.更改它需要更新所有语言的密钥字符串 3.一些语言可以有不同的语法,一个英语单词可以映射到许多版本,因此文本“书”不是enoguh而不能是标签,因为它可能是其他语言的2个不同的单词,具体取决于上下文(如订购或者要读的书是。)

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

谢谢!

3 个答案:

答案 0 :(得分:3)

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

通过这种方式,您几乎可以将硬编码的默认英语设置转换为“语言无关”标识符,所有其他语言(包括自定义英语)都提供翻译版本。

答案 1 :(得分:1)

AFAIK没有必要在Enlisch的{​​{1}}内编写翻译字符串,这只是默认和方便。如果您的默认语言是波兰语,你可以用波兰语编写所有的翻译字符串,并通过Drupals界面翻译它们。有正确的英文翻译的原因是这是默认语言,如果没有找到其他语言,则使用已经给定的字符串。

如果翻译了单个单词或完整的句子,Drupal无关紧要,因此您可以轻松翻译整个句子,无需担心语法或其他任何内容。

就我个人而言,我建议保留来自t()方法的Englisch翻译,因为它是一个很好的默认设置,只需用Drupal添加所有需要的语言

答案 2 :(得分:0)

经过消息来源调查,我认为没有办法点击它。

到目前为止,我能看到的最佳解决方案是用“zu”替换所有“en”的实例...在common.php和locale.php中做了这样的实际工作!大声笑!将不得不测试它,因为我不确定它有多么糟糕的性能。不应该太糟糕,就像英语是外语我猜。我可以编辑标签并导出翻译的英文文本。

如果你知道更好的方法让我知道,那么测试会更多。