赞
踩
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')
进入设置里的用户界面
重启之后
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。