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
|