2009-07-17 25 views
0

iPhoneアプリケーションで言語を変更する方法は?言語を変更する

私のアプリケーションでは、1つのラベルがそこにあります。オランダ語を入れたいと思います。 は簡単ですか?

  1. 読み取り

  2. プロパティファイルから文字列変数を使用してプロジェクトに1つの静的クラスを作ります。

またはプロパティファイルの変更が可能です。

PLSのは、このために構築されたインフラストラクチャのトンがあるのthnx ...私を助け、すべての

+1

「iPhone開発の基礎」の第17章を参照してください。 –

答えて

4

について。基本的には、NSBundle APIはローカリゼーションの概念を持ち、適切なローカライズ版がある場合は、それを通過するものを透過的にリダイレクトします。バンドルに ".lproj"を見たことがあるなら、それはローカライズのためです。

さて、質問はどのように設定するのですか?ペン先は簡単ですが、ペン先の複数のコピーをアプリに1つずつ入れるだけです。 Strings.localizableファイルを作成すると、文字列が必要なときはいつでも、NSLocalizedString()を呼び出して文字列を取得し、現在の言語のLocalized.stringsファイルの文字列を検索します。

Xcodeには、これをすばやく設定する方法が組み込まれています。任意のリソースを選択してGet Infoウィンドウを表示すると、「Make Localizable」というボタンが表示されます。これをクリックすると、「ローカリゼーションの追加」ボタンが追加され、特定のローカリゼーションをプロジェクトに追加できます。この時点で、各特定のロケールでリソースを編集できるリソースの横に三角形が表示されます。

あなたのアプリケーションや、これを簡単にするためにAppleが提供するツールによっては、これらのことのいくつかを処理する方法がいくつかあります。 Thisは、物事をローカライズする方法についてのまともなブログ投稿です。

覚えておくべきことは、ローカリゼーションを調べて、それに基づいてどのリソースを使用するかを手動で決定すると間違っている可能性があるということです。ほとんどの場合、ローカライゼーションが必要な場所を特定し、それを処理するAPI(NSLocalizedString()、 - [NSBundle pathForResource:ofType:]など)を使用してリソースをシステムに問い合わせるだけです。

+0

この方法に問題があります。ユーザーのiPhoneがドイツ語に設定されていて、アプリケーションがドイツ語のローカリゼーションを持っていないとします。何が起こるのですか?現在の言語が翻訳されていない場合にアプリケーションが「デフォルト」言語を使用するように指示する方法 – SpaceDog

+0

そのため、組み込みのインフラストラクチャを使用する必要があります。そのような場合があります。具体的には、携帯電話はあなたが持っているローカリゼーションを見て、ユーザーの好みに基づいて、あなたができるローカライゼーションを選びます。アプリケーションにローカライゼーションが1つしかない場合は、ユーザーが指定したものにかかわらず、使用できる唯一のローカライゼーションです。 –