Глава 17. Интернационализация

We use cookies. Read the Privacy and Cookie Policy

Глава 17. Интернационализация

Кроме латинского алфавита, используемого для английского и многих европейских языков, Qt 4 обеспечивает широкую поддержку остальных мировых систем записи:

• Qt применяет Unicode в программном интерфейсе и во внутренних операциях. В приложении можно обеспечить всем пользователям одинаковую поддержку независимо от того, какой язык применяется в пользовательском интерфейсе;

• текстовый процессор Qt может работать со всеми основными нелатинскими системами записи, в том числе с арабской, китайской, кириллицей, ивритом, японской, корейской, тайской и с языками Индии;

• процессор компоновки Qt обеспечивает компоновку справа налево для таких языков, как арабский и иврит;

• для определенных языков требуются специальные методы ввода текста. Такие виджеты редактирования, как QLineEdit и QTextEdit, хорошо работают в условиях применения любого метода ввода текста, существующего в системе пользователя.

Разрешение ввода текста пользователями на их родном языке часто оказывается недостаточным; необходимо также перевести весь пользовательский интерфейс. В Qt это делается просто: все видимые пользователем строки обработайте функцией tr() (как это мы делали в предыдущих главах) и воспользуйтесь утилитами Qt для подготовки файлов перевода на требуемый язык. Qt имеет утилиту с графическим пользовательским интерфейсом, которая называется Qt Linguist и предназначается для переводчиков. Qt Linguist дополняется двумя консольными программами lupdate и lrelease, которые обычно используются разработчиками приложений.

В большинстве приложений файл перевода загружается при запуске приложения с учетом установленных пользователем параметров локализации. Однако в некоторых случаях пользователям необходимо переключаться с одного языка на другой во время выполнения приложения. Это, несомненно, можно делать в Qt, хотя и потребует немного дополнительной работы. А благодаря системе компоновки Qt различные компоненты интерфейса пользователя будут автоматически перенастраиваться, чтобы обеспечить достаточно места для переведенного текста, когда его размер превышает размер исходного текста.