2016-03-26 69 views
0

我開發電子發票模塊,並應表現在西班牙語中的付款條件,所以我設置一個字典,所有需要的字段,當我這樣做:如何強制在我的Odoo代碼中翻譯字段?

{ 
... 
'FmaPago': inv.payment_term.name, 
... 
} 

輸出文件包含價值「名稱」的英文。我試過類似

_(inv.payment_term.name) 

但結果相同。

我應該如何強制在一個定義的翻譯中表達的價值?

回答

1

付款條款的字段名都已經翻譯。您可以通過在編輯模式下單擊字段內的小按鈕來更改Odoo中的翻譯。

Translatable field in Odoo

如果你這樣做是正確的,你必須避免在代碼方面的一些典型的錯誤,如果你使用舊的API。

  1. 總是傳遞上下文

例如如果您瀏覽的發票,通過上下文,才能得到正確的所有翻譯

  • 利用合作伙伴的語言,如果你想翻譯爲他們
  • Odoo使用用戶語言他的上下文,以正確地翻譯Web客戶端。如果您爲客戶打印文檔,當然需要客戶語言...... 因此,您可能需要操縱上下文(鍵'lang')。對於新的API,你必須調用with_context()來做到這一點。

    0
    1. 對於想要翻譯的字符串,您必須使用_()。
    2. 你必須翻譯文件* .po(因爲我remmember),這就是我的想法。

    不要忘了查看文檔link