7

初めてローカライズされたアプリケーションを構築しようとしています。genstringsコード内のすべての文字列を NSLocalizedString (ツールで使用するため) を使用して翻訳しました。今、私はにぶつかってibtoolいます。インクリメンタル ローカリゼーションはどのように機能しますか? マニュアルページに関しては、次のように書く必要があります。

$ ibtool --previous-file path/to/prev.xib \
--incremental-file path/to/inc.xib --localize-incremental \
--write path/to/new.xib mod.xib

増分ファイルはどこで入手できますか? バージョン管理(git/svn)を使用している場合、「古い」ファイルは数コミット前であり、増分ファイルは差分であり、path/to/new.xib は新しく作成された xib ファイルです。mod.nib は私にとって謎です。誰でもこれがどのように機能するか説明できますか? また、以前のバージョンが利用できない場合、xib のローカライズを開始するにはどうすればよいですか (つまり、インクリメンタルではなく初期のローカライズを行う)。

4

2 に答える 2

12

--incremental-file特にの用語の選択が混乱を引き起こしていると思います。アイデアは、2つの言語(ソースとターゲット)で古いバージョンのxibを使用していて、それ以降、ソース言語でそれを変更し、それに合わせてターゲット言語のバージョンを更新したいというものです。

例を見てみましょう。以前、home.xibを英語(ソース言語)で使用していて、誰かにフランス語(ターゲット言語)に翻訳してもらいました。それ以来、新しい機能を開発し、UILabelとUITextFieldを追加して、物事を移動した英語のhome.xibの更新バージョンを入手しました。表示したコマンドは、フランス語でhome.xibの更新バージョンを取得するのに役立ちます。これにより、新しいUILabelとUITextFieldが追加され、英語のように移動できます。新しいUILabelとUITextFieldで設定したテキストコンテンツはすべて英語で追加され、フランス語のxibで翻訳する必要があることに注意してください(ただし--import-strings-file、翻訳をもう1つのファイルに追加して提供することで、これを自動化できます)。

したがって、示したコマンドをこの例にマップすると、次のようになります。

  • --previous-file path/to/prev.xib古い英語のxibを指定します
  • --incremental-file path/to/inc.xib古フランス語xibを指定します
  • --write path/to/new.xib作成される新しいフランス語のxibを指定します
  • mod.xib新しい英語のxibを指定します

プロセスをどのように開始するかに関する他の質問については、実際には、xibsをどのようにローカライズするかによって異なります。明らかに、新しい言語バージョンのxibを作成します(XCodeでは、言語をxibの言語リストに追加するだけで、ローカライズされたxibが自動的に作成されます)。そして、Interface Builderでそれらを自分でローカライズする場合は、ローカライズされたxibで関連する変更(テキストの翻訳と必要なサイズ変更)を行うだけです。または、xibs内のテキストを.stringsファイルに抽出して翻訳し、これらのxibsの関連する言語バージョンに挿入することもできます。このためにも、ibtoolを使用しますが--generate-strings-file、抽出フェーズと--import-strings-file注入フェーズにはを使用します。

于 2011-12-08T00:01:43.860 に答える