【コラム】
今月10日から独逸はハノーバーにて開催中の国際見本市「CeBIT 2005」。筆者も数年前に取材で訪れたことがありますが、その会場となるハノーバーメッセの広いことといったら。3日間歩き回ったら、足がパンパンにむくみ革靴を履けなくなってしまいました。今年もiPod shuffleのソックリさんが展示されるなど楽しげではありますが…… 今度はキックスケート持参で行こうかしらん。
さて、今回は前回に続きアプリケーションをローカライズする手順について。前回はnibtoolコマンドでローカライズ可能な文字列を抜き出し、Xcodeで編集するところまで解説したので、今回はそのファイルを利用して日本語リソースを生成するところから始めてみよう。
ローカライズ用リソースファイル(temp.strings)は、ローカライズ対象の文字列を抜き出したときと同じnibtoolコマンドを利用すると、新しいnibファイルとして書き出せる。ローカライズ用リソースファイルは、いわば既存のnibファイルに対する差分として機能するわけだ。
以下に示すコマンド実行例では、はじめに日本語リソース用のディレクトリ(Japanese.lproj)を作成し、そこへオリジナルファイル(English.lproj/MainMenu.nib)にtemp.stringsを反映させる形で新しいnibファイルを作成している。これでとりあえずは、日本語化されたコマンドメニューやパネルを表示できるようになるはずなので、iTunesのスクリプトメニューから「Import with LAME...」を選択し、メニューに日本語が表示されることを確認してほしい。
なお、ローカライズの出来不出来はすなわち邦訳の良し悪しだ。「Select All」が「すべてを選択」、「Preferences...」が「環境設定」、といったお決まりのフレーズが存在するものはともかく、アプリケーション固有のメッセージにどのような邦訳をあてるかは作業者の技量次第といえる。iTunes-LAMEのように小さいパネルを使用するアプリケーションの場合、パネルからはみ出してしまうため長い文字列を使えないという問題もある。このあたりは、他のアプリケーションを参考にしつつ経験を重ねるほかないだろう。
nibファイルのほかにも、メッセージなどの文字列情報を置き替える「文字列テーブル」の編集が必要。テーブル名のデフォルトは「Localizable」とされるため、ソースコードの段階で特に指定がない場合には、その文字列テーブルが定義された「Localizable.strings」がローカライズの対象となる。
題材として取りあげているiTunes-LAMEの文字列テーブルも、ファイル名は「Localizable.strings」となっている。このファイルをひな型となる英語用リソース領域(English.lproj)から日本語用リソース領域(Japanese.lproj)へコピーし、前掲のローカライズ用リソースファイル(temp.strings)と同じ要領で定義内容を書き換え、上書き保存すれば作業は完了。訳さえ問題なければ、これで"オレ流"ローカライズは一応の完了となる。
ここで、nibtoolコマンドについて少しばかり補足を。ごく簡単なローカライズには、ローカライズ可能な文字列を書き出す「-L」、ローカライズ用リソースファイルを指定する「-d」、更新するnibファイルを指定する「-w」で十分だが、ほかにも多数のオプションが存在する。他の用例については、「man nibtool」で表示されるオンラインマニュアルが参考になるはずだ。
| オプション | 機能 |
|---|---|
| -8 | 入出力の文字コードにUTF-8を使用する(初期値はUTF-16) |
| -a | すべてのオブジェクトや階層構造を標準出力へ書き出す |
| -L | ローカライズ可能な文字列を標準出力へ書き出す |
| -R | 入出力の文字コードにMacOSRomanを使用する |
| -W | nibファイルを更新する(既に存在する場合は上書き) |
| -w | nibファイルを更新する(上書きしない) |
| -d | ローカライズ用リソースファイルを指定する |
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |
|
「ゆりてつ」サイン会は作者と都電に揺られるツアー仕立て [17:45 5/27] ホビー |
|
【ネタバレもありの徹底解明コラム】『サザエさん』タマの意外な事実 [17:30 5/27] ホビー |