При закрытии подписчики были переданы в рассылку "Обзор инструментов SEO-оптимизатора и методов продвижения" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
У нас будет два языка - русский и английский. Основной - английский, на нём
будет написано приложение, переводы на остальных языках будут содержаться во
внешних файлах. Как уже было сказано, у нас будет только один дополнительный
язык - русский, но никто не мешает Вам самостоятельно перевести и на другие
языки. Добавим в основной заголовочный файл image_viewer.h следующий код: // Для
локализации #ifdef WIN32 libintl.h - это заголовочный файл содержащий функцию char* gettext(const char
*text), char
*ret; setlocale() это POSIX функция, присутствует как к Linux, так и в Windows, она
задаёт язык для приложения, в нашем случае язык берётся из системы. Теперь в gtk_init() GTK+ определит для себя язык с переводом и возьмёт его из
соответствующей папки. Осталось самое главное - сделать файл с переводом image_viewer.mo. Для облегчения этой работы создано множество полезных утилит. Первым делом нужно автоматически вытащить все строки с переводами из исходных текстов. Для этого предварительно создадим текстовый файл с именами исходных файлов list.txt в которых могут быть фразы для перевода и выполним команду: xgettext --from-code=UTF-8 -o image_viewer.pot -d image_viewer -k_ -c -C -f list.txt Должен появиться файл image_viewer.pot, вот его начало: # SOME DESCRIPTIVE TITLE.# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT
HOLDER Строки вроде Last-Translator и Language-Team переводчик должен заменить на свои реквизиты. Для перевода фраз нужно заполнить строки msgstr"" во всех парах msgid/msgstr, пример: msgid "Open File" msgstr "Открыть файл" Теперь можно сформировать бинарный файл image_viewer.mo командой: msgfmt image_viewer.po -o image_viewer.mo Должен появится файл image_viewer.mo, который положим в папку /usr/share/locale/ru/LC_MESSAGES в Linuxe, или в locale/ru/LC_MESSAGES в Windowse. Теперь всё готово, можно запускать приложение, и в нём должен появиться русския язык, попробуйте убрать файл с переводом и приложение будет на английском языке. Но если мы изменим приложение, добавим новые строки с переводами, уберём или изменим старые, неужели придётся вручную всё делать заново? Конечно нет, об этом разработчики тоже позаботились, при изменениях снова создаём pot файл и запускаем команду обновления po файла: msgmerge -U image_viewer.po image_viewer.pot Новые, еще не переведённые строки из pot файла попадут в ро файл, в котором старые строки останутся переведёнными, а убранные строки исчезнут в po файле. Теперь понятно, почему сначала создаётся pot файл, а не сразу po. Кстати, с помощью команды msgunfmt можно декомпилировать файл перевода, т.е. из mo файла получить po файл. Это может понадобится в случаях, если Вы захотите посмотреть переводы в другом приложении или сделать новый перевод. Существует удобный визуальный редактор .po файлов poEdit, он совершенно бесплатен и доступен для многих платформ, а также в виде исходных кодов. Используя его, можно позабыть о msgfmt и msgmerge. Страница poEdit: http://sourceforge.net/project/showfiles.php?group_id=27043 Для пользователей Windows: Если у Вас нет файлов xgettext.exe, msgfmt.exe и т.д., поставьте MinGW или Gygwin, там они есть. Как вариант - можно скачать poEdit, там тоже есть все эти файлы. Исходные коды приложения с файлами локализации доступны по ссылке: image-viewer1.4.tar.gz [15 кб] Все вопросы, пожелания и замечания можно отсылать по адресу: comp.soft.prog.gtk-owner@subscribe.ru
|
В избранное | ||