2006年3月29日

ソースコードのエンコードと genstrings

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 件のコメント: