rubyベストプラクティスchapter7.5
アプリケーションのローカライズ
初Sinatra!簡単にwebアプリが出来る!すげーーーー。
本では実際のローカライズのところはGibberish::simpleを使うってことを言っていますが、著者のgithubリポジトリからライブラリをもってこないとなりません。
https://github.com/sandal/gibberish-simple.gitl:tilte
このChapterではジャンケンをするwebアプリを作ります。
流れとしてはrailsのi18nと同じイメージですな。翻訳用のファイルは別ファイルで管理して、アプリケーション上の翻訳したい箇所をTメソッドでくくって翻訳された文字を表示させる。gettextでのpoファイルを使用するにしても、今のrailsのようにyamlを使用するにしても考え方は同じ。
次に言語によって語順を変更する必要がある場合の対処。例えば名前日本語は「姓-名」の順が普通だけど、英語圏だと逆ですよね。筆者のGregory Brownさんは姓がBrownで、名がGregoryです。
こういった場合は翻訳ファイルを
name: "{surname}{given_name}"
こうやって、プログラムは
# デフォルト data = { given_name: "Gregory", surname: "Brown" } p T("{given_name} {surname}", [:name, data]) # => Gregory Brown # 日本語の場合 data = { given_name: "こころ", surname: "高見" } Gibberish::Simple.use_language(:ja) do p T("{given_name}{surname}", [:name, data]) # => 高見こころ end
とすればよいと。こうやっておくと姓と名の間にスペースを入れるとかの制御も出来ちゃう。本だとgiven_nameを姓、surnameを名のように書いてあるけど辞書で調べると逆のようです。
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (43件) を見る