Initial commit
diff --git a/cm_sync.py b/cm_sync.py
new file mode 100755
index 0000000..b81534d
--- /dev/null
+++ b/cm_sync.py
@@ -0,0 +1,116 @@
+#!/usr/bin/python2
+
+from xml.dom import minidom
+from subprocess import check_output
+
+#print('Welcome to the CyanogenMod Crowdin synchronization script')
+#print('---------------------------------------------------------\n')
+
+# Execute normal Crowdin sync
+#print('---------------------------------------------------------')
+#print('Executing normal Crowdin synchronization.................')
+#print(check_output(["java", "-jar", "crowdin-cli.jar", "upload", "sources"]))
+#print('Normal Crowdin synchronization complete..................')
+#print('---------------------------------------------------------\n')
+
+# Execute CAF search
+#print('---------------------------------------------------------')
+#print('Executing CAF search.....................................')
+
+def create_cm_caf_xml(strings_base, strings_cm, path):
+    # Load AOSP file and resources
+    xml_base = minidom.parse(strings_base)
+    list_base_string = xml_base.getElementsByTagName('string')
+    list_base_string_array = xml_base.getElementsByTagName('string-array')
+    list_base_plurals = xml_base.getElementsByTagName('plurals')
+
+    # Load CM file and resources
+    xml_cm = minidom.parse(strings_cm)
+    list_cm_string = xml_cm.getElementsByTagName('string')
+    list_cm_string_array = xml_cm.getElementsByTagName('string-array')
+    list_cm_plurals = xml_cm.getElementsByTagName('plurals')
+
+    # All names from CM
+    names_cm_string = []
+    names_cm_string_array = []
+    names_cm_plurals = []
+    # All names from AOSP
+    names_base_string = []
+    names_base_string_array = []
+    names_base_plurals = []
+
+    # Get all names from CM
+    for s in list_cm_string :
+        if not s.hasAttribute('translatable') and not s.hasAttribute('translate'):
+            names_cm_string.append(s.attributes['name'].value)
+    for s in list_cm_string_array :
+        if not s.hasAttribute('translatable') and not s.hasAttribute('translate'):
+            names_cm_string-array.append(s.attributes['name'].value)
+    for s in list_cm_plurals :
+        if not s.hasAttribute('translatable') and not s.hasAttribute('translate'):
+            names_cm_plurals.append(s.attributes['name'].value)
+
+    # Get all names from AOSP
+    for s in list_base_string :
+        if not s.hasAttribute('translatable') and not s.hasAttribute('translate'):
+            names_base_string.append(s.attributes['name'].value)
+    for s in list_base_string_array :
+        if not s.hasAttribute('translatable') and not s.hasAttribute('translate'):
+            names_base_string_array.append(s.attributes['name'].value)
+    for s in list_base_plurals :
+        if not s.hasAttribute('translatable') and not s.hasAttribute('translate'):
+            names_base_plurals.append(s.attributes['name'].value)
+
+    # Search for different names. If so, output the full line
+    t = 5
+
+    for z in names_cm_string:
+        if not z in names_base_string:
+            if t == 5:
+                f = open(path + '/cm_caf.xml','w')
+                f.write('<?xml version="1.0" encoding="utf-8"?>\n')
+                f.write('<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">\n')
+                t = 4
+            print('found string: ' + z)
+            f.write(list_cm_string[names_cm_string.index(z)].toxml() + '\n')
+    for z in names_cm_string_array:
+        if not z in names_base_string_array:
+            if t == 5:
+                f = open(path + '/cm_caf.xml','w')
+                f.write('<?xml version="1.0" encoding="utf-8"?>\n')
+                f.write('<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">\n')
+                t = 4
+            print('found string array: ' + z)
+            f.write(list_cm_string_array[names_cm_string_array.index(z)].toxml() + '\n')
+    for z in names_cm_plurals:
+        if not z in names_base_plurals:
+            if t == 5:
+                f = open(path + '/cm_caf.xml','w')
+                f.write('<?xml version="1.0" encoding="utf-8"?>\n')
+                f.write('<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">\n')
+                t = 4
+            print('found plurals: ' + z)
+            f.write(list_cm_plurals[names_cm_plurals.index(z)].toxml() + '\n')
+
+    if t == 4:
+        f.write('</resources>')
+        f.close()
+
+#print('Executing CAF search.....................................')
+#print('CAF search complete......................................')
+#print('---------------------------------------------------------\n')
+
+# Cleanup
+#print('---------------------------------------------------------')
+#print('Executing cleanup........................................')
+#print('Cleanup complete.........................................')
+#print('---------------------------------------------------------\n')
+
+# Committing
+#print('---------------------------------------------------------')
+#print('Executing commit.........................................')
+#print('Commit complete..........................................')
+#print('---------------------------------------------------------\n')
+
+# Done
+#print('Script is done. Goodbye!')