Pull to refresh

Bashstyle-NG. Пример локализации приложения

Reading time2 min
Views1K
Намедни зашел на gnomefiles.org посмотреть, не появилось ли какого-нибудь нового интересного софта, или просто обновлений для того, что у меня уже установлено. Мое внимание привлекло обновление bashstyle-ng, графической утилиты для настройки внешнего вида командной строки. Честно говоря, утилиту даже и не пробовал в действии, так как подобные приблуды недолюбливаю и считаю излишними (нет, ну правда, порой ведь проще почитать man, и ручками поправить конфиги). Но мое внимание привлек комментарий автора утилиты:
Looking for Translators!
If you are willing to translate BS-NG into another language then English or German, send me a mail.
If you don’t know how to translate — no problem! Just leave a comment about that in your mail and I'll instruct you.

Первая мысль была примерно такой: «Хм, а смысл заморачиваться?». Следом ее настигла следующая: «Ну-у-у, я ведь как-никак приверженец opensource. Ну и что, что я не буду использовать эту утилиту? Не все ведь любят ковыряться в конфигах…». И правда, многие начинающие пользователи Unix/Linux не могут сходу разобраться в конфигах, более того, многие из них не сильны в английском, плюс ко всему, раз уж назвался приверженцем opensource, то и соответствовать следует. А посему было принято решение: «Помогем-c».

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

В директории с исходниками находим директорию "translations/po" (ну или что-то на это похожее). Затем выполняем внутри этой директории следующую команду:
msginit -i ../pot/filename.pot -o filename-ru.po -l ru_RU

При этом нужно учесть, что для выполнения этой команды нужен установленный gettext, настройка локали должна быть правильной (то есть echo $LC_ALL должно вернуть ru_RU.UTF-8), ну и следить за расположением каталогов в дереве исходников при наборе этой команды. Эта команда сформирует файл filename-ru.po, который будет содержать строки, типа
msgid ="here_some_original_text"

то есть строки с оригинальными текстами, а так же строки типа
msgstr =""

в которые, соответственно нужно внести наш перевод.

После рутинной обработки файла переходим на каталог (или несколько каталогов) выше и ищем файлик filename.in. В этом файлике нам нужно найти приблизительно такую строку:
langs += ["C", "de", "it"]

то бишь список локалей, и исправить на нечто вроде этого:
langs += ["C", "de", "it", "ru"]

после чего переходим непосредственно к установке и тестированию:
./configure –prefix=/path/to/install
make mo #генерируем бинарник с переводом
make install

и если все прошло нормально, то после запуска мы увидим локализованное приложение.

Потратив всего пару часов я получил немалое удовольствие от проделанной работы, а после отправки языкового .po файла автору утилиты, получил письмо, которое подняло мое настроение еще больше:
Wow! That was fast :)
I just tested it, and the strings appear all.
You can grab the latest svn (revision 500) and you’ll see yourself in
the about-dialog (translators tab) :)

Thanks a lot!
Chris

Помогайте людям, делитесь идеями, это здорово, правда :)
Tags:
Hubs:
Total votes 87: ↑83 and ↓4+79
Comments10

Articles