Browse Source

Populate missing i18n keys in en.json, print unused i18n keys (#253)

* Adjust find_missing_i8n_strings.py logic
- Add missing keys in i18n/en.json
- Print unused i18n keys

* Couple of TODO items
pull/261/head
Cody Robertson 2 years ago
committed by GitHub
parent
commit
54491abe8e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 33
      find_missing_i18n_strings.py

33
find_missing_i18n_strings.py

@ -2,11 +2,18 @@ import re
import os
import json
en = json.load(open('i18n/en.json'))
# Open the json file and load its contents into a dictionary
with open('i18n/en.json', 'r') as f:
en = json.load(f)
# Create a copy of the en dictionary's keys and convert it to a set for better performance
unused_keys = set(en.keys())
error = False
dict = {}
missing_keys = {}
rootdir=('.')
rootdir = '.'
# TODO: Crawl only content/*
for folder, dirs, files in os.walk(rootdir):
for file in files:
if file.endswith('.html'):
@ -19,8 +26,24 @@ for folder, dirs, files in os.walk(rootdir):
if string not in en:
error = True
print(f'TRANSLATION ERROR: {string}')
dict[string] = string
missing_keys[string] = ''
en[string] = string # Add the missing key to the dictionary with an empty value
elif string in unused_keys:
unused_keys.remove(string)
# If there are missing keys, dump the updated dictionary back into the json file
if error:
print(json.dumps(dict, indent=3))
print(json.dumps(missing_keys, indent=3))
with open('i18n/en.json', 'w') as f:
json.dump(en, f, indent=3)
exit(1)
# If there are unused keys, print them
# TODO: Do something useful?
if unused_keys:
print("UNUSED KEYS:")
for key in unused_keys:
print(key)
else:
print("No unused keys found.")

Loading…
Cancel
Save