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** .. code:: cpp auto str = nw::kernel::strings().intern("This is a Test"); if(str == "This is a Test") { // This will occur }