【コラム】

OS X ハッキング!

126 オレ流ローカライズのススメ(1)

    海上忍  [2005/03/07]

    iPod shuffle用のアクセサリがいろいろ出てきましたね。G5風デザインのケースもあったりして、1つ買おうかと考えているのですが…… このまま使ったほうがいいのかもと思いとどまってみたり。ともあれ、買い物は迷っているときが一番楽しいですねえ。

    さて、今回はアプリケーションのローカライズについて。本来は開発者が担うべき作業だが、Mac OS Xの場合は(翻訳の正確さは別として)容易にローカライズできてしまうので、カスタマイズの範疇と言えないこともない。作成したものを公開すれば、他のOS Xユーザに感謝されるかもしれないので、一度トライしてほしい。

    アプリケーションの国際化のしくみ

    OS Xには、Finder上ではファイルとして扱える「バンドル」という特殊なディレクトリがある。バンドルには、アプリケーション本体(バイナリ)のほかにアイコンなどのファイルが多数含まれるほか、言語リソースも収録されている。Finderで適当なアプリケーションを選択し、[control]を押しながら右クリックして[パッケージの内容を表示]を選択、開いたウインドウでContents→Resourcesの順にディレクトリを開けば、各国語に対応した言語リソース(拡張子「*.lproj」のディレクトリ)を確認できるはずだ。

    その言語リソースは、システム環境設定の「言語環境」パネルの設定に従い適用される。第一言語が英語の場合には「English.lproj」が、日本語の場合には「Japanese.lproj」が使用され、英語以外のリソースを含まない(国際化/ローカライズされていない)アプリケーションは必然的に「English.proj」を使用することになる。

    逆に言えば、日本語リソースを含まないアプリケーションでも、「English.lproj」を流用した「Japanese.lproj」をバンドル内に作成すれば日本語化が可能だ。アプリケーションは必ずしも再コンパイルする必要はないので、バイナリのみ配布されるソースコード非公開のアプリケーションでも、"オレ流ローカライズ"の余地は残されている。

    いざローカライズ

    題材に取りあげるのは、iTunesのプラグインとして動作する「iTunes-LAME 2.0.7」。音質の良さで定評のMP3エンコーダ「LAME」をiTunesから呼び出し、エンコードやID3タグの設定を行うという機能自体は以前紹介したときと大差ないが、現行バージョンはCocoaに書き換えられている。しかし、日本語リソースが収録されていないため、オレ流にローカライズしてしまおうというわけだ。

    iTunes-LAMEは「~/Library/iTunes/Scripts/iTunes-LAME.app」としてインストールされるので、まずは次のコマンドラインを実行し、作業に備えてほしい。以下のコマンドライン実行例は、すべてここをカレントディレクトリとしているので念のため。

    $ cd ~/Library/iTunes/Scripts/iTunes-LAME.app/Contents/Resources

    最初に行うのは、nibファイル(Interface Builderで作成されたUI設計用のファイル)からローカライズ可能な文字列を抜き出すこと。直接編集して別名で保存する方法もあるが、nibtoolコマンドを利用したほうが面倒は少ない。次のコマンドラインを実行して「temp.strings」というファイルを作成し、openコマンドで開けばXcodeで編集できるのでカンタンだ。

    英語のnibファイルからローカライズ可能な文字列を抜き出す

    $ nibtool -L English.lproj/MainMenu.nib > temp.strings
    $ open temp.strings ←Xcodeで開かれる

    編集方法だが、「"英語" = "英語"」のように定義されている式の右辺を日本語に直せばOK。ここから先は翻訳作業が大半を占めるので、他のアプリケーションを参考に試行錯誤してみよう。なお、Xcodeで作業すれば文字コードを気にする必要はないので、一通り作業したらそのまま上書き保存すればいい。

    rnibtoolで抜き出したファイルの編集例

    /* NSMenuItem : <title:Preferences...> (oid:129) */
    "Preferences..." = "環境設定...";
                        ^^^^^^^^^^^
                          ↑
                      右辺を日本語に

    と、ここで紙幅が尽きてしまったので、続きはまた来週。LAMEの開発は、G4以降のCPUを搭載したMacユーザがよろこびそうな機能の実装に向けて進行中(……ということは?)なので、「そちら」方面のことにも触れたいと考えている。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン