C++ определение языка строки
Чё та погуглила, и не нашла функции, которая бы подошла.
Мне нужно узнать язык именно введенного текста. То есть GetKeyboardLayout не подходит, он может вернуть активную раскладку.
Можно конечно взять анси код символа, и сопоставить. Может у кого есть материальчик или функции уже написанные?
Нет такой функции в стандартном C++. И не может быть. Это довольно специфичная функция, с большим объемом работы.
Можно попробовать Google Translate API, но оно платное (хотя $20 за миллион знаков - вроде не так уж и много).
Еще можно попробовать самостоятельно написать такую функцию. Лучше не в ANSI, а в Unicode кодировать, некоторые диапазоны, вроде греческого или армянского алфавитов, сами указывают на язык, во многих языках есть уникальные и частые сочетания, вроде the по-английски или ъ перед согласным в болгарском.
Кстати, вот картинка в тему:
http://hsto.org/storage2/ed9/85c/d4a/ed985cd4a0c56ce188c193c8804f2ead.png
Это уже Искусственный интеллект нужен. Коды ANSI не подходят.
Если только русский и английский, то просто, в русском есть буквы которых нет в английском, да и сочетания букв. Если допустим украинский, то тоже самое, там тоже есть символы уникальные. А чисто по словам разбор по базе в сложных случаях.