有人告诉我关于 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/