2010-03-18 86 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