有像我一样的新手在本地化方面有类似的问题,但我找不到适合我的解决方法。
这是我的问题。我们可以使用形如[NSLocale ISOCountryCodes]
的语句获取NSArray中的所有ISO国家代码。现在,对于每个国家,我想打印出本地货币以及该国家使用的货币代码。应该如何适当地做到这一点?
我尝试了以下方法,但不起作用,因为我得到的行是 US United States: (null) ((null)), 而我想要的是 US United States: $ (USD):
myCountryCode = [[NSLocale ISOCountryCodes] objectAtIndex:row];
appLocale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"];
identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary
dictionaryWithObject: myCountryCode
forKey: NSLocaleCountryCode]];
myDictionary = [NSLocale componentsFromLocaleIdentifier: identifier];
myCountryName = [appLocale displayNameForKey:NSLocaleCountryCode
value:[myDictionary
objectForKey:NSLocaleCountryCode]];
localCurrencySymbol = [appLocale displayNameForKey:NSLocaleCurrencySymbol
value:[myDictionary objectForKey:NSLocaleCurrencySymbol]];
currencyCode = [appLocale displayNameForKey:NSLocaleCurrencyCode
value: [myDictionary objectForKey:NSLocaleCurrencyCode]];
title = [NSString stringWithFormat:@"%@ %@: %@ (%@)", myCountryCode, myCountryName, localCurrencySymbol, currencyCode];
[appLocale release];
(上述标识符,myCountryCode,myCountryName,localCurrencySymbol,currencyCode和title都是NSString指针。此外,myDictionary是一个NSDictionary指针,appLocale是一个NSLocale指针)。本质上,上述代码将在pickerview中,我希望动态生成每行的标题。
非常感谢您的时间。本质上问题是,一旦我们有了ISO国家代码,如何打印(在应用程序语言环境中)特定国家的货币符号和货币代码。