What is the NLS file format?
An .nls file is a binary system file used by the Windows NLS (National Language Support) subsystem to store locale data, code-page translation tables, Unicode mapping tables, and sort key data. Microsoft introduced the format with Windows NT 3.1 in 1993.
.nls files reside in %SystemRoot%\System32\ and the %SystemRoot%\System32\NLS\ subdirectory. Common examples include c_1252.nls (Windows-1252 Latin-1 code page), l_intl.nls (locale metadata), and sortdefault.nls (Unicode sort key data). Each file has a binary header that declares section counts and absolute offsets into the data, followed by the actual translation or sorting tables.
The files are loaded directly by the Windows kernel and C runtime libraries during boot and process initialization; end users never need to open or modify them. Renaming or deleting an .nls file causes system instability or startup failure. Windows File Protection (WFP) and its successor Windows Resource Protection (WRP) guard against accidental removal.
The format has no published specification. On Windows 10 and later, some globalization functions have migrated to the ICU (International Components for Unicode) library, but .nls files remain present and in active use across all supported Windows versions.
Security & safety
RISK: LOWLegitimate NLS files in %SystemRoot%\System32\ are read-only system files protected by Windows Resource Protection. They pose no inherent risk. However, malware occasionally disguises itself as an NLS file or drops fake NLS files in other locations - if an NLS file appears outside System32 or triggers an AV alert, investigate with Windows Defender or run 'sfc /scannow' to restore legitimate files.
Format details
in a nutshell- Navision/Microsoft Dynamics NAV language file - Microsoft Navision ERP used .nls for UI string localization - a completely different text-based format from the Windows system NLS files.
- Various game localization files - Some games (e.g. Quake engine derivatives) used .nls for string tables; proprietary and unrelated to Windows NLS.
Programs that open NLS files
Technical details
deep spec| File encoding | Binary - proprietary Microsoft NLS format |
| Byte order | Little-endian |
| Content types | Code-page translation tables, locale metadata, Unicode sort keys, calendar data, Unicode mapping tables |
| Header structure | Declares section counts and absolute file offsets into the data sections |
| Typical file size | 8 KB - 256 KB (code page files typically 64-128 KB) |
| Storage location | `%SystemRoot%\System32\` and `%SystemRoot%\System32\NLS\` |
| Platform | Windows only (all versions since NT 3.1, 1993) |
| Integrity protection | Windows File Protection (WFP) / Windows Resource Protection (WRP) prevents deletion or replacement |
| Loading mechanism | Loaded by the Windows kernel and C runtime libraries at boot and process initialization |
| Example files | `c_1252.nls` (Windows-1252), `l_intl.nls` (locale data), `sortdefault.nls` (sort keys) |
| Format specification | Proprietary and unpublished; internal structure varies by NLS file subtype |
| User modification | Not intended for modification; editing or deleting causes system instability or startup failure |
| Released | Early 1990s (Windows NT 3.1, 1993) |
| Latest version | Continuously updated with each Windows release; no independent version numbering |
| Specification | learn.microsoft.com |
NLS conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about NLS files.