NML:Language files
Language files are usually found in the lang
sub-folder of the project, but the place NML looks for the language files can be changed via command line parameter to any directory desired:
nmlc -l path/to/lang-dir path/to/nml-source-file.nml nmlc --lang-dir=path/to/lang-dir path/to/nml-source-file.nml
Language files MUST have the extension .lng
The language files themselves follow a certain structure:
##grflangid <number> <string-name> :<text> <string-name> :<text> ...
where the first line must give the language code for the language this file describes (see below). The following lines each describe a string. The translated string follows immediately the colon. An NML project has exactly one fallback language, by default this is english.lng. You can change this with the command line parameter --default-lang. Example for a valid language file:
##grflangid 0x01 STR_GRF_NAME :{TITLE} 0.1.0 - {VERSION} STR_GRF_DESCRIPTION :{TITLE} contains pimped ground tiles. STR_NAME_MYVEHICLE :General Robotics Anti-Grav UFO Mark X
Strings may contain a number of special string codes which control how the string is being printed or which values to insert into the string. Custom replacements can be stored in the plain text file custom_tags.txt
(for example a newgrf version which is written by your build script). In the case above the custom_tags.txt
could, for example read
VERSION :alpha-r88 TITLE :Example NewGRF
Valid language IDs are
ID | language |
---|---|
00 | American |
01 | English |
02 | German |
03 | French |
04 | Spanish |
05 | Esperanto |
06 | Ido |
07 | Russian |
08 | Irish |
09 | Maltese |
0A | Tamil |
0B | Chuvash |
0C | Chinese (Traditional) |
0D | Serbian |
0E | Norwegian (Nynorsk) |
0F | Welsh |
10 | Belarusian |
11 | Marathi |
12 | Faroese |
14 | Arabic (Egypt) |
15 | Czech |
16 | Slovak |
18 | Bulgarian |
1B | Afrikaans |
1E | Greek |
1F | Dutch |
21 | Basque |
22 | Catalan |
23 | Luxembourgish |
24 | Hungarian |
26 | Macedonian |
27 | Italian |
28 | Romanian |
29 | Icelandic |
2A | Latvian |
2B | Lithuanian |
2C | Slovenian |
2D | Danish |
2E | Swedish |
2F | Norwegian (Bokmal) |
30 | Polish |
31 | Galician |
32 | Frisian |
33 | Ukrainian |
34 | Estonian |
35 | Finnish |
36 | Portuguese |
37 | Brazilian Portuguese |
38 | Croatian |
39 | Japanese |
3A | Korean |
3C | Malay |
3E | Turkish |
42 | Thai |
54 | Vietnamese |
56 | Chinese (Simplified) |
5A | Indonesian |
5C | Urdu |
61 | Hebrew |
62 | Persian |