aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules/i18n.py
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2016-11-30 19:48:53 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2016-12-02 22:40:12 +0200
commite4a755ba92ed5fd7a1767492dce290b2dc9e3c59 (patch)
tree8444fb377fe4e039f95bdee032801cbf7b8d3684 /mesonbuild/modules/i18n.py
parent7afb4c655281d60ef64d0378ff126a08f12a14ce (diff)
downloadmeson-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.py12
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', []))