2009-05-22 8 views
13

英語の開発アプリでlocaliza aが必要です。&スペイン語です。iPhoneローカリゼーションの簡素化はいかがですか?

アップルの使用方法NSLocalizedString &両方にニブを作成すると、ローカライズする必要がある新しい文字列のトラックが失われてしまいました。スペイン語でニブをやり直す必要があるという驚きがあります。マスターを変更してください。 (ただ、このhttp://www.gigliwood.com/weblog/Cocoa/A_Great_Need_for_Be.htmlなど)

より良い/代替/より多くの自動化された方法を存在するのだろうか。

私はgettext & poeditの使用を知っており、そのようなものが使用できるかどうか疑問に思っています。

またはこれには一部のスクリプトまたはツールが存在する場合。

答えて

17

本当に簡単な修正はありません。 NIBは言語ごとに個別にレイアウトする必要があります。ある言語では、異なる言語が実際によく見えるために異なるレイアウトを必要とすることが多いため、これは全体的なユーザーインターフェイスを向上させます。ロシア語とドイツ語は、画面の不動産の英語よりもはるかに大きな言語です。中国語はしばしばはるかに小さくなり、別のレイアウトは中国語文字でよく見えます。アラビア語とヘブライ語は右から左に配置されており、レイアウトを大幅に変更する必要があります。自動化されたレイアウトは簡単ですが、すべての言語でさまざまなレベルの醜いことによってこれを実現します。開発者にとって簡単なものから醜いものまでの選択肢と、開発者にとっては難しいものと美しいものの選択肢が与えられると、Appleはほとんどいつも後者を選びます。つまり、Appleはまだそれほど簡単ではありませんでした。

ここでの最初の教訓は、NIBをのように単純ににすることです。これは、iPhoneにはバインディングがなく、iPhoneのNIBが一般に簡単であるため、Macではより簡単です。非常に少量のテキスト(タイトルなど)を持つNIBに対しては、テキストインジェクションを使用することもできます。 「テキスト挿入」は、「ラベルのアウトレットを使用し、ビューをロードするときにローカライズされたテキストに設定する」という素晴らしい方法です。

ibtoolは、NIBから文字列を引き出すことができます。私は、契約ローカライザを扱うのに役立つiLocalizeを使用しましたが、あなたが話している問題を本当に助けません。

NIBを取り除き、コードを使用して、作業が簡単になると思っていましたが、実際にはそうしませんでした。 NIBで各言語をレイアウトする方が、すべての言語で見栄えのよいレイアウトロジックを作成するよりも簡単でした(最初の段落を参照)。テキストの挿入は、少数の場所でのみ有効でした。 NIBをローカライズする必要があるものとそうでないものに分けることができれば、それは参考になります。 iPhoneでは、NIBの半分以下がテキストまたはローカライズされた画像を実際に持っていることがわかりました。

もちろん、あなたはInternationalization Programming Topicsを読むべきですが、本当にあなたの問題に対する簡単な答えはないと言って申し訳ありません。 19カ国語でローカライズされた商品を発送すると、あなたの痛みを感じます。

2

NiBは、言語ごとにレイアウトする必要がある場合もありますが、ほとんどの場合、各言語ごとに再レイアウトする必要はありません。

あなたはニブから文字列を生成するのにibtoolを使用した場合

ibtool --generate-文字列ファイル

あなたは、言語ごとに新しいニブにインポートすることができます。

ibtool --import-文字列ファイル

彼らはスクリプト化されているように、これらは、コマンドラインツールです。 'man ibtool'を見てください。

2

私は、自分のnibファイル(UILabel、UITextField、UITextViewなど)内のすべてのテキストUI用のIBOutletsを作成し、text/placeHolderプロパティをプログラム的にNSLocalizaedStringに割り当てます。

特定の文字列の翻訳を別の言語で提供したとすれば、翻訳されたバージョンのテキストは、iPhoneのロケールが変更されたときにnibファイルに表示されます。

希望があれば他にも便利です