diff options
Diffstat (limited to 'mesonbuild/scripts/gettext.py')
-rw-r--r-- | mesonbuild/scripts/gettext.py | 16 |
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] |