使用应用语言而非 phone 区域设置语言的国家代码检索国家名称
Retrieve country name using country code in app language not phone locale language
我正在使用 Localize_Swift
库。我使用它更改应用程序语言。现在我正在使用国家代码检索国家名称。
class Country: NSObject {
class func locale(for countryCode : String) -> String {
let identifier = NSLocale(localeIdentifier: countryCode)
let countryName = identifier.displayName(forKey: NSLocale.Key.countryCode, value: countryCode)
return countryName?.uppercased() ?? ""
}
}
该功能是 return 以 phone 区域设置语言而不是应用程序语言输入国家/地区名称。有没有办法让它 return 在其区域设置语言名称中成为国家/地区名称。
Example: Germany -> Deutschland
Example: Austria -> Österreich
或者有任何变通建议?
您只需在初始化区域设置时指定语言:
struct Country {
static func locale(for regionCode: String, language: String = "en") -> String? {
Locale(identifier: language + "_" + regionCode)
.localizedString(forRegionCode: regionCode)
}
}
Country.locale(for: "DE") // "Germany"
Country.locale(for: "DE", language: "de") // "Deutschland"
如果您想自动select基于country/region代码的语言:
struct Country {
static func locale(for regionCode: String) -> String? {
let languageCode = Locale(identifier: regionCode).languageCode ?? "en"
return Locale(identifier: languageCode + "_" + regionCode)
.localizedString(forRegionCode: regionCode)
}
}
Country.locale(for: "DE") // "Deutschland"
我正在使用 Localize_Swift
库。我使用它更改应用程序语言。现在我正在使用国家代码检索国家名称。
class Country: NSObject {
class func locale(for countryCode : String) -> String {
let identifier = NSLocale(localeIdentifier: countryCode)
let countryName = identifier.displayName(forKey: NSLocale.Key.countryCode, value: countryCode)
return countryName?.uppercased() ?? ""
}
}
该功能是 return 以 phone 区域设置语言而不是应用程序语言输入国家/地区名称。有没有办法让它 return 在其区域设置语言名称中成为国家/地区名称。
Example: Germany -> Deutschland
Example: Austria -> Österreich
或者有任何变通建议?
您只需在初始化区域设置时指定语言:
struct Country {
static func locale(for regionCode: String, language: String = "en") -> String? {
Locale(identifier: language + "_" + regionCode)
.localizedString(forRegionCode: regionCode)
}
}
Country.locale(for: "DE") // "Germany"
Country.locale(for: "DE", language: "de") // "Deutschland"
如果您想自动select基于country/region代码的语言:
struct Country {
static func locale(for regionCode: String) -> String? {
let languageCode = Locale(identifier: regionCode).languageCode ?? "en"
return Locale(identifier: languageCode + "_" + regionCode)
.localizedString(forRegionCode: regionCode)
}
}
Country.locale(for: "DE") // "Deutschland"