如何在VSCode中选中所有白色编码文本以提升网页翻译效率?
解决方案:批量翻译HTML页面文本(印地语)
一、VSCode正则+插件快速处理(适合轻度需求)
- 步骤1:批量提取可见文本
打开VSCode全局查找替换(Ctrl+Shift+F),启用正则模式,用以下正则匹配标签间的可见文本:
点击「查找全部」,所有匹配的文本会被选中,复制到新文件中。>\s*([^<>\s].*?)\s*< - 步骤2:批量翻译
安装VSCode插件Translate,选中所有复制的文本,右键选择「Translate Selection」,将目标语言设为印地语(Hindi),翻译完成后复制结果。 - 步骤3:批量替换
回到原查找替换界面,在「替换」框中使用>$1<的捕获组逻辑,按对应位置替换翻译后的文本(注意保持文本顺序一致,避免错位)。
二、Python脚本自动化(高效处理120页)
这是大数量文件的最优方案,全程自动化:
- 安装依赖
在终端执行:pip install beautifulsoup4 requests - 编写处理脚本
创建translate_html.py文件,内容如下:from bs4 import BeautifulSoup import requests import os import time def translate_text(text, target_lang="hi"): try: # 简单调用谷歌翻译接口,若有频率限制可添加延时 url = f"https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl={target_lang}&dt=t&q={text}" response = requests.get(url) result = response.json() return result[0][0][0] if result else text except Exception as e: print(f"翻译失败:{e}") return text def process_html_files(folder_path): for filename in os.listdir(folder_path): if filename.endswith(".html"): file_path = os.path.join(folder_path, filename) with open(file_path, "r", encoding="utf-8") as f: soup = BeautifulSoup(f.read(), "html.parser") # 排除script、style标签,只翻译可见文本节点 for element in soup.find_all(text=True): if element.parent.name not in ["script", "style"] and element.strip(): translated_text = translate_text(element.strip()) element.replace_with(translated_text) time.sleep(0.5) # 避免请求频率过高 # 保存翻译后的HTML with open(file_path, "w", encoding="utf-8") as f: f.write(str(soup)) print(f"已处理:{filename}") # 替换为你的HTTrack保存的网站文件夹路径 process_html_files("./your_httrack_output_folder") - 运行脚本
终端执行python translate_html.py,脚本会自动遍历所有HTML文件,翻译可见文本并保存。
三、注意事项
- 若翻译API触发频率限制,可延长脚本中的
time.sleep时长。 - 先拿1-2个文件测试,确保标签结构未被破坏。
- 若HTML文件编码非UTF-8,需调整脚本中的
encoding参数。
内容的提问来源于stack exchange,提问作者Hashibul Hussain
相关产品推荐
相关产品推荐

