1
私は、スペイン語、イタリア語とポルトガル語の3つの言語のためのXLIFFファイルを持っており、それは...このようなパスを持っているIOS
@interface Language : NSObject
+(void)setLanguage:(NSString *)language;
+(NSString *)get:(NSString *)key alter:(NSString *)alternate;
@end
とimplemantation
#import "Language.h"
static NSBundle *bundle = nil;
@implementation Language
+(void)initialize {
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *current = [languages objectAtIndex:0];
[self setLanguage:current];
}
/*
example calls:
[Language setLanguage:@"it"];
[Language setLanguage:@"de"];
*/
+(void)setLanguage:(NSString *)language {
NSLog(@"preferredLang: %@",language);
NSString *path = [[ NSBundle mainBundle]pathForResource:language ofType:@"lproj"];
bundle = [NSBundle bundleWithPath:path];
}
+(NSString *)get:(NSString *)key alter:(NSString *)alternate {
return [bundle localizedStringForKey:key value:alternate table:nil];
}
@end
とボタンのタップにして私は、このようにやっているを変更するためのコード...
-(IBAction)changeLanguage:(Id)sender {
[Language setLanguage:@"it"];
}
しかし、私が応じて選択した言語とタップボタンのみが設定された「CurrentLanguage」タグ値に従ってテキストを変更するには、このコードを使用していますrunntimeまたはafter.Pleaseヘルプ
私のアプリの再起動は必要ありません。どこでgetTextasLanguageメソッドを呼び出すべきですか? –
このメソッドは、シミュレータでも、デバイス上でのみ動作しますか? –
両方で動作しますか? –