2010-03-18 74 views
3

我们正在构建一个多语言的Drupal堆栈,我们担心的一个问题是我们的支付处理器将不得不向我们发送一些信息。我们已经能够缩小这个下来,让他们发回的琴弦的样子翻译Drupal中的外部API结果

<country code>-<number of months>

,所以我们可以很容易地翻译成任何数量的语言,除了英语。

t('FR-12')如果我们想将其翻译成法文描述,但是因为没有英文语言,类似的字符串如t('EN-12')是不可翻译的。

同样,对于一般的字符串:#API_Connection_Error

这类通用的字符串的方法似乎真正的吸引力,我在第一,但它似乎没有在Drupal工作。对于如何将这种通用字符串翻译成英文和其他语言,您有什么建议吗?

谢谢,我一直在整个上午都在浏览Google。

回答

3

我看到两种方式在目前实现这一目标:

  1. 你可以只replace the default English language definition with a custom version。这样,您可以像选择其他语言一样“翻译”选定的英文字符串。如果您配置的区域设置模块在缺少翻译的情况下回退到原始字符串,您可以将您的特殊情况添加为您的自定义英文版的翻译,其他所有内容都将使用原始英文版。

  2. 看看在String Overrides module - 它允许您定义定制覆盖该获得通过t()过去了,每个语言分别覆盖任何字符串,包括原英文

我会用你的情况的第二个选项,除非'外部'字符串的数量非常高。请参阅用于覆盖的机制的t()函数的第一个if子句(语言特定的Drupal变量数组中的查找)。

注意字符串覆盖模块只是增加了管理界面页面可配置在后端的Drupal的变量 - 你可以添加/自己(通过自定义模块例如)调整他们。

+1

感谢您的回复,这正是我需要知道的。正如你所建议的那样,我最终用字符串覆盖去了,因为我相信拥有不同的英语会让翻译者产生困惑。我希望我能给你超过25分! – 2010-03-21 01:50:17