64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
from typing import List
|
|
import sys
|
|
import os
|
|
sys.path.append(os.path.abspath('.'))
|
|
|
|
from script.util import read_json, write_json
|
|
|
|
PACKAGE_FILE = './package.json'
|
|
|
|
LANG_PACKGE_FILES = {
|
|
'en': './package.nls.json',
|
|
'zh-cn': './package.nls.zh-cn.json',
|
|
'zh-tw': './package.nls.zh-tw.json',
|
|
'de': './package.nls.de.json',
|
|
'ja': './package.nls.ja.json'
|
|
}
|
|
|
|
def generate_title_token(command_name: str) -> str:
|
|
names = command_name.split('.')
|
|
prj_name = names[0]
|
|
main_names = names[1:]
|
|
title_token_name = [prj_name] + main_names + ['title']
|
|
return '.'.join(title_token_name)
|
|
|
|
def merge_tokens(lang_package_path: str, tokens: List[str], token_values: List[str]):
|
|
config = read_json(lang_package_path)
|
|
for token, value in zip(tokens, token_values):
|
|
if token not in config:
|
|
config[token] = value
|
|
|
|
write_json(lang_package_path, config)
|
|
|
|
if __name__ == '__main__':
|
|
# adjust main package
|
|
config = read_json(PACKAGE_FILE)
|
|
token_names = []
|
|
token_values = []
|
|
|
|
# 获取 properties 中的 title
|
|
for property_name in config['contributes']['configuration']['properties']:
|
|
# property_name: digital-ide.welcome.show
|
|
property_body = config['contributes']['configuration']['properties'][property_name]
|
|
print(property_body)
|
|
token_name = generate_title_token(property_name)
|
|
token_names.append(token_name)
|
|
if 'description' in property_body and not property_body['description'].startswith('%'):
|
|
token_values.append(property_body['description'])
|
|
else:
|
|
token_values.append("")
|
|
property_body['description'] = '%' + token_name + '%'
|
|
|
|
# 获取 command 中的 title
|
|
for item in config['contributes']['commands']:
|
|
if 'command' in item:
|
|
token_name = generate_title_token(item['command'])
|
|
token_names.append(token_name)
|
|
token_values.append("")
|
|
item['title'] = '%' + token_name + '%'
|
|
|
|
write_json(PACKAGE_FILE, config)
|
|
|
|
# cover in lang package
|
|
for name, lang_path in LANG_PACKGE_FILES.items():
|
|
merge_tokens(lang_path, token_names, token_values) |