你可以得到翻譯的語言的語言列表的地區與下面的代碼:
的Objective-C:
NSArray *languages = [NSLocale preferredLanguages];
for (NSString *lang in languages)
{
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:lang];
NSString *translated = [locale displayNameForKey:NSLocaleIdentifier value:lang];
NSLog(@"%@, %@", lang, translated);
}
斯威夫特:
let languages = NSLocale.preferredLanguages()
for lang in languages {
let locale = NSLocale(localeIdentifier: lang)
let translated = locale.displayNameForKey(NSLocaleIdentifier, value: lang)!
print("\(lang), \(translated)")
}
輸出:
en, English
fr, français
de, Deutsch
ja, 日本語
nl, Nederlands
...
我希望這會回答您的問題的第一部分,並可能有助於第二部分。
斯威夫特3更新:
let languages = NSLocale.preferredLanguages
for lang in languages {
let locale = NSLocale(localeIdentifier: lang)
let translated = locale.displayName(forKey: NSLocale.Key.identifier, value: lang)!
print("\(lang), \(translated)")
}
@MartinR它做到了!仍然在做一些研究!一旦我相信我會接受你的答案。因爲這些語言都在Web服務器上,並且本地化來自那裏作爲Web服務,所以我需要將這些服務器上的LCID映射到iOS上的區域設置ID。希望有一些像LCID這樣的普遍公約。但正如有人提到的那樣,它只是一個Windows術語! – aliasgar