检查 iOS 应用中的语言
Check language in iOS app
任务是:我有两个 UIImageView,如果系统语言是乌克兰语,我想要显示 ImageView1,如果不是乌克兰语(English/Polish 等),我想要显示 ImageView2。
我试过了:
println(NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages"))
但此代码仅提供可用语言列表。我也试过
var language: AnyObject? = NSLocale.preferredLanguages().first
但我如何将此变量与英语或乌克兰语进行比较?
Swift 3
你可以这样取语言代码
let preferredLanguage = NSLocale.preferredLanguages[0]
然后你需要将它与代码字符串进行比较
if preferredLanguage == "en" {
print("this is English")
} else if preferredLanguage == "uk" {
print("this is Ukrainian")
}
您可以找到代码 here
一个检查法语是否...
的例子
/// Is Device use french language
/// Consider, "fr-CA", "fr-FR", "fr-CH" et cetera
///
/// - Returns: Bool
static func isFrench() -> Bool {
return NSLocale.preferredLanguages[0].range(of:"fr") != nil
}
你可以使用下面的代码
它适用于 swift 3
if Bundle.main.preferredLocalizations.first == "en" {
print("this is english")
}else{
print("this not english")
}
Swift 4 如果队列中有更多语言(例如首选语言将 returns:"uk-US")但您想要先在里面。
你可以这样做:
let preferredLanguage = NSLocale.preferredLanguages[0]
if preferredLanguage.starts(with: "uk"){
print("this is Ukrainian")
} else{
print("this is not Ukrainian")
}
Swift 5
Locale.current.regionCode // Optional("US")
Locale.current.languageCode // Optional("en")
Locale.current.identifier // en_US
与extension
extension Locale {
var isKorean: Bool {
return languageCode == "ko"
}
}
Locale.current.isKorean => false
除了前面提到的之外,您还可以在每个 Localizable 文件中添加一个条目来告诉您正在使用哪个词典。
// Localizable.strings (zh)
"language" = "en";
// Localizable.strings (ar)
"language" = "ar";
// 用法
NSLocalizedString("language", comment: "")
// check the resulted string
任务是:我有两个 UIImageView,如果系统语言是乌克兰语,我想要显示 ImageView1,如果不是乌克兰语(English/Polish 等),我想要显示 ImageView2。
我试过了:
println(NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguages"))
但此代码仅提供可用语言列表。我也试过
var language: AnyObject? = NSLocale.preferredLanguages().first
但我如何将此变量与英语或乌克兰语进行比较?
Swift 3 你可以这样取语言代码
let preferredLanguage = NSLocale.preferredLanguages[0]
然后你需要将它与代码字符串进行比较
if preferredLanguage == "en" {
print("this is English")
} else if preferredLanguage == "uk" {
print("this is Ukrainian")
}
您可以找到代码 here
一个检查法语是否...
的例子/// Is Device use french language
/// Consider, "fr-CA", "fr-FR", "fr-CH" et cetera
///
/// - Returns: Bool
static func isFrench() -> Bool {
return NSLocale.preferredLanguages[0].range(of:"fr") != nil
}
你可以使用下面的代码 它适用于 swift 3
if Bundle.main.preferredLocalizations.first == "en" {
print("this is english")
}else{
print("this not english")
}
Swift 4 如果队列中有更多语言(例如首选语言将 returns:"uk-US")但您想要先在里面。
你可以这样做:
let preferredLanguage = NSLocale.preferredLanguages[0]
if preferredLanguage.starts(with: "uk"){
print("this is Ukrainian")
} else{
print("this is not Ukrainian")
}
Swift 5
Locale.current.regionCode // Optional("US")
Locale.current.languageCode // Optional("en")
Locale.current.identifier // en_US
与extension
extension Locale {
var isKorean: Bool {
return languageCode == "ko"
}
}
Locale.current.isKorean => false
除了前面提到的之外,您还可以在每个 Localizable 文件中添加一个条目来告诉您正在使用哪个词典。
// Localizable.strings (zh)
"language" = "en";
// Localizable.strings (ar)
"language" = "ar";
// 用法
NSLocalizedString("language", comment: "")
// check the resulted string