#!/usr/bin/env python # -*- coding: utf-8 -*- # Initially written by Nikos Kouremenos # Dedicated to Yann Le Boulanger # Usage: './translations.py [help] [stats] [update]' import os import sys stats = False update = False check = False def visit(arg, dirname, names): if dirname.find('.svn') != -1: return if dirname.endswith('LC_MESSAGES'): if 'gajim.po' in names: path_to_po = os.path.join(dirname, 'gajim.po') pos = path_to_po.find('po/') + 3 #3 = len('po/') endpos = path_to_po.find('/', pos) name = path_to_po[pos:endpos] if update: # update an existing po file) os.system('msgmerge -q -U ../po/'+name+'/LC_MESSAGES/gajim.po ../po/gajim.pot') if stats: print name, 'has now:' os.system('msgfmt --statistics ' + path_to_po) if check: os.system('msgfmt -c --check-accelerators="_" ' + path_to_po) else: print 'PROBLEM: cannot find gajim.po in', dirname def show_help(): print sys.argv[0], '[help] [stats] [update] [check]' sys.exit(0) def update_pot(): # create header for glade strings os.system('intltool-extract --type=gettext/glade ../src/gtkgui.glade') # update the pot os.system('make -C ../po/ all gajim.pot') print 'gajim.pot was updated successfully' if __name__ == '__main__': if os.path.basename(os.getcwd()) != 'scripts': print 'run me with cwd: scripts' sys.exit() path_to_dir = '../po' if len(sys.argv) == 2: if sys.argv[1].startswith('h'): show_help() param = sys.argv[1] if param == 'stats': # stats only stats = True os.path.walk(path_to_dir, visit, None) elif param == 'update': # update only update_pot() update = True os.path.walk(path_to_dir, visit, None) # update each po & no stats print 'Done' elif param == 'check': check = True os.path.walk(path_to_dir, visit, None) elif len(sys.argv) == 1: # update & stats & no check update_pot() update = True stats = True os.path.walk(path_to_dir, visit, None) print 'Done' else: show_help()