4e6774befb
The pull request should be blocked on basic typos breaking the SMC file.
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
#!/usr/bin/python3
|
|
# Copyright (c) 2023 Peace-Maker
|
|
import pathlib
|
|
from smc_parser import smc_string_to_dict
|
|
|
|
# Parse the languages.cfg file to know which languages could be available
|
|
had_problem = False
|
|
file_count = 0
|
|
languages_cfg = smc_string_to_dict(
|
|
pathlib.Path('../../configs/languages.cfg').read_text('utf-8'))
|
|
print(f'Checking {len(languages_cfg["Languages"][0])} languages...')
|
|
|
|
# Try to parse all the files as a simple smoke test for syntax errors
|
|
for langid, lang in languages_cfg['Languages'][0].items():
|
|
if langid == 'en':
|
|
path = '../../translations'
|
|
else:
|
|
path = f'../../translations/{langid}'
|
|
|
|
for file in pathlib.Path(path).glob('*.txt'):
|
|
if not file.is_file():
|
|
continue
|
|
|
|
file_count += 1
|
|
try:
|
|
phrases = smc_string_to_dict(file.read_text('utf-8'))
|
|
if 'Phrases' not in phrases:
|
|
print(
|
|
f'Error in {langid}/{file.name}: File does not start with a "Phrases" section'
|
|
)
|
|
had_problem = True
|
|
continue
|
|
except Exception as ex:
|
|
print(f'Error in {langid}/{file.name}: Error parsing: {ex}')
|
|
had_problem = True
|
|
continue
|
|
|
|
print(f'Checked {file_count} files.')
|
|
|
|
if had_problem:
|
|
print('Sanity check failed!')
|
|
exit(1)
|