我有一个应用需要根据区域设置(国家/地区)读取不同的值。
我希望NSLocalizedString会为我做这件事,但它似乎只适用于语言,而不是语言环境。
我可以在代码(NSLocale / NSLocaleCountryCode)中完成它,但我希望有更多无代码的方法。
是否有其他功能或方法可以实现这一目标?
欢呼声
答案 0 :(得分:0)
NSLocalizedString只是NSBundle方法的一个宏
- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName
带
table = nil;
您可以根据您的语言环境创建不同的表名,而不是NSLocalizedString,然后调用
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey:NSLocaleCountryCode];
NSString *table = [NSString stringWithFormat:@"MyTable_%@", countryCode];
[[NSBundle mainBundle] localizedStringForKey:@"YOUR_KEY" value:@"" tableName:table];
如果这对你来说太长了,你也可以将它再次包装成一个宏。