まず第一に、ラベルテキストを設定するときに単純に使用できない理由がわかりませんNSLocalizedString
。デバイスの言語に応じて、適切なバージョンのテキストをロードして、まさにあなたが望むことを行います。
とにかく、ここで役に立つものが見つかると思います。
実際には、6 つの言語と 1 つの Nib のみで同様のことを行いましたが、私の場合、アプリ内で言語を変更することができたので、強制的に、言語からローカライズされたバージョンの文字列を読み込むように指示できる必要がありました。特定のバンドル。
問題が私のものに似ていて、単純な NSLocalizedString では不十分な場合に役立つ正確なコードを次に示します。
NSString* path= [[NSBundle mainBundle] pathForResource:[[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0] ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
someLabel.text = [languageBundle localizedStringForKey:@"textKey" value:@"" table:nil];
おそらく複数のラベルがあるため、パスをクラス プロパティとして保存し、viewDidLoad に設定することをお勧めします。これにより、そのクラス内の任意のメソッド/関数からアクセスできるようになります。