Revision: 41236
Updated Code
at February 14, 2011 20:29 by zamza726
Updated Code
//1. System change /* Example call: NSLocalizedString(@"Key", @""); Below should be implemented in main. Because the language needs to be set "sometime early in your application's startup" */ [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"korea"] forKey:@"AppleLanguages"]; //2. Get information through bundle -- Useful !!! #define MyLocalizedString(key, alt) [Language get:key alter:alt] @implementation Language static NSBundle *bundle = nil; +(void)initialize { NSUserDefaults* defs = [NSUserDefaults standardUserDefaults]; NSArray* languages = [defs objectForKey:@"AppleLanguages"]; NSString *current = [[languages objectAtIndex:0] retain]; [self setLanguage:current]; } /* example calls: [Language setLanguage:@"it"]; [Language setLanguage:@"de"]; MyLocalizedString(@"Key", @""); */ +(void)setLanguage:(NSString *)l { NSLog(@"preferredLang: %@", l); NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ]; bundle = [[NSBundle bundleWithPath:path] retain]; } +(NSString *)get:(NSString *)key alter:(NSString *)alternate { return [bundle localizedStringForKey:key value:alternate table:nil]; } @end
Revision: 41235
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 14, 2011 20:25 by zamza726
Initial Code
//1. System change [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"korea"] forKey:@"AppleLanguages"]; //2. Get information through bundle #define MyLocalizedString(key, alt) [Language get:key alter:alt] @implementation Language static NSBundle *bundle = nil; +(void)initialize { NSUserDefaults* defs = [NSUserDefaults standardUserDefaults]; NSArray* languages = [defs objectForKey:@"AppleLanguages"]; NSString *current = [[languages objectAtIndex:0] retain]; [self setLanguage:current]; } /* example calls: [Language setLanguage:@"it"]; [Language setLanguage:@"de"]; MyLocalizedString(@"Key", @""); */ +(void)setLanguage:(NSString *)l { NSLog(@"preferredLang: %@", l); NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ]; bundle = [[NSBundle bundleWithPath:path] retain]; } +(NSString *)get:(NSString *)key alter:(NSString *)alternate { return [bundle localizedStringForKey:key value:alternate table:nil]; } @end
Initial URL
http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language
Initial Description
Initial Title
Print different Localizable string in App
Initial Tags
Initial Language
Objective C