スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

I18n を使った多言語対応①

多言語対応について。

ひとつの言語でサイトを作る場合は特に気にしなくてもよいが、
様々な言語に対応するサイトを構築するときに便利なのが I18n モジュールである。

まず適当にプロジェクトを作成し、scaffoldでuserモデルを作成。
$ rails new localization
$ cd localization
$ rails g scaffold user name:string

テーブルを作成し実行する。
$ rake db:migrate
$rails s

実行して適当にuserを追加しindexページにアクセスすると、
「Name」というテキストの下にuserの一覧表が出来上がる。

ここで生成されたファイルを見てみる。
config/localsフォルダの中にen.ymlというファイルが作られている。
実はこれがローケルファイルであり、I18nモジュールを使用する際に参照するファイルである。
これを以下のように編集する。
en:
name: "User's name are"


次に、このローケルファイルを参照するために、config/initializersにi18n.rbというファイルを追加し、
以下のように記述する。
I18n.default_locale = 'en'
LOCALES_DIRECTORY = "#{Rails.root}/config/locales/"

ここではI18nモジュールを使用しデフォルトの言語を1行目で設定し、
2行目で参照するローケルファイルのあるディレクトリを指定している。

最後に、app/views/users/index.html.erbを以下のように編集する。
<h1>Listing users</h1>

<table>
<tr>
<th><%= I18n.t('name') %></th>
</tr>

<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>

<br />

<%= link_to 'New User', new_user_path %>

すると、「Name」の部分が「User's name are」となって表示される。

このようにしてI18nモジュールを使用することができる。

これを応用すると多言語対応されたアプリケーションができるってわけ。
具体的なやり方はまた次の機会に書こうと思う。
スポンサーサイト
検索フォーム
プロフィール

yas

Author:yas
yasと申します。
RailsにてWebアプリケーション開発をしております。

【開発環境】
OS: Mac OSX 10.6
Ruby: 1.9
Rails: 3.0
IDE: NetBeans6.9

最新記事
カテゴリ
月別アーカイブ
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。