59
i18n_generators のご紹介 Akira Matsuda @ 楽天テクノロジーカンファレンス 2008

i18n_generatorsのご紹介

Embed Size (px)

DESCRIPTION

楽天テクノロジーカンファレンス2008でLTしたときのスライド。i18n_generatorsというRails 2.2用自作ライブラリの紹介。

Citation preview

Page 1: i18n_generatorsのご紹介

i18n_generatorsのご紹介Akira Matsuda

@ 楽天テクノロジーカンファレンス 2008

Page 2: i18n_generatorsのご紹介

自己紹介

Page 3: i18n_generatorsのご紹介

http://asakusa.rubyist.net/

Page 4: i18n_generatorsのご紹介

今からしゃべること

Page 5: i18n_generatorsのご紹介

Ruby on Rails 2.2のI18N/L10N

を支援するライブラリ

Page 6: i18n_generatorsのご紹介

% sudo gem installamatsuda-i18n_generators

Page 7: i18n_generatorsのご紹介

Rails I18n のおさらい

Page 8: i18n_generatorsのご紹介

Ruby on Railsって、なんていう言語で書かれているフレームワークかご存知ですか?

Page 9: i18n_generatorsのご紹介

Ruby on Rails(< 2.2)

Page 10: i18n_generatorsのご紹介

Ruby on Rails(< 2.2)は英語で書かれている。

Page 11: i18n_generatorsのご紹介

Ruby

英 語

Rails

Application ApplicationApplication

Page 12: i18n_generatorsのご紹介

Rails I18nはRailsから英語を排除

Page 13: i18n_generatorsのご紹介

これにより、

Page 14: i18n_generatorsのご紹介

従来の日本語化

Page 15: i18n_generatorsのご紹介

Ruby

英 語

Rails

Application ApplicationApplication

ここらへんで頑張って動的にローカライズ

Page 16: i18n_generatorsのご紹介

Rails 2.2での日本語化

Page 17: i18n_generatorsのご紹介

Ruby

Rails + i18n

Application ApplicationApplication

Page 18: i18n_generatorsのご紹介

すっきり!

Page 19: i18n_generatorsのご紹介

• 実行時に翻訳エンジンがmixinされないので、 動作が追いやすい• 実行時に翻訳エンジンがmixinされないので、 (たぶん)早い• 環境構築が楽チン!• 定義ファイルは読み書きしやすいYAMLで• 再起動ナシで再読み込み• etc. etc.

merits

Page 20: i18n_generatorsのご紹介

no more monkey patching!

Page 21: i18n_generatorsのご紹介

Rails I18n and me

Page 22: i18n_generatorsのご紹介

2008年7月

Page 23: i18n_generatorsのご紹介

Rails勉強会@東京 第31回で「Rails 2.2のI18nについてくわしく」のセッションオーナーをやった

Page 24: i18n_generatorsのご紹介

中の人と個人的に何度かメールのやり取りをした

Page 25: i18n_generatorsのご紹介

日本語のロケールファイルja.yml

をプロジェクトにコミット

Page 26: i18n_generatorsのご紹介

要望チケットを何件か挙げた。

Page 27: i18n_generatorsのご紹介

それだけ。

Page 28: i18n_generatorsのご紹介

2008/9/4

Page 29: i18n_generatorsのご紹介

RailsConf Europe 2008Sven Fuchsさんの発表

http://en.oreilly.com/railseurope2008/public/schedule/detail/3569

Page 30: i18n_generatorsのご紹介
Page 31: i18n_generatorsのご紹介

なんかThanksに名前が載ってた

Page 32: i18n_generatorsのご紹介

これはヤバい。

Page 33: i18n_generatorsのご紹介

なんか作った。

Page 34: i18n_generatorsのご紹介

i18n_generators

Page 36: i18n_generatorsのご紹介

そしたら、

Page 37: i18n_generatorsのご紹介

なんか公式Wikiにも載った。http://rails-i18n.org/

Page 38: i18n_generatorsのご紹介
Page 39: i18n_generatorsのご紹介

頑張ります。

Page 40: i18n_generatorsのご紹介

主な機能

Page 41: i18n_generatorsのご紹介

1. アプリのデフォルトロケールを設定

2.ロケール定義ファイルを自動生成

3. DB内の全modelとその全カラムの翻訳YAMLを生成

4. viewで呼び出されているtranslationの翻訳YAMLを生成

5. scaffoldをi18n拡張

Page 42: i18n_generatorsのご紹介

1. アプリのデフォルトロケールを設定

2. ロケール定義ファイルを自動生成

3. DB内の全modelとその全カラムの翻訳YAMLを生成

4. viewで呼び出されているtranslationの翻訳YAMLを生成

5. scaffoldをi18n拡張

Page 43: i18n_generatorsのご紹介

DHHが作ったconfig/environment.rbの定義を書き換えるだけ。

Page 44: i18n_generatorsのご紹介

1. アプリのデフォルトロケールを設定

2. ロケール定義ファイルを自動生成

3. DB内の全modelとその全カラムの翻訳YAMLを生成

4. viewで呼び出されているtranslationの翻訳YAMLを生成

5. scaffoldをi18n拡張

Page 46: i18n_generatorsのご紹介

1. アプリのデフォルトロケールを設定

2. ロケール定義ファイルを自動生成

3. DB内の全modelとその全カラムの翻訳YAMLを生成

4. viewで呼び出されているtranslationの翻訳YAMLを生成

5. scaffoldをi18n拡張

Page 47: i18n_generatorsのご紹介

全モデルとその属性をループしつつ、Google翻訳API にガンガン食わせる。

Page 48: i18n_generatorsのご紹介

1. アプリのデフォルトロケールを設定

2. ロケール定義ファイルを自動生成

3. DB内の全modelとその全カラムの翻訳YAMLを生成

4. viewで呼び出されているtranslationの翻訳YAMLを生成

5. scaffoldをi18n拡張

Page 49: i18n_generatorsのご紹介

同上。

Page 50: i18n_generatorsのご紹介

1. アプリのデフォルトロケールを設定

2. ロケール定義ファイルを自動生成

3. DB内の全modelとその全カラムの翻訳YAMLを生成

4. viewで呼び出されているtranslationの翻訳YAMLを生成

5.scaffoldをi18n拡張

Page 51: i18n_generatorsのご紹介

Iain Heckerさんの作品をそのままパチっ借用してscaffoldジェネレーターに食わせているだけ。

Page 52: i18n_generatorsのご紹介

以上、全部他人のフンドシ。

Page 53: i18n_generatorsのご紹介

DEMO(ドラが鳴るまで)

Page 54: i18n_generatorsのご紹介

% sudo gem installamatsuda-i18n_generators

Page 55: i18n_generatorsのご紹介

# Rails 2.2.2がインストールされていることを確認して、% rails -vRails 2.2.2

# アプリを作成% rails rakuten

Page 56: i18n_generatorsのご紹介

# generate i18n_scaffold% ./script/generate i18n_scaffold todo title:string

# migrate% rake db:migrate

# 確認してみる% ./script/server

Page 57: i18n_generatorsのご紹介

# generate i18n で日本語化!% ./script/generate i18n ja

# 再起動% ./script/server

Page 58: i18n_generatorsのご紹介

# スキーマ変更してみる% ./script/destroy scaffold todo % ./script/generate i18n_scaffold todo title:string registered_at:datetime

#モデルの翻訳のみ更新する i18n_translation% ./script/generate i18n --translation ja

# 再起動不要!

Page 59: i18n_generatorsのご紹介

#翻訳が気に食わないので直す% vi config/locales/translation_ja.yml

# 再起動不要!