Локализация приложения


    Речь пойдет об одном из способов перевода интерфейса на примере веб-приложения, для работы нам понадобятся утилита xgettext и какое-нибудь приложение для работы с файлами переводов gettext (*.po), так же консольная программа msgfmt. Все это можно без труда получить из сети или найти на диске с дистрибутивом linux, его и будем использовать.

    Первое что необходимо сделать — получить все строковые значения, которые выводятся на экран и так или иначе используются в приложении. В этом нам поможет утилита xgettext. Она распознает простые строковые значения, которые встречаются в исходном тексте программы и скалывает их в файл перевода с расширением .po. Для того что бы это произошло нужно выполнить команду в консоли:

xgettext -n /путь/к/входному/файлу -o /путь/к/файлу/с/результатом

так же можно передать не отдельный файл, а директорию и указать язык программирования:

xgettext -L PHP -n -D /путь/к/директории/с/файлами -o /путь/к/файлу/с/результатом

    В результате получаем файл с таким содержанием:

#: /home/user/main.php:8
msgid "Добро пожаловать"
msgstr ""

#: /home/user/main.php:16
msgid "Выход"
msgstr ""

    Следующим шагом будет непосредственно перевод файла .po, это можно сделать и вручную просто заполнив строку msgstr, но при таком подходе легко можно что-то перепутать особенно если файл очень большой или их несколько. Существует несколько программ с хорошей документацией способных облегчить эту задачу одна из них это Kbabel.

    Теперь осталось скомпилировать файл перевода, не все приложения этого требуют, некоторые используют их в таком человеко-понятном виде, но эти программы работают не так быстро, чем те которые используют файлы переводов в машинном формате, эти файлы имеют расширение *.mo. Заняться этим может утилита msgfmt все что нужно сделать — выполнить команду в консоли:

msgfmt /файл/перевода -o /файл/для/вывода/результата

здесь так же можно указать опцию -D для того что бы msgfmt скомпилировал все файлы в указанной директории.


Раздел: Разработка Рубрика: Инструменты


Добавлена: 17-02-2009 | Изменена: 17-02-2009 | Пользователем: stone | Просмотров: 3018



Оставить комментарий



капча

Комментарий будет опубликован после проверки модератором

Для подсветки синтаксиса используйте тэги:
<pre><code class="синтаксис" >код</code></pre>
Подерживаются следующие: cpp php javascript sql html-xml css ini

сайт бюро переводов optim-all.ru