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