我正在使用Ruby on Rails 3.1.0,我想知道是否可以处理存储在数据库表中的数据的文本翻译。 有可能吗?如果是这样,怎么样?
例如,如果我有一个名为Title
的数据库表列,并且我有一个记录Title
值设置\存储到“ car ”,我想表明
答案 0 :(得分:0)
Ruby可以帮助您将单词从一种语言翻译成另一种语言,但只能提供允许您进行查找的散列和结构或代码算法。它本身并不知道单词的含义,也无法翻译单词。
为了您的目的,您应该构建一个翻译表,主要字段中包含主要语言单词,辅助字段中的翻译,每种语言一个字段。然后,您可以快速查找德语或意大利语表单的所有单词,并将其替换为表单。
答案 1 :(得分:0)
您可以使用Rails Internationalization(i18n)API设置rails应用程序以实现国际化。您需要传递并设置区域设置。语言环境文件将驻留在config / locales中。正如tin Man所提到的,locale文件是一个键:值文件。在这里,您可以覆盖自定义rails默认值。
可以从params和域名设置区域设置。在我看来,Rails指南实际上是最好的开始。
答案 2 :(得分:0)
正如其他答案中已经提到的,您将需要使用rails i18n功能来实现此功能。
但是,有其他方式可以存储您的翻译。 This railscast描述了如何设置基于redis的翻译后端,以及指向一大堆不同后端的链接。
如果您只想使用ActiveRecord将翻译存储在数据库中,我建议您查看i18n-active_record。
使用这些插件,您可以轻松地将翻译存储在数据库中,并让您的应用程序使用I18n.t('some_translation_key')
为您查找。
答案 3 :(得分:0)
对于用户生成的内容,最好将语言与内容一起存储。
然后,您可以让您的用户使用不同的语言参考创建此数据的“副本”。
根据您需要更改每张桌子的数据量,不同的宝石可能适合您的需求。 I18n gem在这里不是一个好选择,因为它适用于静态内容。请参阅:https://www.ruby-toolbox.com/categories/i18n