1
0
Fork 0
mirror of https://github.com/Findus23/matomo_tests.git synced 2024-08-27 19:52:19 +02:00
matomo_tests/translation_placeholders.py
2019-08-10 15:54:51 +02:00

64 lines
1.9 KiB
Python

import json
import re
from config import matomo_path
lang_dirs = [matomo_path / "lang"]
pluginspath = matomo_path / "plugins"
regex = re.compile(r"%[sducoxXbgGeEfF]")
typo_regex = re.compile(r"%%[sducoxXbgGeEfF]")
fail = False
for plugindir in pluginspath.iterdir():
if not plugindir.is_dir():
continue
if "UptimeRobotMonitor" in str(plugindir):
continue
langdir = plugindir / "lang"
if langdir.exists():
lang_dirs.append(langdir)
for langdir in lang_dirs:
with open(langdir / "en.json") as f:
data = json.load(f)
placeholders = {}
master_translations = list(data.values())[0]
for key, translation in master_translations.items():
typos = typo_regex.findall(translation)
if typos:
print(typos)
num_placeholders = len(regex.findall(translation))
placeholders[key] = num_placeholders
for transfile in langdir.glob("*.json"):
if transfile == langdir / "en.json":
continue
lang = transfile.stem
with open(transfile) as f:
data = json.load(f)
translations = list(data.values())[0]
for key, translation in translations.items():
typos = typo_regex.findall(translation)
if typos:
print(transfile)
print(typos, translation)
print()
fail = True
num_placeholders = len(regex.findall(translation))
try:
if placeholders[key] != num_placeholders:
print(transfile)
print(placeholders[key], num_placeholders)
print(master_translations[key])
print(translations[key])
print()
fail = True
except KeyError:
print(transfile)
print(f"Key '{key}' is only in {lang}")
print()
fail = True
if fail:
exit(1)