ios - 检测 NSString 的语言

标签 ios objective-c cocoa

有人告诉我关于 Cocoa 语言识别的类(class)。 有人知道是哪一个吗?

这是工作:

NSSpellChecker *spellChecker = [NSSpellChecker sharedSpellChecker];
[spellChecker setAutomaticallyIdentifiesLanguages:YES];
NSString *spellCheckText = @"Guten Tag Herr Mustermann. Dies ist ein deutscher Text. Bitte löschen Sie diesen nicht.";
[spellChecker checkSpellingOfString:spellCheckText startingAt:0];
NSLog(@"%@", [spellChecker language]);

结果是 'en' 但应该是 'de'。

最佳答案

cocoa 中有 API 可用于检查字符串的语言,最好尽可能使用 Foundation 而不是 CoreFoundation。

NSArray *tagschemes = [NSArray arrayWithObjects:NSLinguisticTagSchemeLanguage, nil];
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:tagschemes options:0];
[tagger setString:@"Das ist ein bisschen deutscher Text. Bitte löschen Sie diesen nicht."];
NSString *language = [tagger tagAtIndex:0 scheme:NSLinguisticTagSchemeLanguage tokenRange:NULL sentenceRange:NULL];

或者,如果您碰巧有混合语言文本,您可以使用 enumerateLinguisticTagsInRange API 来获取文本中每个单词的语言。

关于ios - 检测 NSString 的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325073/

相关文章:

cocoa - 核心数据对象未正确返回与 10.7 的 NSPrivateQueueConcurrencyType 上下文一致的数据

cocoa - NSautorelease 什么时候发布这个?

cocoa - 在 OS X 中绘制 pdf 的命令行应用程序

ios - 在 SwiftUI 中,如何在 UIView 中或作为 UIView 使用 UIHostingController?

c# - 我们能得到已经打开的NSWindow的类名吗?

ios - Google 登录按钮未连接到 Google 按钮 socket Objective C [Pod 安装]

ios - 使用 AFNetworking 的多部分 PUT 请求

iphone - 将 subview 添加到窗口后无法推送模态视图?

ios - 通过用于 UI 自动化的 UIA 脚本访问 iOS 用户首选项

ios - 获取资源文件夹中子目录的路径