2012-01-18 67 views
1

我一直希望利用Globalize3來翻譯我正在構建的項目中的模型。然而,嘗試它,它看起來像每一個模型,說Post,如:Globalize3中的相同字符串需要重複的翻譯嗎?

class Post < ActiveRecord::Base 
    translates :title, :body 
end 

將是在這個意義上,一個標題必須翻譯多次其他職位完全獨立,即使標題相同的已翻譯一。即系統已經知道它應該是。

我明白,在很多情況下,字符串是獨一無二的,所以這不是問題,但是,想象一下帶有顏色屬性的汽車模型。如果系統有數百輛相同顏色的汽車,我是否應該多次翻譯顏色?我想只翻譯一次,如果字符串相同,所有人都可以使用相同的翻譯。

我誤解了一些東西,或者這真的是Globalize3的工作原理嗎?如果是這樣,它真的聽起來像是當字符串是獨一無二的,就像博客一樣。

是否有另一個可用的gem做我所需要的?

感謝您的幫助!

回答

2

本質上就是全球化的工作原理,即每個模型記錄的屬性都被翻譯並保存在翻譯記錄中。

你的問題可以通過規範化表格來解決,所以顏色本身就變成了一個模型,並且你翻譯了它。

雖然我不會那樣做,但我不知道你的場景有任何寶石。我會做以下操作:

改爲存儲RGB值,並在控制器中將其轉換爲顏色名稱。然後你可以使用Rails i18n模塊翻譯它。

還是上面的變化,您使用的顏色名稱作爲國際化的鍵,如t("color.#{car.color.parameterize}"),並在en.yml有

en: 
    color: 
    dark-blue: 'Dark Blue' 
0

這是你不能輕易避免的問題,如果字符串翻譯是「標準」你可以用lulalala提出的解決方案(模型那個信息)。

我有一個類似的問題(不是在Rails中,但它是相同的),我們「固定」了一個定期自動複製翻譯內容的任務。