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

More Related Content

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

チャット文化と相性の良いアプリ配布方法
チャット文化と相性の良いアプリ配布方法チャット文化と相性の良いアプリ配布方法
チャット文化と相性の良いアプリ配布方法
Tsuyoshi Yonemoto
 
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRubyKanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発takuma mori
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Takako Miyagawa
 
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れメディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
sugimoto1022
 
AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929
EikoHoshino
 

Similar to I18nを使ってサイトを多言語化しよう (6)

チャット文化と相性の良いアプリ配布方法
チャット文化と相性の良いアプリ配布方法チャット文化と相性の良いアプリ配布方法
チャット文化と相性の良いアプリ配布方法
 
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRubyKanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
 
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れメディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
 
AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929
 

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