#!/usr/bin/python3 # # WARNING! THIS DELETES TRANSLATIONS! # # The incomplete translations should be kept by rebasing the weblate # remote on top of this commit, once its complete. import csv import git import os import requests import sys projectbasedir = os.path.dirname(os.path.dirname(__file__)) print(projectbasedir) repo = git.Repo(projectbasedir) msg = 'removing all translations less than 70% complete\n\n' url = 'https://hosted.weblate.org/exports/stats/f-droid/f-droid/?format=csv' r = requests.get(url) stats = csv.reader(r.iter_lines(decode_unicode=True), delimiter=',') next(stats) # skip CSV header for row in stats: if len(row) > 4: if float(row[4]) > 70.0: continue locale = row[1] if '_' in locale: codes = locale.split('_') if codes[1] == 'Hans': codes[1] = 'CN' elif codes[1] == 'Hant': codes[1] = 'TW' locale = codes[0] + '-r' + codes[1] translation_file = 'app/src/main/res/values-' + locale + '/strings.xml' percent = str(int(float(row[4]))) + '%' print('Removing incomplete file: (' + percent + ')\t', translation_file) delfile = os.path.join(projectbasedir, translation_file) if os.path.exists(delfile): os.remove(delfile) repo.index.remove([translation_file, ]) if len(percent) == 2: msg += ' ' msg += percent + ' ' + row[1] + ' ' + row[0] + '\n' found = False for remote in repo.remotes: if remote.name == 'weblate': remote.fetch() found = True if not found: print('ERROR: there must be a weblate remote to preserve incomplete translations!') sys.exit(1) repo.index.commit(msg)