代码之家  ›  专栏  ›  技术社区  ›  Chuck Vose

在Drupal中转换外部API的结果

  •  3
  • Chuck Vose  · 技术社区  · 15 年前

    我们正在构建一个多语言Drupal堆栈,我们担心的一个问题是我们的支付处理器将不得不向我们发送一些信息。我们可以缩小范围,让他们送回的绳子看起来像

    <country code>-<number of months>

    所以我们可以很容易地把它翻译成除英语以外的任何语言。

    t('FR-12') 如果我们想把它翻译成法语描述,那就很好了,但是因为没有英语,类似的字符串 t('EN-12') 不可翻译。

    与一般字符串类似:api_connection_error

    一开始,这种通用的字符串方法对我来说很有吸引力,但在Drupal中似乎不起作用。对于如何将此类通用字符串转换为英语和其他语言,您有什么建议吗?

    谢谢,我整个早上都在浏览谷歌。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Henrik Opel    15 年前

    目前,我看到了两种实现这一目标的方法:

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

    2. 看看 String Overrides module -它允许您为通过的任何字符串定义自定义重写 t() ,每种语言有单独的覆盖, 包括原来的英语 .

    在您的情况下,我将使用第二个选项,除非“外部”字符串的数量非常高。参见 T-() 用于覆盖机制的函数(在特定于语言的Drupal变量数组中查找)。

    注意,字符串重写模块只是添加了管理用户界面页面来配置后端中的Drupal变量——您也可以自己添加/调整它们(例如,从自定义模块)。

    推荐文章