У нас есть приложение на основе C Nurses (работает на большинстве разновидностей Unix, но мы предпочитаем RHEL). У нас есть поддержка Unicode, но теперь мы должны предоставить версию приложения на иврите. Кто-нибудь знает процесс, который мы могли бы пройти, чтобы преобразовать программу? В основном он получает и хранит данные от Oracle, который может поддерживать иврит, так что проблем быть не должно. На самом деле проблема только в отображении текста.
Поддержка иврита в приложении C ncurses
Ответы (1)
Важно знать, какой терминал они используют, потому что это определяет, как вы должны писать код. Некоторые терминалы поддерживают BiDi (т.е. двунаправленный текст). Это означает, что они автоматически переворачивают текст на иврите/арабском языке задом наперед.
У него есть свои проблемы, вы можете проверить, как будет выглядеть ваше приложение, используя mlterm. По сути, он переворачивает строки, содержащие текст на иврите, сохраняя при этом то, что интерпретируется как английские символы LTR. Еврейский символ, напечатанный до 10,70, появится в 10,10. Вы можете использовать Unicode LTR RTL, чтобы попытаться указать направление для вещей, которые нарушают ваше форматирование, но, по крайней мере, на mlterm, пока они работают, они печатают мусорные символы.
Однако, если они используют обычные терминалы с поддержкой юникода, вам следует самостоятельно сбрасывать символы. Тогда, конечно, если он запускается на двунаправленных терминалах, текст снова будет перевернутым, и формат будет потерян.