我正在寻找一个在我管理的rails 2.2.2 app中使用的本地化系统。我想我之前已经看过一个确切的我想要但我无法用谷歌找到它。
我想到的系统工作原理如下:任何ActiveRecord模型(或者可能是指定模型的列表,例如在配置文件中列出)都可以有一个与之关联的翻译记录,它指定了一个区域设置和新值对于列出的区域设置,该记录中的一个或多个字段。请注意,这是i18n解决的一个单独的问题:它是一种设置特定于语言环境的数据的方式,而不是特定于语言环境的字段名称或类似的“系统级”字符串。
例如,假设我的网站提供音乐课程。在英国(默认语言环境),持续一个“节拍”的音符称为“四分音符”*,而在美国,它们被称为“四分音符”。所以,我可能有一个有这些数据的教训:
#a Lesson object, with an entry in the "lessons" table in the db
id: 1234
name: "My Lesson"
description: "In this lesson you'll learn about crotchets."
我想要与之关联的翻译记录:
id: 1
translatable_type: "Lesson"
translatable_id: 1234
locale: "US"
data: {:description => "In this lesson you'll learn about quarter notes"}
现在,当我查看课程时,系统会检查当前的区域设置,并查看本课程是否有任何当前特定于语言环境的数据,看到有(描述)并显示而不是标准描述。
有没有人见过像这样的系统?
谢谢,最大
PS - 在这个例子中我做了一个简单的字符串替换“crotchets”到“quarter notes”,这可能诱使读者认为我只需要某种简单的字符串替换翻译。但事实并非如此 - 一些美国特定的名称/描述将与他们的英国同行完全不同,因此需要一个完全可定制的面向美国的名称,描述等。
*在所有情况下,这可能不完全正确,但这超出了这个问题的范围:)
答案 0 :(得分:1)
我认为Globalize2可能就是针对特定于语言环境的数据解决方案(我已成功使用Globalize3用于我的Rails 3.2应用程序)。如果没有,那么希望Globalize2的Github repo README文件中的alternative solutions section将提供适用于Rails 2.2的其他功能。祝你好运!