Change video content scaling so that it either:
[dcpomatic.git] / i18n.py
diff --git a/i18n.py b/i18n.py
index c22cbdb95f782f1f79f327a15cb0a8069d48cee6..a3589ff82747b9e84c54ba6a3536181d1b480b41 100644 (file)
--- a/i18n.py
+++ b/i18n.py
@@ -2,30 +2,35 @@ import glob
 import os
 from waflib import Logs
 
-def pot(dir, sources, name, all = False):
+def command(c):
+    print(c)
+    os.system(c)
+
+def pot(dir, sources, name):
     s = ""
-    for f in sources.split('\n'):
+    for f in sources.split():
         t = f.strip()
         if len(t) > 0:
             s += (os.path.join(dir, t)) + " "
 
-    if all:
-        Logs.info('Making %s.pot (extracting all)' % os.path.join('build', dir, name))
-        os.system('xgettext -d %s -s --extract-all -p %s -o %s.pot %s' % (name, os.path.join('build', dir), name, s))
-    else:
-        Logs.info('Making %s.pot' % os.path.join('build', dir, name))
-        os.system('xgettext -d %s -s --keyword=_ --add-comments=/ -p %s -o %s.pot %s' % (name, os.path.join('build', dir), name, s))
-    
+    Logs.info('Making %s.pot' % os.path.join('build', dir, name))
+    d = os.path.join('build', dir)
+    try:
+        os.makedirs(d)
+    except:
+        pass
+
+    command('xgettext --from-code=UTF-8 -d %s -s --keyword=_ --keyword=S_ --add-comments=/ -p %s -o %s.pot %s' % (name, d, name, s))
+
+def pot_merge(dir, name):
+    for f in glob.glob(os.path.join(os.getcwd(), dir, 'po', '*.po')):
+        command('msgmerge %s %s.pot -o %s' % (f, os.path.join('build', dir, name), f))
 
-def po_to_mo(dir, name):
-    for f in glob.glob(os.path.join(dir, 'po', '*.po')):
-        
+def po_to_mo(dir, name, bld):
+    for f in glob.glob(os.path.join(os.getcwd(), dir, 'po', '*.po')):
         lang = os.path.basename(f).replace('.po', '')
-        out = os.path.join('build', dir, 'mo', lang, '%s.mo' % name)
-        try:
-            os.makedirs(os.path.dirname(out))
-        except:
-            pass
+        po = os.path.join('po', '%s.po' % lang)
+        mo = os.path.join('mo', lang, '%s.mo' % name)
 
-        os.system('msgfmt %s -o %s' % (f, out))
-        Logs.info('%s -> %s' % (f, out))
+        bld(rule='msgfmt -c ${SRC} -o ${TGT}', source=bld.path.make_node(po), target=bld.path.get_bld().make_node(mo))
+        bld.install_files(os.path.join('${PREFIX}', 'share', 'locale', lang, 'LC_MESSAGES'), mo)