Ruby on rails 多语言mongodb mongomapper

Ruby on rails 多语言mongodb mongomapper,ruby-on-rails,ruby,mongodb,multilingual,mongomapper,Ruby On Rails,Ruby,Mongodb,Multilingual,Mongomapper,我有一个类别集合,每个类别都有一个包含属性名称和单位的哈希数组,用于创建inout表单,以添加该类别的产品 例如,类别car字段-{name:length,unit:mm},{name:weight,unit:kg} 问题是我想这个网站是多语言的,因此需要存储每种语言的字段名 我可以把它们放在一起: 例如,类别car字段-{en name:length,cn name:…,de name:…,unit:mm} 有更好的办法吗 不确定这是否是最好的方式,因为我希望能够将所有类别的所有字段名的需要翻

我有一个类别集合,每个类别都有一个包含属性名称和单位的哈希数组,用于创建inout表单,以添加该类别的产品

例如,类别car字段-{name:length,unit:mm},{name:weight,unit:kg}

问题是我想这个网站是多语言的,因此需要存储每种语言的字段名

我可以把它们放在一起:

例如,类别car字段-{en name:length,cn name:…,de name:…,unit:mm}

有更好的办法吗

不确定这是否是最好的方式,因为我希望能够将所有类别的所有字段名的需要翻译的名称的文档传递给翻译人员,因此,以这种方式存储,我必须获取所有名称,然后放入另一个文档,然后翻译并插入新的翻译名称

有什么帮助或想法吗

谢谢
rick

最好的方法是将翻译放在语言环境文件(config/locales/)中。例如(英语地区):

然后在显示字段名称时显示类似的内容:

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

这样,您只能维护一个区域设置文件,并将其他文件发送给转换器。

最好的方法是将翻译放在区域设置文件(config/locales/)中。例如(英语地区):

然后在显示字段名称时显示类似的内容:

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

这样,您可以只维护一个区域设置文件,并将其他文件发送给转换器。

模型转换在MongoDB中相当容易

以下是使用自定义MongoMapper类型透明处理本地化的要点:

你的本地化字符串看起来像

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

自定义类型只存储/返回当前I18n的值。locale

模型转换在MongoDB中相当容易

以下是使用自定义MongoMapper类型透明处理本地化的要点:

你的本地化字符串看起来像

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

自定义类型只存储/返回当前I18n.locale的值

感谢您的解决方案。唯一的问题是我需要重新启动应用程序,以便将新的更改引入到区域设置文件中。或者我没有?我的用户是否可以从我的应用程序将某些字段的翻译添加到这些文件中?谢谢,您需要重新启动应用程序以重新加载区域设置文件。我认为字段名已经知道了,你只需要一些简单的方法来翻译它们,我不认为你希望你的用户通过运行的应用程序添加翻译。如果是这样的话,我的解决方案可能不太适用。无论如何,如果您需要一些简单的翻译方法,您应该检查区域设置文件,如果您只希望UI是多语言的,那么就可以了,但是如果您希望内容也是多语言的呢?也就是说,如果你只想在网站的西班牙语版本上显示西班牙语内容,等等。你会为此使用单独的数据库吗?每种语言、每列的键值对?e、 g.$obj[name][english]=表格谢谢您的解决方案。唯一的问题是我需要重新启动应用程序,以便将新的更改引入到区域设置文件中。或者我没有?我的用户是否可以从我的应用程序将某些字段的翻译添加到这些文件中?谢谢,您需要重新启动应用程序以重新加载区域设置文件。我认为字段名已经知道了,你只需要一些简单的方法来翻译它们,我不认为你希望你的用户通过运行的应用程序添加翻译。如果是这样的话,我的解决方案可能不太适用。无论如何,如果您需要一些简单的翻译方法,您应该检查区域设置文件,如果您只希望UI是多语言的,那么就可以了,但是如果您希望内容也是多语言的呢?也就是说,如果你只想在网站的西班牙语版本上显示西班牙语内容,等等。你会为此使用单独的数据库吗?每种语言、每列的键值对?e、 g.$obj[name][english]=表格非常感谢Michael,我正试图在我的应用程序中使用你的要点,它正在处理一个名为test的字段,但如果我创建一个名为test2的新字段,它的类型与key:test2,LocalizedString相同,那么test3的值与test相同,我还没有为test2添加任何内容。我不必使本地化字符串2类型等我做,因为我想用很多领域这一点。请帮忙,非常感谢你迄今为止的帮助,这正是我所需要的。向RichardBest致意非常感谢Michael,我正在尝试在我的应用程序中使用你的要点,它正在处理一个名为test的字段,但如果我创建一个名为test2的新字段,它的类型与key:test2,LocalizedString相同,那么test3的值与test相同,我还没有为test2添加任何内容。我不必使本地化字符串2类型等我做,因为我想用很多领域这一点。请帮忙,非常感谢你迄今为止的帮助,这正是我所需要的。向理查德问好