diff options
author | Patrick Griffis <tingping@tingping.se> | 2016-11-30 19:48:53 -0500 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-12-02 22:40:12 +0200 |
commit | e4a755ba92ed5fd7a1767492dce290b2dc9e3c59 (patch) | |
tree | 8444fb377fe4e039f95bdee032801cbf7b8d3684 /mesonbuild/modules/i18n.py | |
parent | 7afb4c655281d60ef64d0378ff126a08f12a14ce (diff) | |
download | meson-e4a755ba92ed5fd7a1767492dce290b2dc9e3c59.zip meson-e4a755ba92ed5fd7a1767492dce290b2dc9e3c59.tar.gz meson-e4a755ba92ed5fd7a1767492dce290b2dc9e3c59.tar.bz2 |
i18n: Read languages from LINGUAS file
This avoids duplicating a list and allows the translation
maintainers to not have to modify the build system.
Mentioned in #1115
Diffstat (limited to 'mesonbuild/modules/i18n.py')
-rw-r--r-- | mesonbuild/modules/i18n.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py index 1ddb2fc..bb1b2f8 100644 --- a/mesonbuild/modules/i18n.py +++ b/mesonbuild/modules/i18n.py @@ -12,16 +12,26 @@ # See the License for the specific language governing permissions and # limitations under the License. +from os import path from .. import coredata, mesonlib, build import sys class I18nModule: + @staticmethod + def _read_linguas(state): + linguas = path.join(state.environment.get_source_dir(), state.subdir, 'LINGUAS') + try: + with open(linguas) as f: + return [line.strip() for line in f if not line.strip().startswith('#')] + except (FileNotFoundError, PermissionError): + return [] + def gettext(self, state, args, kwargs): if len(args) != 1: raise coredata.MesonException('Gettext requires one positional argument (package name).') packagename = args[0] - languages = mesonlib.stringlistify(kwargs.get('languages', [])) + languages = mesonlib.stringlistify(kwargs.get('languages', self._read_linguas(state))) if len(languages) == 0: raise coredata.MesonException('List of languages empty.') datadirs = mesonlib.stringlistify(kwargs.get('data_dirs', [])) |