English README: README_en.md
无需本地编译,可直接在本项目 Release 页面下载自动构建的汉化预览版
- tty 界面 UTF-8 支持
- curses 界面 UTF-8 支持
- win32 界面 UTF-8 支持
- 合并来自 SunnyYuer/NetHack-cn 的翻译
- 使用 deepseek-v4-flash 完成初步 AI 翻译
- 怪物翻译
- 物品翻译
- 跨平台前端:直接启动浏览器版 仓库:nethack-3d
- 安卓版:点我下载apk 仓库:Anethack-cn
- 中文输入
- 许愿机制 (仍需测试)
- 灭绝机制 (仍需测试)
- 跨层传送机制 (仍需测试(都能按问号了还输中文干什么))
当前译名标准仍需要更多玩家参与讨论和校对,欢迎在以下讨论中提出意见:
发现最后输出使用函数 putchar 逐个字符输出,而 putchar 支持宽字节。
于是调整输出逻辑:在当前指针指向的是 utf-8 内容时将整个字符串转为 wchar_t * 然后输出。
同时要调整 console.cursor 屏幕指针移动逻辑,当是宽字节时一次移动两个字符。
新增一种 cell 类型 wide_char_follower_cell, 用于标记宽字符的下一个cell为占用状态,使得清屏等操作能正确渲染。
编译 Nethack 时定义宏 CURSES_UNICODE, PDC_WIDE, PDC_FORCE_UTF8, PDC_RGB
对 pdcursesmod/pdcurses/refresh.c 进行了补丁,修复了一处 assert 引起的崩溃 bug。
使用宏劫持 windows API 函数 drawTextA, drawText, ListView_InsertColumn, SetWindowText。将它们替换成自定义的支持 utf8 的版本。