Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОУК / 09 семестр / Книги и методические указания / Руководство программиста в Photon.doc
Источник:
Скачиваний:
364
Добавлен:
04.03.2014
Размер:
7.99 Mб
Скачать

Глава 14. Поддержка международных языков

PhAB имеет встроенную поддержку для приложений, требующих перевода на другие языки. Эта глава включает:

  • Соображения о проектировании приложений

  • Генерация языковой базы данных

  • Базы данных сообщений

  • Редактор языков

  • Запуск Вашего приложения на исполнение

  • Распространение Вашего приложения

Помня о нескольких соображениях в отношении проектирования, и затем следуя нескольким простым шагам, Вы сможете очень легко перевести Ваше приложение на другой язык без необходимости перекомпиляции или перестройки Вашего приложения:

  1. PhAB генерирует базу данных для всех текстовых строк, встречающихся в Вашем приложении.

  2. Эта текстовая база данных используется редактором языков PhAB'a, чтобы дать Вам возможность переводить каждую текстовую строку на другой язык.

  3. Переведенные текстовые строки сохраняются в файле перевода и добавляются в Ваше приложение.

  4. Чтобы запустить Ваше приложение на исполнение с другим языком, просто установите переменную окружения перед запуском приложения. Когда API PhAB'a построит окна приложения, диалоги и другие модули, он заменит текстовые строки другими, с новыми переводами. [Прим.пер.: не совсем так. Переменная окружения ABLANG "принимается" на этапе запуска сессии Photon'а, и экспорт нового значения влияния уже не оказывает. Поэтому не экспортом переменной, а записью соответствующей строки в файл /root/.ph/.ABLANG, из которого берёт значение переменной строка из файла /root/.profile, выполняется переключение языка. После чего необходим перезапуск сессии Photon'а].

Это так просто.

Соображения о проектировании приложения

В этом разделе представлены несколько соображений по поводу проектирования, которые помогут Вам создать приложение, независимое от языка. Проектируя и реализовывая Ваше приложение, Вы должны иметь в виду эти соображения, поскольку модификация приложения после её завершения будет более трудной.

Размер виджетов, основанных на тексте

Обычно, когда Вы проектируете приложение, Вы планируете окно, использующее виджеты, имеющие уже предустановленный по умолчанию текст приложения. Например, если Вы имеете кнопку "Done" в нижней части окна диалога, сама кнопка должна быть достаточно большой лишь в той мере, чтобы разместить текстовую строку "Done". Вы также разместите кнопку "Done" на основании её текущего размера. Это хорошо работает в приложениях, которые не требуют перевода, но станет причиной многих проблем в приложении, независимом от языка. Что будет, если переведенный текст будет состоять не из 4 символов, как по умолчанию, а из 12?

  • "Переводимая" кнопка может стать больше по размеру. В этом случае она может стать такой широкой, что будет писать поверх других виджетов окна. Это приведёт к тому, что приложение будет выглядеть хреново или убого спроектированным

или

  • Текст может быть обрезан внутри размера, заданного по умолчанию. В этом случае переводимый текст может стать нечитабельным, и пользователь не будет знать, что эта кнопка делает.

Например, эти кнопки слишком малы, чтобы быть приспособленными под переведенный текст:

Решение элементарно. Сделайте кнопки больше, чтобы подогнать их под более длинные переведенные строки. Вот так, например: