用python写一个机翻stable-diffusion-webui本地化文件(localizations.json)的小脚本
import requests
import json
import chardet
# 检测文件编码
def detect_encoding(file_path):
with open(file_path, 'rb') as f:
result = chardet.detect(f.read())
return result['encoding']
# 翻译函数
def translate(text, from_lang, to_lang):
params = {
'q': text,
'langpair': from_lang + '|' + to_lang
}
response = requests.get('https://api.mymemory.translated.net/get', params=params)
result = json.loads(response.text)
return result['responseData']['translatedText']
# 读取文件
file_path = 'lo.json'
encoding = detect_encoding(file_path)
with open(file_path, 'r', encoding=encoding) as f:
data = json.load(f)
# 遍历翻译
translated_data = {}
count = 0
for key, value in data.items():
count += 1
print(f'正在翻译第{count}条:{value}')
translated_data[key] = translate(value, 'en', 'zh-CN')
# 保存翻译结果
with open('translated_data.json', 'w', encoding='utf-8') as f:
json.dump(translated_data, f, ensure_ascii=False)
临时翻译凑合用用,此脚本可以改进的地方有很多
- 可以使用其他翻译能力强大的api,比如百度腾讯阿里谷歌,甚至可以用CHATGPT
- 可以跳过符号的翻译
- 可以多线程来加速翻译
- 之后保存的translated_data.json需要格式化一下代码才看着才舒服,可以修改为每行一条内容。
等有时间再弄吧。