【发布时间】:2013-03-09 13:42:26
【问题描述】:
我有一个简单的 Rails 应用程序(甚至不是数据库驱动的)。基本上我想让它支持两种语言。我的方法是在页脚中添加 两个小标志,一个是 GB(用于 English),一个是德国(用于 German) .当用户点击一个时,网站的语言会变为国家标志的相应语言。
我的 [ en.yml ] 和 [ de.yml ] 都设置好了,并且我在我的所有视图中都使用了它们的键,我什至还进行了测试它们通过在 [ config/application.rb ] 中的 [ en ] 和 [ de ] 之间交换 [ config.i18n.default_locale ] 属性来工作。在这方面一切都很好。
但是,我对如何实现语言更改机制感到困惑。我创建了一个名为 [ Language ] 的控制器,并在其中定义了一个名为 [ Set ] 的方法,但除此之外,它几乎是空白的,这是我认为应该发生的事情:
class LanguageController < ApplicationController
def set
I18n.locale = params[:lang]
redirect_to(:controller => 'home', :action => 'index')
end
end
上述方法似乎不起作用。当我调用 [ /language/set?lang="de" ] 时,本地化字符串变为 keys 而不是实际的德语翻译文本。
【问题讨论】:
标签: ruby-on-rails-3.1 internationalization globalization