Click here to load reader
Upload
maka2donzoko
View
1.061
Download
0
Embed Size (px)
Citation preview
Hachioji.pm #1 LT 多言語対応サイトの開発方法
2011-01-22 まかまか般若波羅蜜(twitter: maka2_donzoko)
Web サービスを開発する際、多言語対応しなければならいことがあると思いますが、みなさん
どういう風にやってます?
■言語分のテンプレートを用意?
template/ja
template/en
■gettext 系を利用?
_("こにゃにゃちわ!") en → Hello Acme!
ja → こんにちは!
■最近自分がとったやり方……上記のハイブリット型?
オリジナルテンプレートを監視。修正がかかる度に翻訳処理し言語別テンプレートを生成。
・翻訳パート
※poファイルの生成には App::I18N のユーティリティを利用
$ po parse template_org → po/webapp.pot
$ po lang en → po/en.po
$ po lang ja → po/ja.po
……タグ付け
_("%1 様",<: $user :>)
$ po parse template_org → po/*.po 生成
……翻訳
msgid "%1 様"
msgstr "Dear %1."
・デザイナーによるテンプレート修正作業
template_orig/root/hello.tx ※template_org下を Filesys::Notify::Simple*などで監視
↓ 追加 or 修正!
自動で翻訳を適用したテンプレを所定位置に出力(正規表現と Data::Localize を利用)
template/ja/root/hello.tx
<: $user :> 様
template/en/root/hello.tx
Dear <: $user :>.
* CPAN モジュールには他にも File::ChangeNotify などがある。Filesys::Notify::Simple はプラットフ
ォーム別に最適なモジュールを同一インタフェースで使える利点がある。