#!/usr/bin/env python3 import json import os import requests from common.basedir import BASEDIR from selfdrive.ui.update_translations import LANGUAGES_FILE, TRANSLATIONS_DIR TRANSLATION_TAG = "'] for idx, (name, file) in enumerate(translation_files.items()): with open(os.path.join(TRANSLATIONS_DIR, f"{file}.ts"), "r") as tr_f: tr_file = tr_f.read() total_translations = 0 unfinished_translations = 0 for line in tr_file.splitlines(): if TRANSLATION_TAG in line: total_translations += 1 if UNFINISHED_TRANSLATION_TAG in line: unfinished_translations += 1 percent_finished = int(100 - (unfinished_translations / total_translations * 100.)) color = "green" if percent_finished == 100 else "orange" if percent_finished >= 70 else "red" r = requests.get(f"https://img.shields.io/badge/LANGUAGE {name}-{percent_finished}%25 complete-{color}") assert r.status_code == 200, "Error downloading badge" content_svg = r.content.decode("utf-8") # make tag ids in each badge unique for tag in ("r", "s"): content_svg = content_svg.replace(f'id="{tag}"', f'id="{tag}{idx}"') content_svg = content_svg.replace(f'"url(#{tag})"', f'"url(#{tag}{idx})"') badge_svg.extend([f'', content_svg, ""]) badge_svg.append("") with open(os.path.join(BASEDIR, "translation_badge.svg"), "w") as badge_f: badge_f.write("\n".join(badge_svg))