Кратко о том, как перевести 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


 

Copyright © 2007 DamnSmallBlog. Content is licensed under Creative Commons Attribution-Noncommercial.

Design: GeckoandFly and Blogcrowds.