i18n

The i18n module provides support for internationalization, conversions between default NWN encodings and UTF-8 (see below).

Philosophy

The module follows the principles of UTF-8 everywhere. Or in other words, ordinary C++ string types, std::string, std::string_view, etc. must be in UTF-8. The only exception are:

  • wide character types (std::wstring, u16string, u32string, etc) which are never used.

  • std::filesystem::path which is, per the standard, stored in native encoding. E.g., on Linux, UTF-8; on windows, UCS-2; etc. Some platform specific conversions to UTF-8 are therefore necessary.

There is no caching or fixed caching policies at this layer of the library.

Neverwinter Nights Languages and Encodings

  • English (CP1252)

  • French (CP1252)

  • German (CP1252)

  • Italian (CP1252)

  • Spanish (CP1252)

  • Polish (CP1250)

  • Korean (CP949) - Unsupported by NWN:EE

  • Chinese Traditional (CP936) - Unsupported by NWN:EE

  • Chinese Simplified (CP950) - Unsupported by NWN:EE

  • Japanese (CP932) - Unsupported by NWN:EE

kernel service

The Strings kernel service provides access to dialog/custom TLKs and localized strings. It also provides a mechanism for interning commonly used strings.

Example - Intern a String

auto str = nw::kernel::strings().intern("This is a Test");
if(str == "This is a Test") {
   // This will occur
}