Я просто ненарадуюсь простоте и мощи Линукса.
По привычке загрузил KBabel и стал искать в нём возможность объединить существующий старый перевод и POT-файл из новой версии модуля...
Ну, думаю, это же не винда - для себя писалось. Всё должно быть чётко!
Не нашёл. Просмотрел ещё 2 раза, всё перепробовал - ничего.
Вспомнилось старое правило: "Если ничего не помагает - прочти инструкцию..."
Прочёл - оказывается нужно сделать Базу переводов.
Настроил, импортировал старый перевод в эту базу.
Загрузил новый POT-файл и стал пробовать.
Для каждой строки я могу найти в этой базе варианты перевода! Супер! Работает!
Но... только для одной строки - а их 213 штук!
Что-то не так. Не стыкуется это со стилем Линукса. Винда - может быть, но не Линукс!
Стал искать в инете и нашёл решение одной строкой:
'''msgmerge --no-fuzzy-matching -o new_ru.po ru.po source_strings.po'''
где
*''new_ru.po'' - в этот файл будет записан объединённый перевод
*''ru.po'' - существующий перевод
*''source_strings.po'' - файл с новыми строками (бывший POT-файл)
Элегантно и надёжно.
P.S.
Попробуйте `msgmerge --help' для получения более подробного описания.
Комментарии
Решение с офсайта - http://drupal.org/node/12890
В этом решении строки из многих маленьких файлов объединяются в один большой, но это даже очень интересно...
А мне нужно было объединить новый (не переведённый) файл и старый (не полный) перевод, чтобы не делать двойную работу.
А! Тогда по ссылке с с той страницы - http://drupal.org/node/11311. Там тоже кое-что интересное есть.
Кстати poEdit (http://www.poedit.net/download.php) под Windows такое объединение тоже легко делает:
Про poEdit:
Я работаю в Линуксе и переходить на что-либо другое не собираюсь. А Линуксе есть Kbabel для работы с PO и POT-файлами. Довольно мощная вещь и скорее всего я не разобался до конца как эта прога работает...
Меня аскетичная командная строка очень даже устраивает - быстро и точно. Но это дело вкуса.
Вот сделал перевод для potx (извлекает строки из кода): http://drupal.ru/node/8959
Poedit он и под линуксом есть, но не так уж давно он не умел корректно работать с множественными числами. Сейчас умеет, но каких-то особых фич, чтобы переходить на него не вижу. В общем-то, и kbabel, и poedit, и gtranslator - средства одного уровня.
В Linux есть еще gtranslator -> для тех кто не использует KDE, а использует GTK+2 окружение (GNOME, XFCE, e.t.c)
Дык, cli утилиты из набора gettext для таких задач и предназначены. Команды начинаются с msg* - ищите в своём дистрибутиве
Мне в линуксе из трёх популярных редакторов - kbabel, poedit, gtranslator по интерфейсу больше приглянулся последний. Ещё неплохо выглядит po-mode в emacs, но вещь совсем на любителя, сам давно уже не работал с этой системой.
В Мандриве 2007 поискал эти программы:
*gtranslator 1.1.6 - Translation (.po) file editor with many features
*poedit 1.3.4 - Gettext translation file editor
*kdesdk-kbabel 3.5.4 - KBabel is a set of tools for editing and managing gettext PO files.
Дистрибутив старый, но все эти проги уже есть!!! Супер.
Будем смотреть. Вы мне подсказывайте, а то я быстро велосипеды изобретаю...
''Прикольный глюк выше обнаружился в ВИКИ-фильтре - цифры с точками считает адресом в инете....''
===PoEdit===
*Выглядит очень простым по сравнению с KBabel.
*Возможностей мало.
*При вызове справки слетает.
*Я бы так сказал - самое нужное, аскетичная прога в стиле Gnome.
*Не нашёл возможности как в KBabel пометить строку как "черновой перевод" и "ошибочный перевод"... и перехода между строками помеченными разным образом. Например, перейти на последнюю непереведённую строку или перейти на следующий черновой перевод...
===gtranslator===
*Лучше, чем Poedit.
*Удобнее и красивше.
*Есть разные фишечки и даже база перевдов, но не понял как туда что-то добавить.
*Есть автоперевод и компиляция. Что это не знаю, но они есть. Автоперевод - это скорее всего черновой перевод из базы переводов....
===Kbabel===
*Просто монстр по сравнению с остальными.
*Намного больше настроек и функций.
*Может быть я просто привык к нему, но он уже давно развивается и всяких ляпов в нём должно быть меньше всего.
'''Axel''', а что есть по Gettext почитать? Я совершенно ничего в этом не понимаю...