HanNetHack은 NetHack을 바탕으로 한 비공식 한국어 로컬라이즈 포크입니다. NetHack DevTeam 공식 배포물이 아닙니다.
2026년 1월, 업스트림 NetHack이 5.0.0(NetHack-5.0.0_Released)을 출시했고, 현재 NetHack-5.0 브랜치는 5.0.1 WIP(PATCHLEVEL 1)입니다. HanNetHack은 이를 따라 **HanNetHack-5.0**에서 빌드·번역·개발을 이어갑니다. 기본 브랜치와 일상적인 기여·번역 작업의 기준은 5.0입니다. (과거 3.7 기반 작업은 HanNetHack-3.7 브랜치에 보존됩니다.)
업스트림 변경은 NetHack/NetHack의 NetHack-5.0 브랜치를 가능할 때마다 병합합니다 (최근: 2026-10-17, 변이체 레벨업 HP·탐침 알·Ludios 스폰·#wizlevelteleport 등). 유지보수자용 병합 절차는 doc/i18n-upstream-merge.md를 참고하세요.
- 버그·오역·문구 개선 제안: GitHub Issues에 올려 주세요. (영문·한국어 모두 가능합니다.)
- 원본 게임: 상위 프로젝트는 NetHack on GitHub입니다.
- Releases에서 Windows용 포터블 ZIP을 받습니다. (GitHub Actions가 빌드한 패키지와 동일한 형식입니다.)
- 원하는 폴더에 압축을 풉니다.
NetHackW.exe를 실행하면 타일 GUI,NetHack.exe는 콘솔(터미널) 버전입니다. 데이터와 번역은 ZIP 안에 포함되어 있습니다.- 설정은 사용자별
NetHack\.nethackrc(또는 배포 문서에 안내된 경로)에서 할 수 있습니다. 기본 언어는 한국어입니다. 영어로 바꾸려면OPTIONS=language:en등을 사용합니다.
빌드·번역·개발 정보는 아래 Overview와 Korean translation system (brief) 등을 참고하세요. (번역 파이프라인 요약은 영어로 적어 두었습니다.)
HanNetHack is an unofficial, community-maintained Korean localization of NetHack 5.0 for Linux and Windows. It is not affiliated with the NetHack DevTeam.
Upstream NetHack 5.0.0 shipped in January 2026 (release tag); the live NetHack-5.0 branch is 5.0.1 WIP. This fork tracks that branch on NetHack/NetHack. Use branch HanNetHack-5.0 for ongoing development and translation (repository default branch). Older 3.7-era history remains on HanNetHack-3.7. Maintainer-oriented merge workflow: doc/i18n-upstream-merge.md.
- Bugs, translation mistakes, or wording feedback: please file GitHub Issues.
- Upstream source: NetHack/NetHack.
Source code uses GNU gettext-style macros (_(), N_(), pgettext, …). Translations are compiled to a standard .mo message catalog that is bundled inside nhdat at build time (not loaded from a separate locale directory next to the binary).
At runtime, strings are resolved through the in-tree reader src/mo_reader.c. The game does not link against GNU libintl.
- Sole canonical translation source in git:
po/ko_manual.po(edit and commit only this). A localpo/ko.pofrommake update-po/safe-updateis an optional new-msgid cache and is not committed;make compileworks without it. - Korean help, rumors, encyclopedia (
data.base→ compiledlocale/ko/data), Lua, and other locale assets live underdat/locale/ko/;dlb_fopen()prefers language-specific paths when present. Build compiled locale tables withsh scripts/build-locale-rnddata.sh. - Korean grammar markers in strings (topic/object particles, etc.) are interpreted by
ko_postpos.c. Rules and tone guidelines:po/TRANSLATION_GUIDE_KO.md; APIs and pipeline:po/I18N_SYSTEM.md.
The easiest way to try the game is a release build from the Releases page (Windows portable ZIPs are built by CI).
- Large-scale Korean UI and message translation (ongoing;
cd po && make stats) - Runtime Korean grammar (topic/subject/object markers, etc.) via a small postposition engine
- Speech-style-aware wording where the speaker warrants it
- UTF-8 display width handling on TTY and the Windows GUI
- Localized text in the Windows GUI character picker
git clone https://github.com/timfr09/HanNetHack.git
cd HanNetHack
# One-shot Unix build (recommended): cleans stray Win32 GNUmakefile, then hints/linux.501 + make all
# sh scripts/build-linux-unix.sh
cd sys/unix && sh setup.sh hints/linux.501 && cd ../..
make all # Lua is vendored under nhlua/; do NOT use -j
make install # installs to ~/nh/install/
HACKDIR=~/nh/install/games/lib/nethackdir TERM=xterm-256color ./src/nethackThe Windows GUI build (NetHackW.exe) and console build (NetHack.exe) are supported.
Build matrix (Unix / MinGW / MSVC) and GNUmakefile gotchas: doc/build-environments.md
Prerequisite fetch steps (PDCursesMod, gettext tools, etc.) are documented in sys/windows/build-hannethack.txt. Lua is vendored under nhlua/ (no separate Lua fetch).
Makefiles: sys\windows\nhsetup.bat installs Windows nmake rules into src\ without overwriting an existing Unix-generated src\Makefile. It writes src\Makefile.win (and matching GNUmakefile.win). From src\, run:
nmake /f Makefile.win packageTo use the traditional NetHack layout (nmake with default Makefile), run:
sys\windows\nhsetup.bat /install-makefile
cd src
nmake package(nhsetup.bat /im is the short form. Legacy: /overwrite, /o.) Continuous integration uses /install-makefile so plain nmake package matches upstream expectations.
You can also open sys\windows\vs\NetHack.sln in Visual Studio. Optional gettext tools under lib\gettext\bin are only needed if you edit po/*.po or rebuild the .mo bundled into nhdat (sys\windows\setup-gettext.cmd).
After building, sys\windows\install.cmd stages a playable tree under install\HanNetHack\.
The game defaults to Korean. To switch language, edit ~/.nethackrc or %USERPROFILE%\NetHack\.nethackrc:
OPTIONS=language:ko
OPTIONS=language:en
Work from the HanNetHack-5.0 branch (same tree as upstream 5.0 plus Korean patches).
- Edit
po/ko_manual.poonly (the canonical file committed to git). cd po && make compileproducesdat/locale/ko/nethack.mo.- Rebuild so
nhdatpicks up the catalog (make allon Linux after Unix setup; Windows as above). - Before opening a PR:
./scripts/translation-preflight.sh(gettext checks +_()wrapping audit).
Operational workflow (when to run pot, safe-update, etc.): po/TRANSLATION_PROCESS.md. Quick reference: po/README.md. Style guide: po/TRANSLATION_GUIDE_KO.md. Maintainer merge notes: doc/i18n-upstream-merge.md.
See Korean translation system (brief) above for architecture; po/I18N_SYSTEM.md for full technical detail.
| Pattern | Role | Example (conceptual) |
|---|---|---|
{은/는} |
Topic marker | dragon은 / ant는 |
{이/가} |
Subject marker | sword이 / axe가 |
{을/를} |
Object marker | sword을 / axe를 |
{과/와} |
and / with | sword과 / shield와 |
{으로/로} |
direction / means | north으로 / down로 |
HanNetHack packaging tags follow upstream VERSION_MAJOR.MINOR.PATCHLEVEL plus a Korean iteration suffix, e.g. v5.0.1-ko.1. When the upstream patchlevel (or major/minor) advances, the ko.N counter resets to 1. The badge at the top of this file tracks the current packaging snapshot; the in-game string from makedefs may still look like 5.0.1-0 while upstream is WIP.
NetHack General Public License (NGPL). See dat/license.
- Original NetHack: NetHack DevTeam
- Korean localization: HanNetHack contributors
