我们需要开始通过我们的不同应用程序以多种语言提供动态内容。
应考虑两种类型的本地化:UI本地化和内容本地化。 UI本地化是界面交付时使用的语言(静态文本),而内容本地化是查看/编辑语言内容(Rails模型)
我们基本上有3种类型的应用
我应该注意,我们正在使用Rails 3.2,ActiveAdmin 0.6.6(需要升级,但不是优先级:))
要本地化内容,我们正在寻找全球化的宝石(https://github.com/globalize/globalize)
在与API端点进行接口时使用globalize似乎没有任何问题。我们可以使用Accept-Language
标头,并在before_filter中设置I18n.locale
属性,一切似乎都可以正常工作。这意味着应该涵盖移动应用程序和客户端Web应用程序。
对于ActiveAdmin,这变得有些困难。对于ActiveAdmin应用,我们希望以用户首选的语言提供UI静态文本,同时允许他们在内容的语言之间进行切换。
全球化gem利用I18n.locale
属性来确定要为内容翻译更新/读取的语言环境。由于ActiveAdmin未使用AJAX,因此设置I18n.locale
也将影响UI静态文本。
目前,这没什么大不了的,因为我们对于UI仅有一个语言环境(config / locales仅包含en yml文件)。这意味着我们可以使用https://github.com/activeadmin/activeadmin/wiki/Specifying-locale中描述的方法,并设置I18n.locale
属性以通过全球化更新正确的动态内容,而UI界面将继续以英语提供
但是,考虑到未来,我们可能会在其中添加UI的其他语言,我正在寻找有关如何保持UI区域设置和内容区域设置分离的想法。其他语言(例如Java和C#)在其I18n等效库中具有不同的属性,但是Rails似乎不接受这一点
有想法吗?
预先感谢
答案 0 :(得分:0)
经过进一步调查,我最终使用了activeadmin-globalize gem。最初,我认为它与基于文档的global gem不兼容,但是它是