summaryrefslogtreecommitdiffstats
path: root/src/util/xmlpool
diff options
context:
space:
mode:
authorDylan Baker <[email protected]>2018-08-24 06:49:55 -0700
committerDylan Baker <[email protected]>2018-10-31 16:37:12 -0700
commit0621e91a8c975e34f2c2092ad3013d6ff81b5ac2 (patch)
tree9669c64bb512a57bf74ad583009d6b727121a401 /src/util/xmlpool
parent7834926a4f5ca0a60ec3d18c87a1e0a68b615820 (diff)
util/xmlpool: Update for meson generation
Meson won't put the .gmo files in the layout that python's gettext.translation() expects, it puts them in the build directory in a flat layout. This modifies android and autotools to do the same (scons doesn't work with translations at all) v3: - Squash 4 patches into this patch Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/util/xmlpool')
-rw-r--r--src/util/xmlpool/Makefile.am10
-rw-r--r--src/util/xmlpool/gen_xmlpool.py12
-rw-r--r--src/util/xmlpool/meson.build2
3 files changed, 14 insertions, 10 deletions
diff --git a/src/util/xmlpool/Makefile.am b/src/util/xmlpool/Makefile.am
index 1c14311dcf5..f993070ef67 100644
--- a/src/util/xmlpool/Makefile.am
+++ b/src/util/xmlpool/Makefile.am
@@ -47,10 +47,10 @@ POS=ca.po de.po es.po nl.po fr.po sv.po
# Don't change anything below, unless you know what you're doing.
#
LANGS=$(POS:%.po=%)
-MOS=$(POS:%.po=%/LC_MESSAGES/options.mo)
+MOS=$(POS:%.po=%.gmo)
POT=xmlpool.pot
-.PHONY: all clean pot po mo
+.PHONY: all clean clean-local pot po mo
EXTRA_DIST = \
gen_xmlpool.py \
@@ -69,17 +69,19 @@ CLEANFILES = \
$(POS) \
$(MOS)
+clean-local:
+ rm -f $(MOS)
+
# Default target options.h
LOCALEDIR := .
options.h: t_options.h $(MOS)
$(AM_V_GEN) $(PYTHON) $(PYTHON_FLAGS) $(srcdir)/gen_xmlpool.py $(srcdir)/t_options.h $(LOCALEDIR) $(LANGS) > options.h
# Update .mo files from the corresponding .po files.
-%/LC_MESSAGES/options.mo: %.po
+%.gmo: %.po
@mo="$@"; \
lang=$${mo%%/*}; \
echo "Updating ($$lang) $@ from $?."; \
- $(MKDIR_P) $$lang/LC_MESSAGES; \
msgfmt -o $@ $?
# Use this target to create or update .po files with new messages in
diff --git a/src/util/xmlpool/gen_xmlpool.py b/src/util/xmlpool/gen_xmlpool.py
index b40f295738e..0ad51eaa785 100644
--- a/src/util/xmlpool/gen_xmlpool.py
+++ b/src/util/xmlpool/gen_xmlpool.py
@@ -8,12 +8,12 @@
#
from __future__ import print_function
-
import argparse
-import io
-import sys
import gettext
+import io
+import os
import re
+import sys
parser = argparse.ArgumentParser()
parser.add_argument('template')
@@ -166,8 +166,10 @@ def expandMatches (matches, translations, end=None):
translations = [("en", gettext.NullTranslations())]
for lang in args.languages:
try:
- trans = gettext.translation ("options", args.localedir, [lang])
- except IOError:
+ filename = os.path.join(args.localedir, '{}.gmo'.format(lang))
+ with io.open(filename, 'rb') as f:
+ trans = gettext.GNUTranslations(f)
+ except (IOError, OSError):
sys.stderr.write ("Warning: language '%s' not found.\n" % lang)
continue
translations.append ((lang, trans))
diff --git a/src/util/xmlpool/meson.build b/src/util/xmlpool/meson.build
index 8d645ce385f..ae7c951a097 100644
--- a/src/util/xmlpool/meson.build
+++ b/src/util/xmlpool/meson.build
@@ -30,7 +30,7 @@ xmlpool_options_h = custom_target(
input : ['gen_xmlpool.py', 't_options.h'],
output : 'options.h',
command : [
- prog_python, '@INPUT@', meson.current_source_dir(), _langs,
+ prog_python, '@INPUT@', meson.current_build_dir(), _langs,
],
capture : true,
depend_files : _langs_po_files,