Cocoa環境のアプリをローカライズする場合、ソースコード内でローカライズ対象のメッセージ文字列@"message"を直接書かずに、次のようなマクロを挟む形で書く。
NSLocalizedString(@"message", @"comment")
このマクロは、リソース?にあるLocalizable.stringsファイルから@"message"をキーとして翻訳済みの文字列を取得して返す。
Localizable.stringsを各言語毎に用意すればソースコードに埋め込まれたメッセージをローカライズできる寸法である。
もちろんソースコード群からLocalizable.stringsを生成コマンドも用意されており、下記コマンドで一発である。
# genstrings `find . -name '*.m'`
これで問題なければ良いのだが、、、、。
ソースコードにCJKの文字が含まれているとLocalizable.stringsを上手く生成してくれない。コメントであっても駄目(時たま、気まぐれで生成してくれる場合もあるのだが、、、)。特にソースコードがUTF-8だと駄目なのはイマイチ分からん。ShiftJISだと問題ないらしいが、、、そりゃないよAppleさん。
しかし、ソースコードに母国語のコメントを入れられないのは辛い。
幸いMacOSXにはPerl5.8が含まれており、苦無く複数のエンコードを考慮して扱えるので、genstringsと同等なスクリプトを書けば良いかも。
と、思いへこへこ書いてみたが、
- genstrings で -s オプションは機能してないっぽいなぁ。
- -j/-u/-noPositionalParametersオプションは未実装。使うときにでも実装するかぁ。
- ふむperl 4くらいの知識ししか無いのでイマイチ定石が分からんなぁ。
- perl本買ったれ。
- 良く分からんが書けた。。。
- そのうち公開しとこぅ。
追記(2008/08/06)
欲しい人は多分いないと思うけど、公開しときます
genstrings2
0 件のコメント:
コメントを投稿