Составители:
Рубрика:
107
Интернационализация — это адаптация продукта для потенциального использования практически
в любом месте. Интернационализация производится на начальных этапах разработки, причём в
некоторых случаях она проста — например, требуется чтобы приложение было возможно
использовать на Украине, а в некоторых может потребовать немного больше, чем просто некоторые
исправления орфографии. Например, чтобы сделать приложение написанное в России полезным для
японских пользователей, или корейские приложения для немецких, будет требоваться, чтобы
программное обеспечение не только отображало информацию на разных языках, но и использовало
различные методы ввода, кодировка символов, соглашения о представлении услуг, методы
отображения дат и т. д.
В MeeGo SDK есть все инструменты для того, чтобы произвести интернационализацию продукта
как можно безболезненнее. В MeeGo SDK используются средства предоставляемые фреймворком Qt
— они включают в себя все виджеты ввода данных и методы отрисовки текста. Например,
встроенный модуль отображения шрифта способен правильно и красиво отобразить текст,
одновременно содержащий символы из различных систем письменности. Кроме того, в Qt
предлагается встроенная поддержка практически всех используемых языков (в частности, все
восточно-азиатские, западные, арабские, кириллические и т. д), а также всех сценариев Unicode 5.1, не
требующих специальной обработки.
Во многих системах письменности есть свои особенности, например:
· Специальное поведение при разрыве строки. Некоторые из азиатских языков пишутся без
пробелов между словами. Разрыв строки может происходить либо после каждого символа (с
некоторыми исключениями), как в китайском, японском и корейском языках, или после
логические границы слова, как в Таиланде.
· Двунаправленные письменные формы. В Арабском и Иврите пишутся справа налево, за
исключением номеров и встроенного английского текста (который пишется слева направо).
Точное поведение определяется в 9-м технмическом приложении Unicode.
· Номера интервалов или диакритических знаков (акцентов или умляутов в европейских
языках). Некоторые языки, такие, как вьетнамские широко используют эти знаки, и некоторые
символы могут иметь более одной отметки для уточнения произношения.
· Лигатуры. В особых контекстах, некоторые пары символов необходимо заменять
комбинированным символом формирование лигатуры.
Поддержка различных систем письменности в большинстве случаев прозрачна для программиста
и полностью инкапсулируется внутри модуля вывода текста Qt. Это, в свою очередь означает, что
программисту нет никакой необходимости помнить об используемой системе письменности, за
исключением нескольких моментов:
· QPainter::DrawText (int X, int Y, сопst QString &str) всегда рисует строку с ее левого
края в положение, определенном параметрами X, Y. Для большинства локалей выведется строка,
выровненная по левому краю. На арабском языке и иврите в приложениях, как правило,
необходимо выравнивать строку по правому краю, так что для этих языков необходимо
передавать в функцию DrawText () другие координаты.
· Когда вы пишете собственные элементы управления вводом текста, используйте QTextLayout. В
некоторых языках (например, арабский язык или языки из Индии), ширина и форма знака
меняется в зависимости от окружающих символов, которые QTextLayout принимает во внимание.
При написании таких элементов управления настоятельно рекомендуется наследоваться от
QLineEdit, или QTextEdit, а также учитывать различные контексты использования.
Общая схема, используемая при интернационализации проекта:
· все литерные тексты необходимые для перевода маркируются прямо в коде по средствам вызова
функции tr(), или макроса QT_TR_NOOP();
· выполняется трансляция утилитой lupdate, которая «выдирает» маркированные тексты;
· тексты переводятся вручную, с использованием утилиты Qt Linguist.
Страницы
- « первая
- ‹ предыдущая
- …
- 105
- 106
- 107
- 108
- 109
- …
- следующая ›
- последняя »
