是否有等效的NSLocalizedString()用于读取不同语言环境(不是语言)的值?

时间:2012-03-09 19:43:25

标签: objective-c ios localization

我有一个应用需要根据区域设置(国家/地区)读取不同的值。

我希望NSLocalizedString会为我做这件事,但它似乎只适用于语言,而不是语言环境。

我可以在代码(NSLocale / NSLocaleCountryCode)中完成它,但我希望有更多无代码的方法。

是否有其他功能或方法可以实现这一目标?

欢呼声

1 个答案:

答案 0 :(得分:0)

NSLocalizedString只是NSBundle方法的一个宏

- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName

table = nil;

(见documentation

您可以根据您的语言环境创建不同的表名,而不是NSLocalizedString,然后调用

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey:NSLocaleCountryCode];
NSString *table = [NSString stringWithFormat:@"MyTable_%@", countryCode];
[[NSBundle mainBundle] localizedStringForKey:@"YOUR_KEY" value:@"" tableName:table];

如果这对你来说太长了,你也可以将它再次包装成一个宏。