diff --git a/update-translations.py b/update-translations.py deleted file mode 100755 index b7158de8..00000000 --- a/update-translations.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python - -# Fetch the translations from http://crowdin.net/project/vanilla-music and save -# them to res/ in the current directory. Removes files that contain no -# translations and removes incomplete plurals (they cause crashes). -# -# This script does not force crowdin to rebuild the translation package. That -# should be done through the website before running this script. -# -# Requires python-lxml. - -try: - # python 3 - from urllib.request import urlopen -except ImportError: - # python 2 - from urllib2 import urlopen -from lxml import etree -from zipfile import ZipFile -import io -import os - -data = urlopen('http://crowdin.net/download/project/vanilla-music.zip') -ar = ZipFile(io.BytesIO(data.read())) -parser = etree.XMLParser(remove_blank_text=True) - -for name in ar.namelist(): - # ignore directories - if not name.endswith('translatable.xml'): - continue - - doc = etree.parse(ar.open(name), parser) - # remove plurals without "other" quantity (they cause crashes) - for e in doc.xpath("//plurals[not(item/@quantity='other')]"): - e.getparent().remove(e) - - # ignore languages with no translations - if len(doc.getroot()) == 0: - continue - - # make some translations more general - lang = name.split('/')[0] - if lang == 'es-ES': - lang = 'es' - # The Android convention seems to be to put pt-PT in values-pt-rPT and - # put pt-BR in values-pt. But since we have no pt-BR translation yet, - # I'm just putting pt-PT in values-pt for now. Hopefully this doesn't - # cause any issues. - elif lang == 'pt-PT': - lang = 'pt' - - # create dir if needed (assume res/ exists already) - path = 'res/values-' + lang - if not (os.path.isdir(path)): - os.mkdir(path) - - # save result - with io.open(path + "/translatable.xml", "w") as file: - file.write(etree.tostring(doc, encoding='unicode', pretty_print=True, doctype=''))