Multilang: test for vanished translations (#25342)

* Test for vanished translations

* this isn't needed anymore

* comment

* remove more unnecessary code since the great pluralization
pull/25356/head
Shane Smiskol 3 years ago committed by GitHub
parent 88e034a2a3
commit eaf21e53e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      selfdrive/ui/tests/test_translations.py
  2. 3
      selfdrive/ui/translations/create_badges.py
  3. 4
      selfdrive/ui/update_translations.py

@ -32,9 +32,6 @@ class TestTranslations(unittest.TestCase):
def test_missing_translation_files(self): def test_missing_translation_files(self):
for name, file in self.translation_files.items(): for name, file in self.translation_files.items():
with self.subTest(name=name, file=file): with self.subTest(name=name, file=file):
if not len(file):
self.skipTest(f"{name} translation has no defined file")
self.assertTrue(os.path.exists(os.path.join(TRANSLATIONS_DIR, f"{file}.ts")), self.assertTrue(os.path.exists(os.path.join(TRANSLATIONS_DIR, f"{file}.ts")),
f"{name} has no XML translation file, run selfdrive/ui/update_translations.py") f"{name} has no XML translation file, run selfdrive/ui/update_translations.py")
@ -43,9 +40,6 @@ class TestTranslations(unittest.TestCase):
for name, file in self.translation_files.items(): for name, file in self.translation_files.items():
with self.subTest(name=name, file=file): with self.subTest(name=name, file=file):
if not len(file):
self.skipTest(f"{name} translation has no defined file")
# caught by test_missing_translation_files # caught by test_missing_translation_files
if not os.path.exists(os.path.join(TRANSLATIONS_DIR, f"{file}.ts")): if not os.path.exists(os.path.join(TRANSLATIONS_DIR, f"{file}.ts")):
self.skipTest(f"{name} missing translation file") self.skipTest(f"{name} missing translation file")
@ -59,13 +53,17 @@ class TestTranslations(unittest.TestCase):
def test_unfinished_translations(self): def test_unfinished_translations(self):
for name, file in self.translation_files.items(): for name, file in self.translation_files.items():
with self.subTest(name=name, file=file): with self.subTest(name=name, file=file):
if not len(file):
raise self.skipTest(f"{name} translation has no defined file")
cur_translations = self._read_translation_file(TRANSLATIONS_DIR, file) cur_translations = self._read_translation_file(TRANSLATIONS_DIR, file)
self.assertTrue(b"<translation type=\"unfinished\">" not in cur_translations, self.assertTrue(b"<translation type=\"unfinished\">" not in cur_translations,
f"{file} ({name}) translation file has unfinished translations. Finish translations or mark them as completed in Qt Linguist") f"{file} ({name}) translation file has unfinished translations. Finish translations or mark them as completed in Qt Linguist")
def test_vanished_translations(self):
for name, file in self.translation_files.items():
with self.subTest(name=name, file=file):
cur_translations = self._read_translation_file(TRANSLATIONS_DIR, file)
self.assertTrue(b"<translation type=\"vanished\">" not in cur_translations,
f"{file} ({name}) translation file has obsolete translations. Run selfdrive/ui/update_translations.py --vanish to remove them")
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()

@ -17,9 +17,6 @@ if __name__ == "__main__":
print("Copy into selfdrive/ui/translations/README.md:\n") print("Copy into selfdrive/ui/translations/README.md:\n")
for name, file in translation_files.items(): for name, file in translation_files.items():
if not len(file):
continue
with open(os.path.join(TRANSLATIONS_DIR, f"{file}.ts"), "r") as tr_f: with open(os.path.join(TRANSLATIONS_DIR, f"{file}.ts"), "r") as tr_f:
tr_file = tr_f.read() tr_file = tr_f.read()

@ -18,10 +18,6 @@ def update_translations(vanish=False, plural_only=None, translations_dir=TRANSLA
translation_files = json.load(f) translation_files = json.load(f)
for name, file in translation_files.items(): for name, file in translation_files.items():
if not len(file):
print(f"{name} has no translation file, skipping...")
continue
tr_file = os.path.join(translations_dir, f"{file}.ts") tr_file = os.path.join(translations_dir, f"{file}.ts")
args = f"lupdate -recursive {UI_DIR} -ts {tr_file}" args = f"lupdate -recursive {UI_DIR} -ts {tr_file}"
if vanish: if vanish:

Loading…
Cancel
Save