Introduction
Le format de fichier «LOCALE.NLS», abréviation de l'anglais Locale National Language Support, soit support de langage régionale, est utilisé par les systèmes d'exploitation Windows afin d'entreposer les informations régionales sur les langages humaines régionales. Ainsi, les applications peuvent afficher correctements les données à travers le monde en respectant les conventions. Il est généralement situé dans le dossier «C:\WINDOWS\system32\».
Structure
Dans les faits, le déplacement (offset) à partir du début de l'enregistrement ont changés trois fois en fonction des systèmes Windows 95, systèmes Windows 98 et de la famille de système d'exploitation Windows NT. Voici l'entête du format du fichier «LOCALE.NLS» en fonction des différents systèmes d'exploitation Windows (95 = Windows 95, 98 = Windows 98, NT4 = Windows NT4, 2000, XP, Vista, 7,...) situé au début complètement du fichier :
Offset 95 | Offset 98 | Offset NT4 | Taille | Description | Valeur standard |
---|---|---|---|---|---|
00h | 00h | 00h | 4 octets (double mots) | Nombre d'entrées régionales | |
04h | 04h | 04h | 4 octets (double mot) | Format de révision | Windows 95: 8 Windows 98: 12 Windows NT4, 2000, XP, Vista, 7: 12 |
08h | 08h | 08h | 4 octets (double mot) | Donnée du calendrier? | |
0Ch | 0Ch | 0Ch | (n*2) double mots | Paires d'identificateur régionale et de position (Offset) régionale dans les mots |
Voici la structure des données régionales (Locale data):
Offset 95 | Offset 98 | Offset NT4 | Taille | Description | Valeur standard |
---|---|---|---|---|---|
00h | 00h | 00h | Windows 95: 68 mots Windows 98: 73 mots Windows NT4, 2000, XP, Vista, 7: 69 mots |
Tables des déplacements (Offset) relatif à la longueur de la variable de chaine de caractères | |
8Ah | 1 mot | Inconnu | 04E4h | ||
58h | 92h | 8Ch | Windows 95: 88 mots Windows 98: 102 mots Windows NT4: 110 mots |
Bloc d'une longueur fixe de chaine de caractères (fixed-length strings) |
Voici la structure des longueurs fixes de chaines de caractères (Fixed-length strings):
Offset 95 | Offset 98 | Offset NT4 | Taille | Champs/Description | Valeur standard |
---|---|---|---|---|---|
00h | 00h | 00h | 5 mots | LOCALE_ILANGUAGE | Les valeurs standards ne correspondent pas à des données régionales spécifique. Toutefois, les données suivantes sont celle par défaut en anglais. |
0Ah | 0Ah | 0Ah | 6 mots | LOCALE_ICOUNTRY | |
16h | 16h | 16h | 5 mots | LOCALE_IDEFAULTLANGUAGE | |
20h | 20h | 20h | 6 mots | LOCALE_IDEFAULTCOUNTRY | |
2Ch | 2Ch | 2Ch | 6 mots | LOCALE_IDEFAULTANSICODEPAGE | 1252 |
38h | 38h | 38h | 6 mots | LOCALE_IDEFAULTCODEPAGE (OEM) | 437 ou 850 |
44h | 44h | 6 mots | LOCALE_IDEFAULTMACCODEPAGE | 10000 | |
50h | 6 mots | LOCALE_IDEFAULTEBCDICCODEPAGE | 037 | ||
44h | 5Ch | 50h | 2 mots | LOCALE_IMEASURE | 0=Métrique, 1=Américain |
60h | 2 mots | LOCALE_IPAPERSIZE | 0=lettre, 1=A4, 2=légale, 3=A3 | ||
48h | 64h | 54h | 3 mots | LOCALE_IDIGITS | 2 |
4Eh | 6Ah | 5Ah | 2 mots | LOCALE_ILZERO | 1 |
52h | 6Eh | 5Eh | 2 mots | LOCALE_INEGNUMBER | 1 |
56h | 72h | 62h | 3 mots | LOCALE_ICURRDIGITS | 2 |
5Ch | 78h | 68h | 3 mots | LOCALE_IINTLCURRDIGITS | 2 |
62h | 7Eh | 6Eh | 2 mots | LOCALE_ICURRENCY | 2 |
66h | 82h | 72h | 2 mots NT4: 3 mots? | LOCALE_INEGCURR | 2 |
6Ch | 88h | 78h | 2 mots | LOCALE_IPOSSIGNPOSN | 4 |
70h | 8Ch | 7Ch | 2 mots | LOCALE_IPOSSYMPRECEDES | 1 |
74h | 90h | 80h | 2 mots | LOCALE_IPOSSEPBYSPACE | 1 |
78h | 94h | 84h | 2 mots | LOCALE_INEGSIGNPOSN | 4 |
7Ch | 98h | 88h | 2 mots | LOCALE_INEGSYMPRECEDES | 1 |
80h | 9Ch | 8Ch | 2 mots | LOCALE_INEGSEPBYSPACE | 0 |
84h | A0h | x90h | 2 mots | LOCALE_ITIME | 1 |
88h | A4h | 94h | 2 mots | LOCALE_ITLZERO | 1 |
8Ch | A8h | 98h | 2 mots | LOCALE_ITIMEMARKPOSN | 0 |
90h | ACh | 9Ch | 2 mots | LOCALE_IDATE | 2 |
94h | B0h | A0h | 2 mots | LOCALE_ICENTURY | 0 |
98h | B4h | A4h | 2 mots | LOCALE_IDAYLZERO | 1 |
9Ch | B8h | A8h | 2 mots | LOCALE_IMONLZERO | 1 |
A0h | BCh | ACh | 2 mots | LOCALE_ILDATE | 0 |
A4h | C0h | B0h | 2 mots | LOCALE_ICALENDARTYPE / Ce champ permet d'indiquer le type de calendrier | 1 |
A8h | C4h | B4h | 2 mots | LOCALE_IFIRSTDAYOFWEEK / Ce champ permet d'indiquer le premier jour de l'année | 0 |
ACh | C8h | B8h | 2 mots | LOCALE_IFIRSTWEEKOFYEAR / Ce champ permet d'indiquer la première semaine de l'année | 2 |
BCh | 16 mots | LOCALE_FONTSIGNATURE / Ce champ permet d'indiquer le signature de police de caractères régionales. |
Voici la structure des longueurs variables de chaines de caractères (Variable-length strings):
Offset 95 | Offset 98 | Offset NT4 | Taille | Champs/Description | Valeur standard |
---|---|---|---|---|---|
00h | 00h | 00h | LOCALE_SENGLANGUAGE | Les valeurs standards ne correspondent pas à des données locales spécifique. Toutefois, les données suivantes sont celle par défaut en anglais. Toutefois, les données suivantes sont celle par défaut en anglais. | |
02h | 02h | 02h | LOCALE_SABBREVLANGNAME | ||
04h | 04h | LOCALE_SISO639LANGNAME | |||
04h | 06h | 06h | LOCALE_SNATIVELANGNAME | ||
06h | 08h | 08h | LOCALE_SENGCOUNTRY | ||
08h | 0Ah | 0Ah | LOCALE_SABBREVCTRYNAME | ||
0Ch | 0Ch | LOCALE_SISO3166CTRYNAME | |||
0Ah | 0Eh | 0Eh | LOCALE_SNATIVECTRYNAME | ||
0Ch | 10h | 10h | LOCALE_SLIST | ; | |
0Eh | 12h | 12h | LOCALE_SDECIMAL / Ce champ permet d'indiquer le séparateur de décimales dans un nombre. | . | |
10h | 14h | 14h | LOCALE_STHOUSAND / Ce champ permet d'indiquer le séparateur de millier dans un nombre. | , | |
12h | 16h | 16h | LOCALE_SGROUPING | 3;0 | |
14h | 18h | 18h | LOCALE_SNATIVEDIGITS | 0123456789 | |
16h | 1Ah | 1Ah | LOCALE_SCURRENCY | ||
18h | 1Ch | 1Ch | LOCALE_SINTLSYMBOL | ||
1Eh | LOCALE_SENGCURRNAME | ||||
20h | LOCALE_SNATIVECURRNAME | ||||
1Ah | 22h | 1Eh | LOCALE_SMONDECIMALSEP | . | |
1Ch | 24h | 20h | LOCALE_STHOUSAND | , | |
1Eh | 26h | 22h | LOCALE_SMONGROUPING | 3;0 | |
20h | 28h | 24h | LOCALE_SPOSITIVESIGN | ||
22h | 2Ah | 26h | LOCALE_SNEGATIVESIGN | - | |
24h | 2Ch | 28h | LOCALE_STIMEFORMAT | HH:mm:ss<NUL>H:mm:ss<NUL>'kl 'HH.mm.ss<NUL>HH.mm.ss | |
26h | 2Eh | 2Ah | LOCALE_STIME | : | |
28h | 30h | 2Ch | LOCALE_S1159 | AM | |
2Ah | 32h | 2Eh | LOCALE_S2359 | PM | |
2Ch | 34h | 30h | LOCALE_SSHORTDATE | dd.MM.yy<NUL>yyyy-MM-dd<NUL>d.M.yy | |
2Eh | 36h | 32h | LOCALE_SDATE | . | |
38h | LOCALE_SYEARMONTH | MMMM yyyy | |||
30h | 3Ah | 34h | LOCALE_SLONGDATE | d. MMMM yyyy<NUL>dd. MMMM yyyy | |
32h | 3Ch | 36h | Information de calendrier : | ||
1 mot | Type de calendrier | 1 | |||
1 mot | Taille d'une entrée de calendrier | 5 | |||
CAL_ICALINTVALUE? | 1 | ||||
CAL_SCALNAME? | Calendrier grégorien | ||||
34h | 3Eh | 38h | LOCALE_SDAYNAME1 / Le premier jour de la semaine, soit Lundi | Monday | |
36h | 40h | 3Ah | LOCALE_SDAYNAME2 / Le deuxième jour de la semaine, soit Mardi | Tuesday | |
38h | 42h | 3Ch | LOCALE_SDAYNAME3 / Le troisième jour de la semaine, soit Mercredi | Wednesday | |
3Ah | 44h | 3Eh | LOCALE_SDAYNAME4 / Le quatrième jour de la semaine, soit Jeudi | Thursday | |
3Ch | 46h | 40h | LOCALE_SDAYNAME5 / Le cinquième jour de la semaine, soit Vendredi | Friday | |
3Eh | 48h | 42h | LOCALE_SDAYNAME6 / Le sixième jour de la semaine, soit Samedi | Saturday | |
40h | 4Ah | 44h | LOCALE_SDAYNAME7 / Le septième jour de la semaine, soit Dimanche | Sunday | |
42h | 4Ch | 46h | LOCALE_SABBREVDAYNAME1 / Abréviation de 3 lettres du premier jour de la semaine, soit «Lun» pour Lundi | Mon | |
44h | 4Eh | 48h | LOCALE_SABBREVDAYNAME2 / Abréviation de 3 lettres du deuxième jour de la semaine, soit «Mar» pour Mardi | Tue | |
46h | 50h | 4Ah | LOCALE_SABBREVDAYNAME3 / Abréviation de 3 lettres du troisième jour de la semaine, soit «Mer» pour Mercredi | Wed | |
48h | 52h | 4Ch | LOCALE_SABBREVDAYNAME4 / Abréviation de 3 lettres du quatrième jour de la semaine, soit «Jeu» pour Jeudi | Thu | |
4Ah | 54h | 4Eh | LOCALE_SABBREVDAYNAME5 / Abréviation de 3 lettres du cinquième jour de la semaine, soit «Ven» pour Vendredi | Fri | |
4Ch | 56h | 50h | LOCALE_SABBREVDAYNAME6 / Abréviation de 3 lettres du sixième jour de la semaine, soit «Sam» pour Samedi | Sat | |
4Eh | 58h | 52h | LOCALE_SABBREVDAYNAME7 / Abréviation de 3 lettres du septième jour de la semaine, soit «Dim» pour Dimanche | Sun | |
50h | 5Ah | 54h | LOCALE_SMONTHNAME1 / Le premier mois de l'année, soit Janvier | January | |
52h | 5Ch | 56h | LOCALE_SMONTHNAME2 / Le deuxième mois de l'année, soit Février | February | |
54h | 5Eh | 58h | LOCALE_SMONTHNAME3 / Le troisième mois de l'année, soit Mars | March | |
56h | 60h | 5Ah | LOCALE_SMONTHNAME4 / Le quatrième mois de l'année, soit Avril | April | |
58h | 62h | 5Ch | LOCALE_SMONTHNAME5 / Le cinquième mois de l'année, soit Mai | May | |
5Ah | 64h | 5Eh | LOCALE_SMONTHNAME6 / Le sixième mois de l'année, soit Juin | June | |
5Ch | 66h | 60h | LOCALE_SMONTHNAME7 / Le septième mois de l'année, soit Juillet | July | |
5Eh | 68h | 62h | LOCALE_SMONTHNAME8 / Le huitième mois de l'année, soit Août | August | |
60h | 6Ah | 64h | LOCALE_SMONTHNAME9 / Le neuvième mois de l'année, soit Septembre | September | |
62h | 6Ch | 66h | LOCALE_SMONTHNAME10 / Le dixième mois de l'année, soit Octobre | October | |
64h | 6Eh | 68h | LOCALE_SMONTHNAME11 / Le onzième mois de l'année, soit Novembre | November | |
66h | 70h | 6Ah | LOCALE_SMONTHNAME12 / Le douzième mois de l'année, soit Décembre | December | |
68h | 72h | 6Ch | LOCALE_SMONTHNAME13 / Le treizième mois de l'année | ||
6Ah | 74h | 6Eh | LOCALE_SABBREVMONTHNAME1 / L'abréviation du premier mois de l'année, soit «Jan» pour Janvier | Jan | |
6Ch | 76h | 70h | LOCALE_SABBREVMONTHNAME2 / L'abréviation du deuxième mois de l'année, soit «Fév» pour Février | Feb | |
6Eh | 78h | 72h | LOCALE_SABBREVMONTHNAME3 / L'abréviation du troisième mois de l'année, soit «Mar» pour Mars | Mar | |
70h | 7Ah | 74h | LOCALE_SABBREVMONTHNAME4 / L'abréviation du quatrième mois de l'année, soit «Avr» pour Avril | Apr | |
72h | 7Ch | 76h | LOCALE_SABBREVMONTHNAME5 / L'abréviation du cinquième mois de l'année, soit «Mai» pour Mai | May | |
74h | 7Eh | 78h | LOCALE_SABBREVMONTHNAME6 / L'abréviation du sixième mois de l'année, soit «Jui» pour Juin | Jun | |
76h | 80h | 7Ah | LOCALE_SABBREVMONTHNAME7 / L'abréviation du septième mois de l'année, soit «Jui» pour Juillet | Jul | |
78h | 82h | 7Ch | LOCALE_SABBREVMONTHNAME8 / L'abréviation du huitième mois de l'année, soit «Aoû» pour Août | Aug | |
7Ah | 84h | 7Eh | LOCALE_SABBREVMONTHNAME9 / L'abréviation du neuvième mois de l'année, soit «Sep» pour Septembre | Sep | |
7Ch | 86h | 80h | LOCALE_SABBREVMONTHNAME10 / L'abréviation du dixième mois de l'année, soit «Oct» pour Octobre | Oct | |
7Eh | 88h | 82h | LOCALE_SABBREVMONTHNAME11 / L'abréviation du onzième mois de l'année, soit «Nov» pour Novembre | Nov | |
80h | 8Ah | 84h | LOCALE_SABBREVMONTHNAME12 / L'abréviation du douzième mois de l'année, soit «Déc» pour Décembre | Dec | |
82h | 8Ch | 86h | LOCALE_SABBREVMONTHNAME13 / L'abréviation du treizième mois de l'année | ||
84h | 8Eh | 16 mots (+ terminaison nulle = 17 mots) | LOCALE_FONTSIGNATURE / Signature de la police de caractères régionales |
Voir également
Système d'exploitation - Windows - Introduction
Index des extensions de fichier - Format d'icône pour Windows (.ICO)
Langage de programmation - C pour Windows - Structure de données de Windows - «BITMAPINFOHEADER»
Index des extensions de fichier - Format de fichier compressé pour Windows (.CAB)
Articles - Les géants de l'informatique - Microsoft