From 5cd70622aaabc0419cc0b547808f09221530f0fc Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Tue, 3 Apr 2018 16:08:27 -0400 Subject: Validate all translations contain valid text events --- po/validate-textevent-translations | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 po/validate-textevent-translations (limited to 'po/validate-textevent-translations') diff --git a/po/validate-textevent-translations b/po/validate-textevent-translations new file mode 100755 index 00000000..c9c6e6a3 --- /dev/null +++ b/po/validate-textevent-translations @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 + +import os +import re +import sys + +ret = 0 + + +def validate_translation(input, translation): + if not translation: + return True + + if re.findall(r'(?:(? 256 for i in in_ascii): + print('Translation contains invalid ascii value:') + return False + + # We could try to validate colors but that is pretty flexible + return True + + +def validate_language(path): + global ret + + print('Validating', path) + + with open(path, 'r') as f: + in_event = False + event_input = '' + + for line in f: + if 'textevents.h' in line: + in_event = True + elif in_event is False: + continue + elif line.startswith('msgid'): + event_input = line[7:-2] + elif line.startswith('msgstr'): + if not validate_translation(event_input, line[8:-2]): + ret = 1 + in_event = False + elif line == '\n': + print('Failed to find translation for', event_input) + in_event = False + + +with open(sys.argv[1], 'r') as linguas: + for lang in linguas: + path = os.path.join(sys.argv[2], lang.strip() + '.po') + validate_language(path) + +sys.exit(ret) -- cgit 1.4.1