ibtool を使ってマージを試してみる。
※以下、拡張子が xib だが Nibファイルと統一して呼ぶ。またターミナルの操作はすべてXcodeプロジェクトのフォルダ内で行った。
1. まず修正を入れる前に最後のバージョンをコピーしておく。ここでは old フォルダへ English.lproj と Japanese.lproj をコピーする。
$ mkdir old
$ cp -pr English.lproj old
$ cp -pr Japanese.lproj old
$ ls old
English.lproj MainMenu.strings MainMenu.xib
$
2. コピーしたら Nibファイルに修正を加えてみる。ここでは Interface Builder で英語の Nibファイルにラベル "Hello !" を追加する。
3. 英語の Nibファイルから文字列を抽出する。
ibtool --generate-stringsfile Japanese.lproj/MainMenu.strings \
English.lproj/MainMenu.xib
ラベル "Hello !" が最後に追加されている。文字列を再生成したので前回翻訳した "Japan"は英語に戻っている。
4. このファイルを編集して "Hello !"の行だけ残すようにする。
5. 準備ができたのでマージしてみよう。ADCページの例を参考にして用意した下記のコマンドを実行する。
ibtool --previous-file old/English.lproj/MainMenu.xib \
--incremental-file old/Japanese.lproj/MainMenu.xib \
--strings-file Japanese.lproj/MainMenu.strings \
--write Japanese.lproj/MainMenu.xib \
--localize-incremental \
English.lproj/MainMenu.xib
6. 日本語の Nibファイルを Interface Builder で開いてみる。
おお、"Hello" が "こんにちは"に置き換わっている。ただラベルサイズが不足しているので途中で切れている。
7. 手動でサイズを拡張してやる。
8. 最後にXcodeでビルドして実行してみる。
出た。