summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'BuildTools/CheckTranslations.py')
-rwxr-xr-xBuildTools/CheckTranslations.py29
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 + "'"