2012-03-09 128 views
0

我有一个应用程序需要根据区域(国家)阅读不同的值。是否有一个等价的NSLocalizedString()用于读取来自不同语言环境(不是语言)的值?

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

我可以在代码中做到这一点(NSLocale/NSLocaleCountryCode),但我希望有更多的代码免费的方式去。

是否有其他的功能或方法来实现这一点?

欢呼声

回答

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]; 

如果这是你太久了,你也可以重新包装成一个宏。

+0

谢谢,这看起来像一个伟大的解决方案 – 2012-03-09 22:57:59

相关问题