diff options
Diffstat (limited to 'BuildTools/CheckTranslations.py')
-rwxr-xr-x | BuildTools/CheckTranslations.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/BuildTools/CheckTranslations.py b/BuildTools/CheckTranslations.py new file mode 100755 index 0000000..5796bac --- /dev/null +++ b/BuildTools/CheckTranslations.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +import os, sys, re, xml.dom.minidom + +def getText(nodelist): + text = "" + for node in nodelist: + if node.nodeType == node.TEXT_NODE: + text += node.data + return text + + +for filename in os.listdir("Swift/Translations") : + m = re.match("swift_(.*)\.ts", filename) + if m : + language = m.group(1) + f = open("Swift/Translations/" + filename, "r") + document = xml.dom.minidom.parse(f) + f.close() + + for message in document.getElementsByTagName("message") : + source = message.getElementsByTagName("source")[0] + sourceText = getText(source.childNodes) + sourcePlaceholders = set(re.findall("%\d+%?", sourceText)) + translation = message.getElementsByTagName("translation")[0] + translationText = getText(translation.childNodes) + translationPlaceholders = set(re.findall("%\d+%?", translationText)) + if translationPlaceholders != sourcePlaceholders : + print "[Error] " + filename + ": Placeholder mismatch in translation '" + sourceText + "'" |