我们正在构建一个多语言的Drupal堆栈,我们担心的一个问题是我们的支付处理器将不得不向我们发回一些信息。我们已经能够缩小范围,以便他们发回的字符串看起来像
<country code>-<number of months>
所以我们可以轻松地将其翻译成除英语之外的任何语言。
如果我们想将其翻译成法语描述,那么 t('FR-12')
一切都很好,但由于没有英语,类似t('EN-12')
的字符串不可翻译。
类似于通用字符串:#API_Connection_Error
这种通用字符串方法起初对我来说似乎非常引人注目,但它似乎在Drupal中不起作用。您对如何将这样的通用字符串翻译成英语和其他语言有什么建议吗?
谢谢,我整个上午一直在浏览Google。
答案 0 :(得分:3)
我现在有两种方法可以实现这一目标:
你可以replace the default English language definition with a custom version。这样,您可以像翻译任何其他语言一样“翻译”选定的英语字符串。如果您已将语言环境模块配置为在缺少翻译的情况下回退到原始字符串,则可以将特殊情况作为翻译添加到自定义英语版本中,其他所有内容都将使用原始英语版本。
查看String Overrides module - 它允许您为通过t()
传递的任何字符串定义自定义覆盖,每种语言都有单独的覆盖,包括原始英语
我会在你的情况下使用第二个选项,除非“外部”字符串的数量非常高。请参阅t()
函数的第一个if子句,了解用于覆盖的机制(在特定语言的Drupal变量数组中查找)。
请注意,String Overrides模块只是添加管理UI页面来配置后端中的Drupal变量 - 您也可以自己添加/调整它们(例如,从自定义模块)。