objective-c – 检测NSString的语言

有人告诉我一个语言识别类Cocoa。
有人知道它是哪一个?

这不工作:

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’。

谢谢…

有可用的API可以检查字符串的语言,并且它总是最好使用Foundation over 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获取文本中每个单词的语言。

http://stackoverflow.com/questions/6325073/detect-language-of-nsstring

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:objective-c – 检测NSString的语言