aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/gettext.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/scripts/gettext.py')
-rw-r--r--mesonbuild/scripts/gettext.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/mesonbuild/scripts/gettext.py b/mesonbuild/scripts/gettext.py
index 95fd45a..44dfd50 100644
--- a/mesonbuild/scripts/gettext.py
+++ b/mesonbuild/scripts/gettext.py
@@ -38,6 +38,13 @@ def gen_gmo(src_sub, bld_sub, langs):
'-o', os.path.join(bld_sub, l + '.gmo')])
return 0
+def update_po(src_sub, pkgname, langs):
+ potfile = os.path.join(src_sub, pkgname + '.pot')
+ for l in langs:
+ pofile = os.path.join(src_sub, l + '.po')
+ subprocess.check_call(['msgmerge', '-q', '-o', pofile, pofile, potfile])
+ return 0
+
def do_install(src_sub, bld_sub, dest, pkgname, langs):
for l in langs:
srcfile = os.path.join(bld_sub, l + '.gmo')
@@ -62,6 +69,15 @@ def run(args):
src_sub = os.path.join(os.environ['MESON_SOURCE_ROOT'], os.environ['MESON_SUBDIR'])
bld_sub = os.path.join(os.environ['MESON_BUILD_ROOT'], os.environ['MESON_SUBDIR'])
return gen_gmo(src_sub, bld_sub, args[1:])
+ elif subcmd == 'update_po':
+ pkgname = args[1]
+ langs = args[2].split('@@')
+ datadirs = args[3][11:] if args[3].startswith('--datadirs=') else None
+ extra_args = args[4:] if datadirs is not None else args[3:]
+ src_sub = os.path.join(os.environ['MESON_SOURCE_ROOT'], os.environ['MESON_SUBDIR'])
+ if run_potgen(src_sub, pkgname, datadirs, extra_args) != 0:
+ return 1
+ return update_po(src_sub, pkgname, langs)
elif subcmd == 'install':
subdir = args[1]
pkgname = args[2]