Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
アイは世界を救う!
I18nを使ってサイトを多言語化しよう!!
自己紹介です
•大内聖也(おおうちせいや)
•茨城県出身です
•好きなもの:ラーメン、inject(rubyのメソッド)
•Ruby/Rails 開発経験:
Rails3が約1年、Rails4が半年位
•まだまだ修行の身
•よろしくお願いします...
アジェンダ
1. I18nって何?
2. 簡単な使い方
3. ちょっとしたテクニック
4. 実際に動かしてみる (DEMO)
5. おまけ(I18nを使ったgemの紹介)
1. I18nって何?
•アプリケーションの文言を別の1つの言語に翻訳する機能
や、多言語サポート機能を拡張可能な方式で導入する
フレームワークのこと
•名前の由来は多言語を意味する「internationalization」
•IとNの間の文...
2. 簡単な使い方
1.「config/locale」にyaml形式の翻訳ファイルを
保存
保存名は「ja.yml」や「en.yml」などにすると分かりやすい
例えば日本語なら「ja」、
英語なら「en」から始め
るようにする
ja.yml j...
2. 簡単な使い方
2. 「application.rb」に利用言語を設定する
・enforce_available_locales
設定していないlocaleが指
定された時に例外を発生さ
せるかどうかを指定する。
Rails 4.0.4 以...
2. 簡単な使い方
3. I18n#tメソッドを使って記述する
例えば「はろーわーるど」を出力したいときは
「t(‘halloworld’)」
「ユーザ」を出力したいときは
「t(‘activerecord.models.user’)」
指定し...
2. 簡単な使い方
4. I18n#localeに利用言語を設定する
•I18nにどの言語を利用するかを設定しておくことで、出力内容を切り替える
ことができる
日本語の場合 I18n.locale = :ja
英語の場合 I18n.locale...
3. ちょっとしたテクニック
1. 記述の省略
Viewテンプレートの階層と翻訳ファイルの階層を一致させておくと、
パスの記述を省略することができる
t(‘.show’)で「詳細」
と出力できる
app/views/users/index.ht...
3. ちょっとしたテクニック
•2. formのlabelにモデルの属性の翻訳を当てる
f.label :name に「名前」
が出力される
3. ちょっとしたテクニック
•3. Model.model_name.humanとModel.human_attribute_name
モデル名をModel.model_name.human、属性名をModel.human_attribute...
たったこれだけで、
多言語化できてしまうんです!!
m9っ`Д´)
4. 実際に動かしてみる (DEMO)
5. おまけ(I18nを使ったgemの紹介)
globalize
•「モデル名_translations」というテーブル(usersならuser_translations)を作成し、
I18nのlocaleに応じて属性をDBに保存・表示してくれ...
参考資料
•Rails国際化(I18n) API
•http://railsguides.jp/i18n.html
•globalize
•https://github.com/globalize/globalize
•globalize-ac...
是非、自分のWebサイトの
多言語化を考えてみては
いかがでしょうか?
ご清聴ありがとうございましたm(__)m
Upcoming SlideShare
Loading in …5
×

I18nを使ってサイトを多言語化しよう

934 views

Published on

I18nを用いてRails上で多言語化するやり方を
説明した資料です

Published in: Software
  • Be the first to comment

I18nを使ってサイトを多言語化しよう

  1. 1. アイは世界を救う! I18nを使ってサイトを多言語化しよう!!
  2. 2. 自己紹介です •大内聖也(おおうちせいや) •茨城県出身です •好きなもの:ラーメン、inject(rubyのメソッド) •Ruby/Rails 開発経験: Rails3が約1年、Rails4が半年位 •まだまだ修行の身 •よろしくお願いします(・∀・)
  3. 3. アジェンダ 1. I18nって何? 2. 簡単な使い方 3. ちょっとしたテクニック 4. 実際に動かしてみる (DEMO) 5. おまけ(I18nを使ったgemの紹介)
  4. 4. 1. I18nって何? •アプリケーションの文言を別の1つの言語に翻訳する機能 や、多言語サポート機能を拡張可能な方式で導入する フレームワークのこと •名前の由来は多言語を意味する「internationalization」 •IとNの間の文字数「”nternationalizatio”.length= 18」が由来
  5. 5. 2. 簡単な使い方 1.「config/locale」にyaml形式の翻訳ファイルを 保存 保存名は「ja.yml」や「en.yml」などにすると分かりやすい 例えば日本語なら「ja」、 英語なら「en」から始め るようにする ja.yml ja.yml
  6. 6. 2. 簡単な使い方 2. 「application.rb」に利用言語を設定する ・enforce_available_locales 設定していないlocaleが指 定された時に例外を発生さ せるかどうかを指定する。 Rails 4.0.4 以降はdefaultで true
  7. 7. 2. 簡単な使い方 3. I18n#tメソッドを使って記述する 例えば「はろーわーるど」を出力したいときは 「t(‘halloworld’)」 「ユーザ」を出力したいときは 「t(‘activerecord.models.user’)」 指定したい翻訳が階層化されているときは、ドット「.」でつないでパスを 記述する
  8. 8. 2. 簡単な使い方 4. I18n#localeに利用言語を設定する •I18nにどの言語を利用するかを設定しておくことで、出力内容を切り替える ことができる 日本語の場合 I18n.locale = :ja 英語の場合 I18n.locale = :en •「t(‘halloworld’)」が「はろーわーるど」や、「Hallo World!!」になる •application_controllerのbefore_actionなどで設定する
  9. 9. 3. ちょっとしたテクニック 1. 記述の省略 Viewテンプレートの階層と翻訳ファイルの階層を一致させておくと、 パスの記述を省略することができる t(‘.show’)で「詳細」 と出力できる app/views/users/index.html.erb(一部)
  10. 10. 3. ちょっとしたテクニック •2. formのlabelにモデルの属性の翻訳を当てる f.label :name に「名前」 が出力される
  11. 11. 3. ちょっとしたテクニック •3. Model.model_name.humanとModel.human_attribute_name モデル名をModel.model_name.human、属性名をModel.human_attribute_name で表示できる t(‘activerecord.attribut es.user.name’)と同じ!
  12. 12. たったこれだけで、 多言語化できてしまうんです!! m9っ`Д´)
  13. 13. 4. 実際に動かしてみる (DEMO)
  14. 14. 5. おまけ(I18nを使ったgemの紹介) globalize •「モデル名_translations」というテーブル(usersならuser_translations)を作成し、 I18nのlocaleに応じて属性をDBに保存・表示してくれるもの 例 I18n.locale=:jaのとき、user.name = ‘太郎’ I18n.locale=:enのとき、user.name = ‘Taro’ みたいに、ユーザ情報を言語別に表示させたい内容を時などに 使えます
  15. 15. 参考資料 •Rails国際化(I18n) API •http://railsguides.jp/i18n.html •globalize •https://github.com/globalize/globalize •globalize-accessors •https://github.com/globalize/globalize-accessors
  16. 16. 是非、自分のWebサイトの 多言語化を考えてみては いかがでしょうか?
  17. 17. ご清聴ありがとうございましたm(__)m

×