Кратко о том, как перевести WxWidgets-приложение. На примере fityk-0.8.6.
Это ни в коем случае не how-to по gettext и WxWidgets, а просто ориентир куда копать за дальнейшими знаниями.
1) Скачиваем архив, распаковываем, переходим в распакованный каталог.
Следующими пунктами выполним минимальные (см. здесь и здесь) действия по подготовке кода к переводу .
2) $ vim ./src/wxgui/app.h
В конце класса FApp добавляем строку:
wxLocale ss_locale;
3) $ vim ./src/wxgui/app.cpp
В начале FApp::OnInit(void) добавляем строки:
if(ss_locale.Init())
ss_locale.AddCatalog(wxT("fityk.mo"));
Для примера будем просто грузить fityk.mo, который в следующих шагах сформируем.
4) $ vim ./src/wxgui/frame.cpp
Помечаем в файле строки, подлежащие переводу, для чего нужно заменить wxT() на макрос _() (см. доки WxWidgets)
Для примера:
Было:
append_mi(help_menu, ID_H_CONTACT, GET_BMP(bug16), wxT("&Report a Problem"),
Стало:append_mi(help_menu, ID_H_CONTACT, GET_BMP(bug16), _("&Report a Problem"),
5) Собираем строки, подлежащие переводу в .po-файл (подробней см. по ссылке). Xgettext ищет вхождения _() в текстах и формирует .po-шаблон:xgettext -C -n -k_ -o fityk.po ./src/wxgui/*.cpp
6) Непосредственно переводим .po-файл, например с помощью редактора poedit:poedit ./fityk.po
7) Форимируем итоговый .mo-файл с переводами строк:
msgfmt -o fityk.mo fityk.po
8) Собираем и запускаем fityk./configure
make
sudo make install
fityk
Подписаться на:
Сообщения (Atom)