gajim-plural/scripts/dev/translations.py

78 lines
2.0 KiB
Python
Executable File

#!/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()) != 'dev':
print 'run me with cwd: scripts/dev'
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()