2023-04-12 10:48:39 +08:00
|
|
|
import json
|
|
|
|
from collections import OrderedDict
|
|
|
|
|
|
|
|
# Define the standard file name
|
|
|
|
standard_file = "zh_CN.json"
|
|
|
|
|
|
|
|
# Define the list of supported languages
|
2023-04-15 21:45:01 +08:00
|
|
|
# zh_HK.json and zh_SG.json is not included in the list
|
|
|
|
# because they are symbolinks to zh_TW.json
|
2023-04-15 21:28:27 +08:00
|
|
|
languages = ["zh_TW.json", "ja_JP.json", "en_US.json"]
|
2023-04-12 10:48:39 +08:00
|
|
|
|
|
|
|
# Load the standard file
|
|
|
|
with open(standard_file, "r", encoding="utf-8") as f:
|
|
|
|
standard_data = json.load(f, object_pairs_hook=OrderedDict)
|
|
|
|
|
|
|
|
# Loop through each language file
|
|
|
|
for lang_file in languages:
|
|
|
|
# Load the language file
|
|
|
|
with open(lang_file, "r", encoding="utf-8") as f:
|
|
|
|
lang_data = json.load(f, object_pairs_hook=OrderedDict)
|
|
|
|
|
|
|
|
# Find the difference between the language file and the standard file
|
|
|
|
diff = set(standard_data.keys()) - set(lang_data.keys())
|
|
|
|
|
2023-04-12 16:53:50 +08:00
|
|
|
miss = set(lang_data.keys()) - set(standard_data.keys())
|
|
|
|
|
2023-04-12 10:48:39 +08:00
|
|
|
# Add any missing keys to the language file
|
|
|
|
for key in diff:
|
|
|
|
lang_data[key] = key
|
|
|
|
|
2023-04-12 16:53:50 +08:00
|
|
|
# Del any extra keys to the language file
|
|
|
|
for key in miss:
|
|
|
|
del lang_data[key]
|
|
|
|
|
2023-04-12 10:48:39 +08:00
|
|
|
# Sort the keys of the language file to match the order of the standard file
|
2023-04-15 19:44:24 +08:00
|
|
|
lang_data = OrderedDict(
|
|
|
|
sorted(lang_data.items(), key=lambda x: list(standard_data.keys()).index(x[0]))
|
|
|
|
)
|
2023-04-12 10:48:39 +08:00
|
|
|
|
|
|
|
# Save the updated language file
|
|
|
|
with open(lang_file, "w", encoding="utf-8") as f:
|
|
|
|
json.dump(lang_data, f, ensure_ascii=False, indent=4)
|