Проверка, использует ли язык контента направление справа налево?

Есть ли в Qt встроенный метод или другой способ проверить, использует ли язык контента направление справа налево?

QFile fileHandle("c:/file.txt");
if(!fileHandle.open(QFile::ReadOnly|QFile::Text))
return;
QTextStream fileContent(&fileHandle);
fileContent.setCodec("UTF-8");
fileContent.setGenerateByteOrderMark(false);
ui->plainTextEdit->setPlainText(fileContent.readAll());
fileHandle.close();

4

Решение

Я не слишком много работал с языками справа налево, но надеюсь, что эти предложения помогут вам:

  • Если вы знаете, что ваш контент в UNICODE, вы можете проверить этот ответ (использование QTextCodec::codecForUtfText) для точного определения кодировки. Затем классифицируйте символы, чтобы определить доминирующее подмножество (слева направо: английский, кириллица …, справа налево: арабский, иврит …), вероятно, гистограммы будет достаточно. Вместо этого вы могли бы использовать структуру определения языка, но я думаю, что вам нужно только тип языка, а не самого языка (что гораздо сложнее).

  • Поиск для знак справа налево (RLM) (непечатный символ, обычно используемый для обозначения двунаправленного текста). Если вы создаете контент, вы можете добавить RLM в начале файла ( противоположный (LRM) также существует).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]