如何检查 NSString 语言是否匹配 NSLocaleLanguageCode
How to check if NSString language matches NSLocaleLanguageCode
我正在尝试在 XCode 中执行一个简单的任务,检查某种 NSString 语言是否与用户的首选语言匹配。
例如,假设我有如下字符串:
NSString *englishString = @"Good morning!";
NSString *frenchString = @"Bonjour!";
我知道我可以使用 NSLocaleLanguageCode 值获取用户设备的首选语言,并且根据之前的 Stack Overflow 回答 here,我可以获得以下语言字符串。但是,当我比较这两个值时,键似乎不匹配。有没有更好的方法来实现这个?谢谢!
可以找到 NSLocaleLanguageCode 的文档 here and the description for NSLinguisticTagger can be found here。 NSLocaleLanguageCode returns NSString 而标记器,特别是 "tagAtIndex" 方法 returns NSLinguisticTag 键。
你会得到一个字符串。在 Objective-C 中,NSLinguisticTag
是 NSString *
的同义词。只需将 NSLinguisticTag
(实际上只是一个 NSString
)与您从语言环境的语言代码中获得的 NSString
进行比较即可。
但更简单的解决方案是使用NSLinguisticTagger
的dominantLanguageForString:
class方法轻松获取字符串的语言作为NSString
。这比使用 NSLinguisticTagger
的 tag...
实例方法之一要简单得多,但它确实需要 iOS 11+/macOS 10.13+.
NSLinguisticTag languageTag = ... // tag from NSLinguisticTagger
NSString *languageCode = ... // language from NSLocale
if ([languageCode isEqualToString:languageTag]) {
}
我正在尝试在 XCode 中执行一个简单的任务,检查某种 NSString 语言是否与用户的首选语言匹配。
例如,假设我有如下字符串:
NSString *englishString = @"Good morning!";
NSString *frenchString = @"Bonjour!";
我知道我可以使用 NSLocaleLanguageCode 值获取用户设备的首选语言,并且根据之前的 Stack Overflow 回答 here,我可以获得以下语言字符串。但是,当我比较这两个值时,键似乎不匹配。有没有更好的方法来实现这个?谢谢!
可以找到 NSLocaleLanguageCode 的文档 here and the description for NSLinguisticTagger can be found here。 NSLocaleLanguageCode returns NSString 而标记器,特别是 "tagAtIndex" 方法 returns NSLinguisticTag 键。
你会得到一个字符串。在 Objective-C 中,NSLinguisticTag
是 NSString *
的同义词。只需将 NSLinguisticTag
(实际上只是一个 NSString
)与您从语言环境的语言代码中获得的 NSString
进行比较即可。
但更简单的解决方案是使用NSLinguisticTagger
的dominantLanguageForString:
class方法轻松获取字符串的语言作为NSString
。这比使用 NSLinguisticTagger
的 tag...
实例方法之一要简单得多,但它确实需要 iOS 11+/macOS 10.13+.
NSLinguisticTag languageTag = ... // tag from NSLinguisticTagger
NSString *languageCode = ... // language from NSLocale
if ([languageCode isEqualToString:languageTag]) {
}