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_generatorsのご紹介

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

  • Login to see the comments

i18n_generatorsのご紹介

  1. 1. i18n_generators のご紹介 Akira Matsuda @ 楽天テクノロジーカンファレンス 2008
  2. 2. 自己紹介
  3. 3. http://asakusa.rubyist.net/
  4. 4. 今からしゃべること
  5. 5. Ruby on Rails 2.2 のI18N/L10N を支援するライブラリ
  6. 6. % sudo gem install amatsuda-i18n_generators
  7. 7. Rails I18n のおさらい
  8. 8. Ruby on Railsって、 なんていう言語で書かれている フレームワークかご存知ですか?
  9. 9. Ruby on Rails(< 2.2)
  10. 10. Ruby on Rails(< 2.2)は 英語で書かれている。
  11. 11. Ruby 英 語 Rails Application ApplicationApplication
  12. 12. Rails I18nは Railsから英語を排除
  13. 13. これにより、
  14. 14. 従来の日本語化
  15. 15. Ruby 英 語 Rails Application ApplicationApplication ここらへんで頑張って動的にローカライズ
  16. 16. Rails 2.2での日本語化
  17. 17. Ruby Rails + i18n Application ApplicationApplication
  18. 18. すっきり!
  19. 19. • 実行時に翻訳エンジンがmixinされないので、 動作が追いやすい • 実行時に翻訳エンジンがmixinされないので、 (たぶん)早い • 環境構築が楽チン! • 定義ファイルは読み書きしやすいYAMLで • 再起動ナシで再読み込み • etc. etc. merits
  20. 20. no more monkey patching!
  21. 21. Rails I18n and me
  22. 22. 2008年7月
  23. 23. Rails勉強会@東京 第31回で 「Rails 2.2のI18nについてくわしく」 のセッションオーナーをやった
  24. 24. 中の人と個人的に何度か メールのやり取りをした
  25. 25. 日本語のロケールファイル ja.yml をプロジェクトにコミット
  26. 26. 要望チケットを何件か挙げた。
  27. 27. それだけ。
  28. 28. 2008/9/4
  29. 29. RailsConf Europe 2008 Sven Fuchsさんの発表 http://en.oreilly.com/railseurope2008/public/schedule/detail/3569
  30. 30. なんかThanksに 名前が載ってた
  31. 31. これはヤバい。
  32. 32. なんか作った。
  33. 33. i18n_generators
  34. 34. http://github.com/ amatsuda/i18n_generators/
  35. 35. そしたら、
  36. 36. なんか公式Wikiにも載った。 http://rails-i18n.org/
  37. 37. 頑張ります。
  38. 38. 主な機能
  39. 39. 1. アプリのデフォルトロケールを設定 2. ロケール定義ファイルを自動生成 3. DB内の全modelとその全カラムの翻訳YAMLを生成 4. viewで呼び出されているtranslationの翻訳YAMLを生成 5. scaffoldをi18n拡張
  40. 40. 1. アプリのデフォルトロケールを設定 2. ロケール定義ファイルを自動生成 3. DB内の全modelとその全カラムの翻訳YAMLを生成 4. viewで呼び出されているtranslationの翻訳YAMLを生成 5. scaffoldをi18n拡張
  41. 41. DHHが作った config/environment.rb の定義を書き換えるだけ。
  42. 42. 1. アプリのデフォルトロケールを設定 2. ロケール定義ファイルを自動生成 3. DB内の全modelとその全カラムの翻訳YAMLを生成 4. viewで呼び出されているtranslationの翻訳YAMLを生成 5. scaffoldをi18n拡張
  43. 43. http://github.com/svenfuchs/rails-i18n/ から世界中のみんなが作った.ymlをコピる。 or Unicode CLDRプロジェクトのWEBサイトを スクレイピングして それっぽいファイルを捏造す作る。
  44. 44. 1. アプリのデフォルトロケールを設定 2. ロケール定義ファイルを自動生成 3. DB内の全modelとその全カラムの翻訳 YAMLを生成 4. viewで呼び出されているtranslationの翻訳YAMLを生成 5. scaffoldをi18n拡張
  45. 45. 全モデルとその属性をループしつつ、 Google翻訳API にガンガン食わせる。
  46. 46. 1. アプリのデフォルトロケールを設定 2. ロケール定義ファイルを自動生成 3. DB内の全modelとその全カラムの翻訳YAMLを生成 4. viewで呼び出されているtranslationの翻訳 YAMLを生成 5. scaffoldをi18n拡張
  47. 47. 同上。
  48. 48. 1. アプリのデフォルトロケールを設定 2. ロケール定義ファイルを自動生成 3. DB内の全modelとその全カラムの翻訳YAMLを生成 4. viewで呼び出されているtranslationの翻訳YAMLを生成 5.scaffoldをi18n拡張
  49. 49. Iain Heckerさんの作品をそのままパチっ借用して scaffoldジェネレーターに食わせているだけ。
  50. 50. 以上、全部他人のフンドシ。
  51. 51. DEMO (ドラが鳴るまで)
  52. 52. % sudo gem install amatsuda-i18n_generators
  53. 53. # Rails 2.2.2がインストールされていることを確認して、 % rails -v Rails 2.2.2 # アプリを作成 % rails rakuten
  54. 54. # generate i18n_scaffold % ./script/generate i18n_scaffold todo title:string # migrate % rake db:migrate # 確認してみる % ./script/server
  55. 55. # generate i18n で日本語化! % ./script/generate i18n ja # 再起動 % ./script/server
  56. 56. # スキーマ変更してみる % ./script/destroy scaffold todo % ./script/generate i18n_scaffold todo title:string registered_at:datetime #モデルの翻訳のみ更新する i18n_translation % ./script/generate i18n --translation ja # 再起動不要!
  57. 57. #翻訳が気に食わないので直す % vi config/locales/translation_ja.yml # 再起動不要!

×