Somebody told me about a class for language recognition in Cocoa. Does anybody know which one it is?
This is not working:
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]);
The result is 'en' but should be 'de'.
There is API in cocoa available to check the language of a string, and it is always best to use Foundation over CoreFoundation whenever possible.
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];
Alternatively, if you happen to have mixed language text, you can use the enumerateLinguisticTagsInRange API to get the language of each word in the text.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With