()
| 106 | |
| 107 | |
| 108 | def main(): |
| 109 | lang_map = read_json('utils/docs/lang_map.json') |
| 110 | lang_codes = [] |
| 111 | for lang_dict in lang_map["langs"]: |
| 112 | lang_codes.extend(lang_dict.keys()) |
| 113 | parser = argparse.ArgumentParser(description="UserScript 多语言自动化翻译与优化工具") |
| 114 | parser.add_argument("file_path", type=str, help="需要处理的 UserScript 文件路径") |
| 115 | parser.add_argument("-l", "--langs", nargs="+", default=lang_codes, |
| 116 | help="目标翻译语言列表,默认包含 所有语言") |
| 117 | parser.add_argument("-f", "--filter", action="store_true", |
| 118 | help="是否过滤掉文件中已存在的语言") |
| 119 | args = parser.parse_args() |
| 120 | file_path = args.file_path |
| 121 | target_langs = args.langs |
| 122 | |
| 123 | if args.filter: |
| 124 | with open(file_path, "r", encoding="utf-8") as f: |
| 125 | content = f.read() |
| 126 | filtered_langs = [] |
| 127 | for lang in target_langs: |
| 128 | if f"// @name:{lang}" not in content: |
| 129 | filtered_langs.append(lang) |
| 130 | target_langs = filtered_langs |
| 131 | |
| 132 | translate_localized(file_path, target_langs) |
| 133 | sort_userscript_section(file_path) |
| 134 | # subprocess.run(['node', 'utils/single-format-monkey-meta.js', file_path], check=True) |
| 135 | os.system("npm run lint:fix") |
| 136 | print("翻译和排序完成!") |
| 137 | |
| 138 | |
| 139 | if __name__ == "__main__": |
no test coverage detected