插件下载
SD webui中用于汉化的插件统一叫localization(本地化),使用时需要安装这两个插件,一个用于开启本地化支持,一个用于中文本地化。
插件安装完成后,进入\extensions\stable-diffusion-webui-localization-zh_CN\localizations
这个路径下,可以看到一个名为zh_CN.json
的文件,打开之后如下图所示,每一行的第一部分是英文原文,第二部分是要翻译成的中文,插件会自动完成替换
但是在实际的界面中,仍然有很多东西没有更新,原来这已经是几个月前的文件了,跟不上进度了
文件合并
于是我又搜了搜其他的本地化插件,发现还有其他的简体字插件zh-Hans(Stable).json和繁体字插件zh_Hans.json可用,并且日期比较新。
所以现在目录下就有一下三个JSON文件,且从质量上来说,zh_CN.json
>zh-Hans(Stable)
>zh_Hans.json
。
因此,按照优先级zh_CN.json
>zh-Hans(Stable)
>zh_Hans.json
的顺序,完成JSON文件的合并,代码如下所示。注意要完成繁体到简体的转换。
这是我给ChatGPT的问题:
我有zh_CN.json、zh-Hans(Stable)、zh_Hans.json这三个用来翻译英文到中文的文件,它们包含的内容(英文原文:中文翻译)是部分重叠的,并且翻译质量逐个递减。现在我要你写一段python代码,将这三个文件按顺序两两合并成一个文件,保存为merge.json。注意zh_Hans.json中翻译的结果是繁体中文,你需要转换成简体字。
下面是回答的代码
# pip install opencc-python-reimplemented
import json
from opencc import OpenCC
# 初始化繁体转简体的转换器
cc = OpenCC('t2s')
# 读取 JSON 文件内容
def read_json(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
return json.load(file)
# 合并两个字典,第二个字典的内容会覆盖第一个字典的内容
def merge_dicts(dict1, dict2):
merged = dict1.copy()
merged.update(dict2)
return merged
# 读取三个 JSON 文件
zh_CN = read_json('zh_CN.json')
zh_Hans_Stable = read_json('zh-Hans (Stable).json')
zh_Hans = read_json('zh_Hans.json')
# 将繁体中文转换为简体中文
zh_Hans_simplified = {key: cc.convert(value) for key, value in zh_Hans.items()}
# 按顺序合并字典
merged = merge_dicts(zh_Hans_Stable, zh_Hans_simplified)
merged = merge_dicts(merged, zh_CN)
# 保存合并后的结果到 merge.json
with open('merge.json', 'w', encoding='utf-8') as file:
json.dump(merged, file, ensure_ascii=False, indent=4)
print('Merge completed and saved to merge.json')
插件启用
进入设置里的用户界面
重启之后