Mac OS X appのローカライズ。

closeThis post was published 10 年 1 ヶ月 21 日 ago which may make its actuality or expire date not be valid anymore. This site is not responsible for any misunderstanding.

iComptaという、ファイナンス管理のアプリケーションをローカライズ(日本語化)し終えた。

ローカライズといっても、全体の80%くらいであるから、ある場面で英語が出てくるかもしれない。残りの20%は、そこまでしなくても通常使用に支障がないか、そもそも翻訳できないか、どちらかを理由として訳さなかったものだ。

昨日の夜、iComptaの開発者にローカライズファイルの公開の是非を尋ねたところ、快諾いただいたので、別ページで公開することとする。

Lion以降の、OS X appのローカライズ

最近のOS X appはローカライズしづらい。Snow Leopard以前*01であれば、nibファイルをダブルクリックするだけでInterface Builderが立ち上がり、簡単に日本語に書き換えられたアプリケーションが多くあった。
最近のnibファイルは、compiled nib*02といってバイナリ化されたものであるから、簡単にローカライズすることができない。keyedobjects.nibを使ってInterface Builderで開けるようにし、無理矢理ローカライズすることもできるが*03、nibファイルの構成を書き換えてしまうので、特定の画面が開かなくなったり、app自体が起動しなくなったりと、散々な結果をもたらすことになる。

compiled nibのローカライズ方法

Localizable.stringsでできる範囲が広がればと、iComptaに限らず、様々なappのローカライズを半ば諦めていたところ、バイナリ化されたcompiled nibをテキスト化するplutilコマンドがあることを知った。nibファイルのあるディレクトリで、次のコマンドを入力すると、テキストエディタで編集できるようになる。

plutil -convert xml1 (ファイル名).nib

元のバイナリ化されたnibに戻すには、次のようにすればいい。ちなみに、バイナリ化しなくてもそのままファイルを使うことができる。

plutil -convert binary1 (ファイル名).nib

plutilコマンドで、compiled nibはバイナリファイルからxmlファイルとなる。こうなれば、ローカライズは簡単だ。しかし、いざローカライズを始めようとしても、どの文字を書き換えるべきか、一見するとわからない。
stringタグで囲まれている文字列のうち、それらしい語を見つけて書き換えるしかないが、もしかしたらいい方法があるのかもしれない。私は知らないけれども。

ちなみに、それらしい語の中で、SystemClear MenuText Cellは書き換えるとウインドウがおかしくなるので、もしこの記事を読んでやろうとする人は、気をつけるように。

Appleの日本語

ここからは余談である。

Appleの日本語はたいへん厄介なものだ。典型的な事例をあげれば、“Window”は「ウインドウ」、“Preference”は「環境設定」、“Paste”は「ペースト」となる一方で、“Import”は「読み込む」となる。OS Xを何気なく使っているとあまり気にすることはないが、ローカライズをするとなると神経質にならなければならない*04

参考書は無い。独学しかない。しかし、字引きは持っていた方がいい。OS Xの言語リソースを引き出すSystem Stringsが、Mac App Storeで販売されているので、気になる人は購入するといい。その他、困ったときは、Google検索で「site:support.apple.com」と入力するように、Appleのサポートページを調べるといい。Appleのサポートページは、たいてい英語と日本語の両方が用意されているから、重宝する。注意すべき点として、古いページでは訳語にぶれが見られる。なるだけ更新日が新しいものを見るように。

  1. compiled nibはSnow Leopardから多く見られるようになったので、現実的にはLeopard以前。 []
  2. アイコンが白紙であるから、白紙nibとも言われている。 []
  3. 手間を省くために、D&DすればInterface Builderで開けるようにするNibUnlockerというアプリケーションも公開されている。 []
  4. この記事を読めば、Appleルールの多さを知ることができる。 []
amatanoyo
Sekai Amataです。漢字では数多世界となります。あまたのよと名乗ることもあります。