私は単純なRailsアプリケーションを持っています(データベース駆動型でさえありません)。そして基本的には2つの言語をサポートさせたいと思っています。これに対する私のアプローチは、フッターに2つの小さなフラグを設定することです。1つはGB(英語の場合)、もう1つはドイツ(ドイツ語の場合)です。ユーザーがいずれかをクリックすると、サイトの言語が国旗の対応する言語に変わります。
[en.yml]と[de.yml]をすべてセットアップし、すべてのビューでそれらのキーを使用しました。また、[config.i18n.default_locale]プロパティを[en [config/application.rb]の]と[de]。その点ではすべてうまくいきます。
しかし、私は言語変更メカニズムをどのように実現できるかについて悩んでいます。[Language]というコントローラーを作成し、その中で[Set]というメソッドを定義しましたが、それ以外はほとんど空白です。次のようになります。
class LanguageController < ApplicationController
def set
I18n.locale = params[:lang]
redirect_to(:controller => 'home', :action => 'index')
end
end
上記はうまくいかないようです。[ / language / set?lang = "de" ]を呼び出すと、ローカライズされた文字列が実際のドイツ語に翻訳されたテキストではなくキーに変わります。