0

我正在寻找在我管理的 rails 2.2.2 应用程序中使用的本地化系统。我想我以前见过一个完全符合我想要的,但我无法用谷歌找到它。

我想到的系统的工作方式如下:任何 ActiveRecord 模型(或者可能是指定模型的列表,例如在配置文件中列出)都可以有一个与之关联的翻译记录,它指定一个语言环境和一个或一个的新值该记录中的更多字段,用于列出的语言环境。请注意,这是与 i18n 解决的问题不同的问题:它是一种设置特定于区域设置的数据的方法,而不是设置特定于区域设置的字段名称或类似的“系统级”字符串。

例如,假设我的网站提供音乐课程。在英国(默认语言环境),最后一个“节拍”的音符称为“crotchets”*,而在美国则称为“四分音符”。所以,我可能有一个包含这些数据的课程:

#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”到“四分音符”,这可能会诱使读者认为我只需要某种简单的字符串替换翻译。但事实并非如此——一些美国特定的名称/描述将与英国同行完全不同,因此需要一个完全可定制的面向我们的名称、描述等。

*这在所有情况下可能在音乐上并不完全正确,但这超出了这个问题的范围:)

4

1 回答 1

1

我认为Globalize2可能是您所追求的特定于语言环境的数据解决方案(我已经成功地将Globalize3用于我的 Rails 3.2 应用程序)。如果没有,那么希望 Globalize2 的 Github repo README 文件中的替代解决方案部分将提供其他适用于 Rails 2.2 的内容。祝你好运!

于 2013-01-07T11:25:07.963 回答