NML documentation

# 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