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
}