The present release of Internationalized NetHack can be built and run on Linux and Windows, and supports English and Spanish.
The following notes are in order:
Primary development is in Linux; a Windows port is also supported. Windows users will need MinGW and MSYS. There are no plans to support Visual Studio at this time.
I have no access to Windows 95, 98 or Me. These have very limited support for Unicode and it is probably more trouble than it is worth to get Internationalized NetHack to work with them. Windows NT, 2000, XP, Vista and 7 should work fine. There's no telling what Microsoft has done with Windows 8 until I have a copy to play with.
Building in any configuration requires Ruby 1.9 development packages and Rake. Windows users can install RubyInstaller; be sure to use 1.9.3p194 or later. Ruby 1.8 will not work.
Building with Curses on Linux requires an NCurses with wide-character support. Most modern Linux distributions provide this. You will need the development packages.
The distributed binaries for Windows use win32a for the Curses interface. Plain PDCurses also works, with some tweaks to the Rakefile, but does not support the mouse; it must also be built with wide character support.
Building with Ne.W.T requires SDL, SDL_image and SDL_mixer. For Windows, these can be had from http://www.libsdl.org/ ; for Linux, you probably want the development packages from your distribution. Internationalized NetHack uses its own version of SDL_ttf, with patches to support the Unicode supplementary planes.
Building with Qt 4 requires the development packages for Qt 4. Windows users can get Qt 4 from https://qt-project.org/downloads . As of 26 December 2012, the sources in git compile with Qt 5, but only a brief run test has been conducted, and the window proportions look a little off.
The locale is chosen according to the settings for your operating system. For Linux, use the LANG environment variable; "es_US.UTF-8" works well on Ubuntu 12. For Windows, use the settings from the Control Panel.
If you see "???exception???", or other odd behavior, check the paniclog; when the Ruby code raises an exception, the report goes to the paniclog. Be sure to send me a copy.