Skip to content

About

Nethack 5.0.0 汉化 (WIP)

Resources

Contributing

Stars

26 stars

Watchers

2 watching

Forks

Repository files navigation

Nethack-cn

Build Status Version Origin License

English README: README_en.md

快速开始

无需本地编译,可直接在本项目 Release 页面下载自动构建的汉化预览版

已知待解决的问题

见known_bugs.txt。

路线图

  • tty 界面 UTF-8 支持
  • curses 界面 UTF-8 支持
  • win32 界面 UTF-8 支持
  • 合并来自 SunnyYuer/NetHack-cn 的翻译
  • 使用 deepseek-v4-flash 完成初步 AI 翻译
  • 怪物翻译
  • 物品翻译
  • 跨平台前端:直接启动浏览器版 仓库:nethack-3d
  • 安卓版:点我下载apk 仓库:Anethack-cn
  • 中文输入
  • 许愿机制 (仍需测试)
  • 灭绝机制 (仍需测试)
  • 跨层传送机制 (仍需测试(都能按问号了还输中文干什么))

翻译标准化

物品译名标准(objects.h)

怪物译名标准(monsters.h)

通用翻译标准

当前译名标准仍需要更多玩家参与讨论和校对,欢迎在以下讨论中提出意见:

讨论物品简中译名

讨论怪物简中译名

讨论通用译名

代码规范

见coding_standards.txt。

技术细节

tty utf-8 支持

发现最后输出使用函数 putchar 逐个字符输出,而 putchar 支持宽字节。

于是调整输出逻辑:在当前指针指向的是 utf-8 内容时将整个字符串转为 wchar_t * 然后输出。

同时要调整 console.cursor 屏幕指针移动逻辑,当是宽字节时一次移动两个字符。

新增一种 cell 类型 wide_char_follower_cell, 用于标记宽字符的下一个cell为占用状态,使得清屏等操作能正确渲染。

curses utf-8 支持

编译 Nethack 时定义宏 CURSES_UNICODE, PDC_WIDE, PDC_FORCE_UTF8, PDC_RGB

对 pdcursesmod/pdcurses/refresh.c 进行了补丁,修复了一处 assert 引起的崩溃 bug。

win32 utf-8 支持

使用宏劫持 windows API 函数 drawTextA, drawText, ListView_InsertColumn, SetWindowText。将它们替换成自定义的支持 utf8 的版本。

英语语法函数

见grammatical_functions.md。

About

Nethack 5.0.0 汉化 (WIP)

Resources

Contributing

Stars

26 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages