feat: merge_bricks_i18n.py 合并bricks翻译到全局i18n

This commit is contained in:
yumoqing 2026-07-13 18:20:18 +08:00
parent 15c8f3a4ef
commit 342608403c

View File

@ -0,0 +1,47 @@
#!/usr/bin/env python3
"""Merge bricks i18n entries into global Sage i18n.json.
Usage:
python3 merge_bricks_i18n.py /path/to/bricks/i18n /path/to/sage/wwwroot/i18n
Reads bricks/i18n/{lang}/i18n.json and merges new keys into
sage/wwwroot/i18n/{lang}/i18n.json for all languages.
"""
import json, sys, os
LANGUAGES = ['zh', 'en', 'jp', 'ko']
def merge(bricks_i18n_dir, sage_i18n_dir):
for lang in LANGUAGES:
brick_path = os.path.join(bricks_i18n_dir, lang, 'i18n.json')
sage_path = os.path.join(sage_i18n_dir, lang, 'i18n.json')
if not os.path.exists(brick_path):
print(f" skip {lang}: bricks i18n.json not found")
continue
with open(brick_path) as f:
brick_msgs = json.load(f)
with open(sage_path) as f:
sage_msgs = json.load(f)
added = 0
for k, v in brick_msgs.items():
if k not in sage_msgs:
sage_msgs[k] = v
added += 1
with open(sage_path, 'w') as f:
json.dump(sage_msgs, f, ensure_ascii=False, indent='\t')
print(f" {lang}: {len(sage_msgs)} entries (+{added} from bricks)")
if __name__ == '__main__':
if len(sys.argv) != 3:
print(__doc__)
sys.exit(1)
print(f"Merging {sys.argv[1]} -> {sys.argv[2]}")
merge(sys.argv[1], sys.argv[2])
print("Done")