纪元1800布局设计软件AnnoDesigner汉化方法
最近沉迷玩纪元1800,当总督各种规划城市,用到一个布局设计软件AnnoDesigner,可惜没有汉化看起来比较难受,所以尝试汉化翻译一下。汉化文件在文末,懒得看我啰嗦的直接跳文末下载替换就行。
找到语言相关配置文件
这个软件一开始只有这几个语言选项,没有中文

从release下载的文件夹中发现json文件,疑似是语言的配置文件。


提取并翻译
用AI写了个脚本
import json
import pandas as pd
# 读取JSON文件
with open('presets.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 准备存储提取的数据
extracted_data = []
# 遍历所有建筑
for building in data['Buildings']:
if 'Localization' in building and building['Localization'].get('eng'):
item = {
'Header': building.get('Header', ''),
'Faction': building.get('Faction', ''),
'Group': building.get('Group', ''),
'Identifier': building.get('Identifier', ''),
'IconFileName': building.get('IconFileName', ''),
'English_Name': building['Localization'].get('eng', '')
}
extracted_data.append(item)
# 创建DataFrame并保存为CSV
df = pd.DataFrame(extracted_data)
df.to_csv('building_icons.csv', index=False, encoding='utf-8-sig')
# 打印预览
print("已提取数据并保存到 building_icons.csv")
print("\n数据预览:")
print(df.head())这是提取另一个文件的
import json
import csv
def extract_english_translations():
# 读取翻译文件
with open('treeLocalization.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 查找英文语言部分
translations = []
for lang in data['languages']:
if lang['languageCode'] == 'eng':
translations = lang['translations']
break
# 保存为CSV格式
with open('english_translations.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
# 写入表头
writer.writerow(['Key', 'English'])
# 写入翻译数据
for item in translations:
writer.writerow([item['key'], item['value']])
print(f'提取了 {len(translations)} 个英文翻译到 english_translations.csv')
return translations
if __name__ == '__main__':
extract_english_translations()
尝试替换
一开始还尝试用AI翻译,后来实在是太多了,AI老是思考耽误时间,最后还是充了个有道会员翻译了一下,非常快速。

用WPS表格打开csv文件比较好直接粘贴,粘贴后检查表格翻译是否对应,因为我只玩了1800,但是这个软件还包括其他的几个系列,所以我也不确定翻译是否正确,总之先用着机翻的吧。WPS保存后记得用VScode打开,重新用编码GB2312打开,再改为用UTF-8保存。

然后又用AI写两个脚本,把汉化的内容模仿原来的json文件的形式补充回去。
import json
import pandas as pd
def update_presets():
# 读取建筑翻译映射
df = pd.read_csv('building_icons.csv')
translations = dict(zip(df['English_Name'], df['Chinese_Name']))
# 读取 presets.json
with open('presets.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 遍历并更新每个建筑的本地化
updated = 0
for building in data['Buildings']:
if 'Localization' in building:
# 根据英文名查找中文翻译
eng_name = building['Localization'].get('eng')
if eng_name and eng_name in translations:
# 添加中文翻译
building['Localization']['zh'] = translations[eng_name]
updated += 1
# 保存更新后的文件
with open('presets.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print(f"Successfully updated {updated} Chinese names in presets.json")
if __name__ == "__main__":
try:
update_presets()
except Exception as e:
print(f"Error saving file: {str(e)}")import json
import pandas as pd
def create_chinese_translations():
# 读取CSV文件
df = pd.read_csv('english_translations.csv')
# 创建中文翻译数据结构
chinese_lang = {
"languageCode": "zh",
"language": "简体中文",
"translations": []
}
# 遍历CSV中的每一行,生成翻译条目
for _, row in df.iterrows():
if pd.notna(row['Chinese']): # 只添加有中文翻译的条目
translation = {
"key": row['Key'],
"value": row['Chinese']
}
chinese_lang['translations'].append(translation)
# 读取原始treeLocalization.json
with open('treeLocalization.json', 'r', encoding='utf-8') as f:
tree_data = json.load(f)
# 添加中文语言到languages列表
tree_data['languages'].append(chinese_lang)
# 保存更新后的文件
with open('treeLocalization.json', 'w', encoding='utf-8') as f:
json.dump(tree_data, f, ensure_ascii=False, indent=4)
print(f'已添加 {len(chinese_lang["translations"])} 条中文翻译')
if __name__ == '__main__':
create_chinese_translations()
发现语言选项已经编译到exe中
翻译好后打开发现还是没有中文选项,找了一下软件配置文件,似乎语言选择的键值没有写再配置文件中,那应该就是直接编码在exe中了。

用IDA打开查了一下确实。

翻了一下作者的源码,发现git仓库是有sln文件的,顺利的话clone下来,补充中文的语言选择选项,重新编译一下就行。

安装一下编译必要的组件

找到语言选项

添加中文选项

把中文的code改统一,按照作者这个语言文件风格的code方式应该是chs。


翻到了界面语言的翻译选项,顺手翻译一下


但是重新编译发现失败了

在代码里看到作者给的一个连接

好像已经有人贡献过中文翻译了,但是为什么不合并呢,怎么不发布中文版呢?

最后看到一段生成语言code的代码,但是我在源码里面没找到再哪里改,这也许是失败的原因。

英文变eeng,中文变英文
编译失败没事,还有一招头天换日。


最后分享一下我机翻的语言替换文件,下载好后直接丢文件夹下替换就行。只简单校对了一下机翻的内容,保证Anno1800的翻译基本能看,如果有错误的自行用记事本之类的软件打开json文件搜索修改就可。其他几个纪元的系列还没玩过,不知道机翻的含义对不对,如果不对就自己改一下吧,也欢迎在评论区分享你的汉化文件。

我用夸克网盘给你分享了「AnnoDesigner汉化」,点击链接或复制整段内容,打开「夸克APP」即可获取。
筷莱旻潆鱪麯麺夺郝
/~e25c38IeIg~:/
链接:https://pan.quark.cn/s/e8385005d590这是我用软件画的住宅布局,我觉得用起来还不错
