1

アプリを複数の言語 (6 や 7 など) にローカライズしたいのですが、ストーリーボードのコピーほど多くは追加したくありません。したがって、6 種類の言語については、次のようにします。

  • 絵コンテ1枚
  • 6 ローカライズ可能な.string

私のストーリーボードでは、すべてのコンポーネントがアウトレットであるため、プログラムでローカライズできます。

私の問題は、ストーリーボードのローカリゼーションを持たない (しかし localizable.strings を持つ) 言語でアプリケーションをロードできないことです。エラーが発生します:

Could not find a storyboard named 'XXXX' in bundle NSBundle.

複数のローカライズ可能なファイルで 1 つのストーリーボードを使用する方法はありますか?

4

1 に答える 1

1

ストーリーボードがまだ en.lproj フォルダーにあるようです。別の言語を使用するように構成されたシステムで を起動すると、en.lproj のリソースではなく、その言語の lproj のリソースが使用されます。ストーリーボードがビルドされたアプリの en.lproj フォルダーに展開されないように、Xcode でローカライズされていないものとしてストーリーボードをマークする必要があります。また、プロジェクトの適切なターゲットにリソースとして含まれていることも確認してください。ストーリーボードを選択した状態で、ファイル インスペクタからこれらすべてを実行できるはずです。

iOS 6.0 以降をターゲットにしている場合は、Base.lproj 機能を使用できます。この機能を使用すると、アプリケーションは 1 つのストーリーボードを送信するだけで、複数の文字列ファイルとストーリーボードの文字列が実行時に適切な言語の文字列ファイルの文字列に置き換えられます。

base.lproj の詳細については、 https ://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.html を参照してください。

于 2013-04-25T00:32:26.080 に答える