Ruby on Railsにおける国際化の簡単な紹介
言語関連の設定や文字列は、ビュー、モデル、コントローラで使用しないでください。このテキストは、config/locales の下にある言語ファイルに移動させる必要があります。
ActiveRecordモデルのタグを翻訳する必要がある場合は、activerecordスコープを使用します。
en:
activerecord:
models:
user: Member
attributes:
user:
name: "Full name"
すると、User.model_name.humanは"Member"を、User.human_attribute_name("name")は"Full name"を返すことになります。これらの属性の翻訳は、ビューでタグとして使用されます。
ビューで使用するテキストとActiveRecordの属性の翻訳を分離する。モデルに使う言語ファイルをmodelsというフォルダに、ビューに使うテキストをviewsというフォルダに入れます。
言語ファイルをディレクトリを追加して整理した場合は,そのディレクトリを読み込むように application.rb ファイルに記述してください.
# config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*. {rb,yml}')]
日付や通貨フォーマットのような共有ローカライズオプションをロケールのルートに置く。
I18n メソッドを凝縮したものを使用する。I18n.translate の代わりに I18n.t を、 I18n.localize の代わりに I18n.l を使用してください。
ビューで使用されているテキストを照会するには、"lazy" を使用します。次のような構造があるとします。
en:
users:
show:
title: "User details page"
users.show.titleの値は、app/views/users/show.html.hamlで次のように問い合わせることができます。
= t '.title'
コントローラとモデルには、:scope オプションを指定する代わりに、ドットで区切られたキーを使用します。ドットで区切られた呼び出しは、階層的に読みやすく、追跡しやすくなります。
# Called like this
I18n.t 'activerecord.errors.messages.record_invalid'
# Instead of this
I18n.t :record_invalid, :scope => [:activerecord, :errors, :messages]
関連
-
Railsにフィールド暗号化ストレージを実装
-
redisクラスタ構築のチュートリアルと発生した問題
-
Ruby on Railsで構築するアプリケーションの基本的なディレクトリ構造のまとめ
-
Rubyのデザインパターンプログラミングにおけるコマンドパターンの活用を徹底分析
-
Rubyの基本的な環境変数の設定と一般的なインタープリタコマンド
-
RubyインタプリタをOSにインストールするためのチュートリアル
-
Ruby on Railsのビューの書き方に関するいくつかのアドバイス
-
Ruby on Railsのインストールに関する簡潔で迅速なガイド
-
Rubyのモジュールに関する基礎知識
-
Rubyのクラスとモジュールの書き方のスタイルガイド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Rubyを使ったFTPパスワードクラッキング
-
Rubyの二分探索(dichotomous search)アルゴリズムの簡単な例
-
Rubyのオブジェクト指向プログラミングでクラスとメソッドの基本を学ぶ
-
RubyおよびRuby on RailsでJSON形式のデータをパースするためのチュートリアルの例
-
Ruby on Railsの基礎 - 新規プロジェクト
-
Ruby on RailsでPing ++プラットフォームでの決済を実現
-
Ruby on Railsのjquery_ujsコンポーネントが遅くなる問題が解決された
-
Ruby WebDriverガイド
-
Rubyにおけるrequireの使用例
-
Ruby on Railsのマイグレーションに関するいくつかの考慮点