0

我正在使用Ruby on Rails 3.1.0,我想知道是否可以處理存儲在數據庫表中的數據的文本翻譯。 這可能嗎?如果是這樣,怎麼樣?是否可以處理存儲在數據庫表中的數據的文本翻譯?

舉例來說,如果我有一個名爲Title的數據庫表列,並在我與設置\存儲到「」的Title值的記錄,我想顯示

  • 的文字「汽車」爲意大利人民;
  • 文字「auto」爲德國人;
  • 等等...
+0

可能嗎?當然如此。怎麼樣?通過閱讀關於如何做到這一點的所有其他帖子,您可以瞭解到其他所有的帖子,有很多,看看其他框架是FOSS,看看他們如何處理它,查看ROR中內置的解決方案以實現國際化,然後根據你發現的新知識,理解和研究建立一些東西。此時,當你有一個幾乎可行的解決方案,也許它只是堅持到某個地方,然後回到SO,並提出一個問題,將有一個答案,並顯示你知道如何爲自己工作。 – PurplePilot 2012-01-04 09:02:09

+0

@PurplePilot - 你能提供至少一些鏈接到Web資源,我可以知道更多關於我的問題的信息? – Backo 2012-01-04 09:04:38

回答

0

對於用戶生成的內容,最好將語言與內容一起存儲。

然後,您可以讓您的用戶使用不同的語言參考來創建此數據的「副本」。

根據您需要更改每張表的數量不同的寶石可能適合您的需求。 I18n寶石在這裏並不是一個好的選擇,因爲它是用於靜態內容的。參見:https://www.ruby-toolbox.com/categories/i18n

0

紅寶石可以幫助你從一種語言到另一種翻譯的話,但只提供散列和結構或代碼的算法,讓你做查找。它本身對單詞的含義一無所知,並且不能翻譯單詞。

爲了您的目的,您應該建立一個翻譯表,在主要字段中使用主要語言詞彙,並在次要字段中翻譯,每種語言使用一個字段。然後,您可以快速查找德語或意大利語表單中的所有單詞,並將其替換爲表單。

+0

那麼,你的意思是說,在從數據庫中檢索文本後,RoR可以「自動檢查」單詞(在正確的YAML文件中聲明)? – Backo 2012-01-04 09:22:20

+0

我不確定你的意思是「自動檢查」。沒有自動檢查;您可以根據用戶在設置帳戶時所選的設置,告訴Rails或Ruby根據需要的語言爲數據庫檢索單詞。這就像填寫ERB或HAML模板中的字段一樣,只是你不使用英文單詞,而是使用其他語言的單詞。 – 2012-01-04 09:39:26

0

您可以使用Rails Internationalization(i18n)API設置您的Rails應用程序進行國際化。您需要傳遞並設置語言環境。語言環境文件將駐留在config/locales中。正如錫罐人所述,區域設置文件是一個關鍵:值文件。在這裏您可以覆蓋自定義導軌的默認值。

區域設置可以從參數設置,也可以從域名設置。 Rails指南實際上是以我的觀點開始的最佳地點。

在其他的答案已經提到

http://guides.rubyonrails.org/i18n.html

0

AS,你要使用的鐵軌國際化功能得到這個工作。

然而,存在您的翻譯的替代方法。 This railscast描述瞭如何設置基於redis的翻譯後端,以及指向大量不同後端的鏈接。

如果您只是想使用ActiveRecord將您的翻譯存儲在數據庫中,我建議您查看i18n-active_record

有了這些插件,您可以輕鬆地將您的翻譯存儲在數據庫中,並讓您的應用程序使用I18n.t('some_translation_key')來查找它們。

相關問題