en.lprojとfr.lprojという名前のローカライズされた2つのディレクトリを作成しました。私はそれらのローカライズされたディレクトリに同じ名前like.pngを持つ2つの異なるイメージを配置します。実行時にローカライズされたイメージを変更する方法
今、私は2つの行 "英語"と "フランス語"のテキストをそれぞれ持つテーブルView Controllerを作成しました。
最初または2番目の行を選択した後、バンドルパスを取得して、実行時に私のアプリケーションのローカライズされたテキスト全体を変更しています。
コード:上記のコードを
-(NSString*) languageSelectedStringForKey:(NSString*) key
{
NSString *path;
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
if([[userDefault valueForKey:@"language_Selected"] intValue] == 0)
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
else if([[userDefault valueForKey:@"language_Selected"] intValue] == 1)
path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[[languageBundle localizedStringForKey:key value:@"" table:nil] retain];
return str;
}
動的に私はアプリを実行しているの言語を変更することができます。 しかし、そのバンドルからイメージを取得するには?
おかげ
パスを変数にしてパスを使用してイメージを取得すると、パスはすでに上記のコードから動的になります。応答のために –
ありがとう。 。 :) ..それを得ました、それは動作します –
質問を下に投票する理由は何ですか? –