diff --git a/lang/american.txt b/lang/american.txt index 109fcae6ad..0219769ca1 100644 --- a/lang/american.txt +++ b/lang/american.txt @@ -1,5 +1,6 @@ ##name American ##ownname English (US) +##isocode en_US ##id 0x0000 STR_NULL : diff --git a/lang/catalan.txt b/lang/catalan.txt index 75b16fa1b7..121cfb1b47 100644 --- a/lang/catalan.txt +++ b/lang/catalan.txt @@ -1,5 +1,6 @@ ##name Catalan ##ownname Català +##isocode ca ##id 0x0000 STR_NULL : diff --git a/lang/czech.txt b/lang/czech.txt index 178b13170e..9829521cf7 100644 --- a/lang/czech.txt +++ b/lang/czech.txt @@ -1,5 +1,6 @@ ##name Czech ##ownname Cesky +##isocode cs ##id 0x0000 STR_NULL : diff --git a/lang/danish.txt b/lang/danish.txt index b3f105622b..f0693293a4 100644 --- a/lang/danish.txt +++ b/lang/danish.txt @@ -1,5 +1,6 @@ ##name Danish ##ownname Dansk +##isocode da ##id 0x0000 STR_NULL : diff --git a/lang/dutch.txt b/lang/dutch.txt index 24e2d81c48..4d672aae7a 100644 --- a/lang/dutch.txt +++ b/lang/dutch.txt @@ -1,5 +1,6 @@ ##name Dutch ##ownname Nederlands +##isocode nl ##id 0x0000 STR_NULL : diff --git a/lang/english.txt b/lang/english.txt index 6b69dc7725..d91046ca0c 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1,5 +1,6 @@ ##name English ##ownname English (UK) +##isocode en_GB ##id 0x0000 STR_NULL : diff --git a/lang/finnish.txt b/lang/finnish.txt index efb7605b81..3a1f4e23b7 100644 --- a/lang/finnish.txt +++ b/lang/finnish.txt @@ -1,5 +1,6 @@ ##name Finnish ##ownname Suomi +##isocode fi ##id 0x0000 STR_NULL : diff --git a/lang/french.txt b/lang/french.txt index 3edaecccef..2776dee626 100644 --- a/lang/french.txt +++ b/lang/french.txt @@ -1,5 +1,6 @@ ##name French ##ownname Français +##isocode fr ##id 0x0000 STR_NULL : diff --git a/lang/galician.txt b/lang/galician.txt index 2955524e33..583c9b3ed5 100644 --- a/lang/galician.txt +++ b/lang/galician.txt @@ -1,5 +1,6 @@ ##name Galician ##ownname Galego +##isocode gl ##id 0x0000 STR_NULL : diff --git a/lang/german.txt b/lang/german.txt index 5d13a0a59a..3a2c22c49a 100644 --- a/lang/german.txt +++ b/lang/german.txt @@ -1,5 +1,6 @@ ##name German ##ownname Deutsch +##isocode de ##id 0x0000 STR_NULL : diff --git a/lang/hungarian.txt b/lang/hungarian.txt index 16664a64df..1c14302136 100644 --- a/lang/hungarian.txt +++ b/lang/hungarian.txt @@ -1,5 +1,6 @@ ##name Hungarian ##ownname Magyar +##isocode hu ##id 0x0000 STR_NULL : diff --git a/lang/icelandic.txt b/lang/icelandic.txt index 945ce07eb3..ce45c9f110 100644 --- a/lang/icelandic.txt +++ b/lang/icelandic.txt @@ -1,5 +1,6 @@ ##name Icelandic ##ownname Íslenska +##isocode is ##id 0x0000 STR_NULL : diff --git a/lang/italian.txt b/lang/italian.txt index bfbf6a5edd..c6de0a39f2 100644 --- a/lang/italian.txt +++ b/lang/italian.txt @@ -1,5 +1,6 @@ ##name Italian ##ownname Italian (IT) +##isocode it ##id 0x0000 STR_NULL : diff --git a/lang/norwegian.txt b/lang/norwegian.txt index 4b31248645..46aba9d14a 100644 --- a/lang/norwegian.txt +++ b/lang/norwegian.txt @@ -1,5 +1,6 @@ ##name Norwegian ##ownname Norsk, bokmål +##isocode nb ##id 0x0000 STR_NULL : diff --git a/lang/origveh.txt b/lang/origveh.txt index 438ca19ae4..78388c0a73 100644 --- a/lang/origveh.txt +++ b/lang/origveh.txt @@ -1,5 +1,6 @@ ##name Original vehicle names (ENG) ##ownname Original vehicle names (ENG) +##isocode xx ##id 0x8000 STR_8000_KIRBY_PAUL_TANK_STEAM :Collett Pannier Tank (Steam) diff --git a/lang/polish.txt b/lang/polish.txt index f6d226eec3..62704fc171 100644 --- a/lang/polish.txt +++ b/lang/polish.txt @@ -1,5 +1,6 @@ ##name Polish ##ownname Polski +##isocode pl ##id 0x0000 STR_NULL : diff --git a/lang/portuguese.txt b/lang/portuguese.txt index d84918d2b3..f4555989f2 100644 --- a/lang/portuguese.txt +++ b/lang/portuguese.txt @@ -1,5 +1,6 @@ ##name Portuguese ##ownname Português +##isocode pt ##id 0x0000 STR_NULL : diff --git a/lang/romanian.txt b/lang/romanian.txt index 578dd7eb3c..4cc827e7bb 100644 --- a/lang/romanian.txt +++ b/lang/romanian.txt @@ -1,5 +1,6 @@ ##name Romanian ##ownname Românã +##isocode ro ##id 0x0000 STR_NULL : diff --git a/lang/slovak.txt b/lang/slovak.txt index 2de803d8b0..4a82761733 100644 --- a/lang/slovak.txt +++ b/lang/slovak.txt @@ -1,5 +1,6 @@ ##name Slovak ##ownname Slovensky +##isocode sk ##id 0x0000 STR_NULL : diff --git a/lang/spanish.txt b/lang/spanish.txt index a9c5fa3137..2b39bc68a4 100644 --- a/lang/spanish.txt +++ b/lang/spanish.txt @@ -1,5 +1,6 @@ ##name Spanish ##ownname Español (ES) +##isocode es ##id 0x0000 STR_NULL : diff --git a/lang/swedish.txt b/lang/swedish.txt index 5c536fd58b..d0d2f67348 100644 --- a/lang/swedish.txt +++ b/lang/swedish.txt @@ -1,5 +1,6 @@ ##name Swedish ##ownname Svenska +##isocode sv ##id 0x0000 STR_NULL : diff --git a/strgen/strgen.c b/strgen/strgen.c index 481640643b..805da67557 100644 --- a/strgen/strgen.c +++ b/strgen/strgen.c @@ -26,6 +26,7 @@ typedef struct { uint32 version; // 32-bits of auto generated version info which is basically a hash of strings.h char name[32]; // the international name of this language char own_name[32]; // the localized name of this language + char isocode[16]; // the ISO code for the language (not country code) uint16 offsets[32]; // the offsets } LanguagePackHeader; @@ -45,7 +46,7 @@ int _cur_line; bool _warnings; uint32 _hash; -char _lang_name[32], _lang_ownname[32]; +char _lang_name[32], _lang_ownname[32], _lang_isocode[16]; #define HASH_SIZE 1023 LineName *_hash_head[HASH_SIZE]; @@ -362,6 +363,8 @@ void handle_pragma(char *str) ttd_strlcpy(_lang_name, str + 5, sizeof(_lang_name)); } else if (!memcmp(str, "ownname ", 8)) { ttd_strlcpy(_lang_ownname, str + 8, sizeof(_lang_ownname)); + } else if (!memcmp(str, "isocode ", 8)) { + ttd_strlcpy(_lang_isocode, str + 8, sizeof(_lang_isocode)); } else { error("unknown pragma '%s'", str); } @@ -700,6 +703,7 @@ void write_langfile(const char *filename, int show_todo) hdr.version = TO_LE32(_hash); strcpy(hdr.name, _lang_name); strcpy(hdr.own_name, _lang_ownname); + strcpy(hdr.isocode, _lang_isocode); fwrite(&hdr, sizeof(hdr), 1, f); diff --git a/strings.c b/strings.c index d4cd697524..75c5401e51 100644 --- a/strings.c +++ b/strings.c @@ -23,6 +23,7 @@ typedef struct LanguagePack { uint32 version; // 32-bits of auto generated version info which is basically a hash of strings.h char name[32]; // the international name of this language char own_name[32]; // the localized name of this language + char isocode[16]; // the ISO code for the language (not country code) uint16 offsets[32]; // the offsets char data[VARARRAY_SIZE]; } LanguagePack;