我正在创建一个应用程序,让管理员输入页面的本地化静态内容。 对于前者现在“关于我们”的内容是英文,我希望管理员能够输入相同的“关于我们”俄语内容。 我该如何存储本地化内容? 我认为管理员将无法编辑每种语言的YAML文件。 我想将所有数据存储在一个表中,并将一个引用语言ID存储在cookie中。 每次视图加载检查我正在使用哪种语言时,调用locale cookie,将其与数据库进行比较,然后调用language = en / ru / whatever的特定行。
更好的方法吗?
答案 0 :(得分:7)
如今,您只需将index.fr.html.erb
和index.en.html.erb
放在同一个文件夹中,rails就可以完成其余工作。
答案 1 :(得分:1)
odin是对的,我的意思是用不同的语言存储多个版本的页面, 我以为我可以把它留在YAML并就地编辑它,我偶然发现了这个 -
http://asciicasts.com/episodes/256-i18n-backends
我们将i18n后端更改为Key-Value后端(Hash),但这意味着每次重新启动Web服务器时哈希都会丢失,因此本文建议使用Redis另一个调用自身的键值存储
Redis是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串,散列,列表,集和排序集。
似乎相当聪明地保存它,因为我仍然使用Rails l18n,这意味着我可以相当容易地路由所有内容,但我允许用户编辑每个语言环境的内容。