mirror of
https://github.com/Findus23/matomo_tests.git
synced 2024-08-27 19:52:19 +02:00
65 lines
1.9 KiB
Python
65 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)
|