2010-06-30 63 views
1

我有一個類別集合,每個類別都有一個哈希數組,其中包含屬性名稱和單位以創建inout表單,以添加該類別的產品。多語種mongodb mongomapper

例如類別汽車領域 - {名稱:長度,單位:mm},{名稱:重量,單位:kg}。

問題是我想這個網站是多語言的,因此需要存儲每種語言的字段名稱。

我可以把他們聯:

例如類汽車領域 - {EN-名稱:長度,CN-名稱:.....,去名:.....,單位:mm }

有沒有更好的方法?

不知道這是否是最好的方式,因爲我想能夠傳遞名稱需要翻譯爲翻譯所有類別的所有字段名稱的文件,因此存儲這種方式我將不得不抓住所有然後把進入另一篇文章,然後翻譯並插入新的翻譯naes回!

任何幫助或想法?

感謝 裏克

+0

非常感謝邁克爾 我試着克至使用您的要點在我的應用程序及其對一個領域的工作稱爲測試,但如果我創建一個名爲同一類型的test2的新領域像 鍵:TEST2,LocalizedString 然後TEST3的價值是相同的作爲測試,並且我還爲test2添加了任何內容。 我不必做LocalizedString2類型等我做我想用這很多領域。 請幫助和感謝你的幫助,迄今爲止,這正是我所需要的。 最好的問候 理查德 – rick 2011-02-17 12:02:28

回答

1

最好的辦法是把在區域設置文件的翻譯(在配置/區域設置/)。例如(英語語言環境):

en: 
    categories: 
    car: 
     length: Length 

然後像場的那個顯示時的名字:

I18n.t("categories.#{category.name}.#{field_name}") 

這樣你就可以只保留一個區域設置文件和發送其他的人來翻譯。

+0

感謝您的解決方案。 唯一的問題是我需要重新啓動應用程序以引入對區域設置文件的新更改。或不要我? 我的用戶也有可能從我的應用程序中將某些字段的翻譯添加到這些文件中? 謝謝 – 2010-06-30 16:37:36

+0

是的,你需要重新啓動應用程序來重新加載語言環境文件。 我認爲字段名稱已經知道了,你只需要一些簡單的方法來翻譯它們,我沒有假設你想讓你的用戶通過正在運行的應用程序添加翻譯。如果是這種情況,我的解決方案可能不容易適用。 無論如何,如果你需要一些簡單的方法來處理翻譯,你應該檢查http://99translations.com – 2010-06-30 22:11:31

+0

如果你只想要UI是多語言的,但是如果你希望內容也是多種語言?也就是說,如果你只想要西班牙語版本的網站上的西班牙文內容等,你會使用單獨的數據庫嗎?每列每種語言的鍵值對?例如$ obj [name] [english] =表格 – 2011-01-18 17:23:27

0

在MongoDB中,模型翻譯相當簡單。

這是一個使用自定義MongoMapper型透明地處理要點定位:https://gist.github.com/828114

你LocalizedString會是什麼樣子

name: { 
    en: '...', 
    cn: '...', 
    de: '...' 
} 

自定義類型只是存儲/返回當前I18n.locale值