@@ -16,6 +16,13 @@ macro(compile_flags)
endif()
# Our strings are UTF-8.
if(MSVC)
add_compile_options(/utf-8)
else()
add_compile_options(-finput-charset=utf-8)
# Add some -D flags for Debug builds. We cannot use add_definitions(), because
# it does not appear to support the $<> tags.
add_compile_options(
@@ -27,49 +27,49 @@
* | | | | | | | | */
/** The original currency specifications. */
static const CurrencySpec origin_currency_specs[CURRENCY_END] = {
{ 1, "", CF_NOEURO, u8"\u00a3", "", "GBP", 0, STR_GAME_OPTIONS_CURRENCY_GBP }, ///< british pound
{ 2, "", CF_NOEURO, "$", "", "USD", 0, STR_GAME_OPTIONS_CURRENCY_USD }, ///< american dollar
{ 2, "", CF_ISEURO, u8"\u20ac", "", "EUR", 0, STR_GAME_OPTIONS_CURRENCY_EUR }, ///< euro
{ 220, "", CF_NOEURO, u8"\u00a5", "", "JPY", 0, STR_GAME_OPTIONS_CURRENCY_JPY }, ///< japanese yen
{ 27, "", 2002, "", NBSP "S.", "ATS", 1, STR_GAME_OPTIONS_CURRENCY_ATS }, ///< austrian schilling
{ 81, "", 2002, "BEF" NBSP, "", "BEF", 0, STR_GAME_OPTIONS_CURRENCY_BEF }, ///< belgian franc
{ 2, "", CF_NOEURO, "CHF" NBSP, "", "CHF", 0, STR_GAME_OPTIONS_CURRENCY_CHF }, ///< swiss franc
{ 41, "", CF_NOEURO, "", NBSP u8"K\u010d", "CZK", 1, STR_GAME_OPTIONS_CURRENCY_CZK }, ///< czech koruna
{ 4, "", 2002, "DM" NBSP, "", "DEM", 0, STR_GAME_OPTIONS_CURRENCY_DEM }, ///< deutsche mark
{ 11, "", CF_NOEURO, "", NBSP "kr", "DKK", 1, STR_GAME_OPTIONS_CURRENCY_DKK }, ///< danish krone
{ 333, "", 2002, "Pts" NBSP, "", "ESP", 0, STR_GAME_OPTIONS_CURRENCY_ESP }, ///< spanish peseta
{ 12, "", 2002, "", NBSP "mk", "FIM", 1, STR_GAME_OPTIONS_CURRENCY_FIM }, ///< finnish markka
{ 13, "", 2002, "FF" NBSP, "", "FRF", 0, STR_GAME_OPTIONS_CURRENCY_FRF }, ///< french franc
{ 681, "", 2002, "", "Dr.", "GRD", 1, STR_GAME_OPTIONS_CURRENCY_GRD }, ///< greek drachma
{ 378, "", CF_NOEURO, "", NBSP "Ft", "HUF", 1, STR_GAME_OPTIONS_CURRENCY_HUF }, ///< hungarian forint
{ 130, "", CF_NOEURO, "", NBSP "Kr", "ISK", 1, STR_GAME_OPTIONS_CURRENCY_ISK }, ///< icelandic krona
{ 3873, "", 2002, "", NBSP "L.", "ITL", 1, STR_GAME_OPTIONS_CURRENCY_ITL }, ///< italian lira
{ 4, "", 2002, "NLG" NBSP, "", "NLG", 0, STR_GAME_OPTIONS_CURRENCY_NLG }, ///< dutch gulden
{ 12, "", CF_NOEURO, "", NBSP "Kr", "NOK", 1, STR_GAME_OPTIONS_CURRENCY_NOK }, ///< norwegian krone
{ 6, "", CF_NOEURO, "", NBSP u8"z\u0142", "PLN", 1, STR_GAME_OPTIONS_CURRENCY_PLN }, ///< polish zloty
{ 5, "", CF_NOEURO, "", NBSP "Lei", "RON", 1, STR_GAME_OPTIONS_CURRENCY_RON }, ///< romanian leu
{ 50, "", CF_NOEURO, "", NBSP "p", "RUR", 1, STR_GAME_OPTIONS_CURRENCY_RUR }, ///< russian rouble
{ 479, "", 2007, "", NBSP "SIT", "SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT }, ///< slovenian tolar
{ 13, "", CF_NOEURO, "", NBSP "Kr", "SEK", 1, STR_GAME_OPTIONS_CURRENCY_SEK }, ///< swedish krona
{ 3, "", CF_NOEURO, "", NBSP "TL", "TRY", 1, STR_GAME_OPTIONS_CURRENCY_TRY }, ///< turkish lira
{ 60, "", 2009, "", NBSP "Sk", "SKK", 1, STR_GAME_OPTIONS_CURRENCY_SKK }, ///< slovak koruna
{ 4, "", CF_NOEURO, "R$" NBSP, "", "BRL", 0, STR_GAME_OPTIONS_CURRENCY_BRL }, ///< brazil real
{ 31, "", 2011, "", NBSP "EEK", "EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK }, ///< estonian krooni
{ 4, "", 2015, "", NBSP "Lt", "LTL", 1, STR_GAME_OPTIONS_CURRENCY_LTL }, ///< lithuanian litas
{ 1850, "", CF_NOEURO, u8"\u20a9", "", "KRW", 0, STR_GAME_OPTIONS_CURRENCY_KRW }, ///< south korean won
{ 13, "", CF_NOEURO, "R" NBSP, "", "ZAR", 0, STR_GAME_OPTIONS_CURRENCY_ZAR }, ///< south african rand
{ 1, "", CF_NOEURO, "", "", "", 2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency (add further languages below)
{ 3, "", CF_NOEURO, "", NBSP "GEL", "GEL", 1, STR_GAME_OPTIONS_CURRENCY_GEL }, ///< Georgian Lari
{ 4901, "", CF_NOEURO, "", NBSP "Rls", "IRR", 1, STR_GAME_OPTIONS_CURRENCY_IRR }, ///< Iranian Rial
{ 80, "", CF_NOEURO, "", NBSP "rub", "RUB", 1, STR_GAME_OPTIONS_CURRENCY_RUB }, ///< New Russian Ruble
{ 24, "", CF_NOEURO, "$", "", "MXN", 0, STR_GAME_OPTIONS_CURRENCY_MXN }, ///< Mexican peso
{ 40, "", CF_NOEURO, "NTD" NBSP, "", "NTD", 0, STR_GAME_OPTIONS_CURRENCY_NTD }, ///< new taiwan dollar
{ 8, "", CF_NOEURO, u8"\u00a5", "", "CNY", 0, STR_GAME_OPTIONS_CURRENCY_CNY }, ///< chinese renminbi
{ 10, "", CF_NOEURO, "HKD" NBSP, "", "HKD", 0, STR_GAME_OPTIONS_CURRENCY_HKD }, ///< hong kong dollar
{ 90, "", CF_NOEURO, u8"\u20b9", "", "INR", 0, STR_GAME_OPTIONS_CURRENCY_INR }, ///< Indian Rupee
{ 19, "", CF_NOEURO, "Rp", "", "IDR", 0, STR_GAME_OPTIONS_CURRENCY_IDR }, ///< Indonesian Rupiah
{ 5, "", CF_NOEURO, "RM", "", "MYR", 0, STR_GAME_OPTIONS_CURRENCY_MYR }, ///< Malaysian Ringgit
{ 1, "", 2014, "", NBSP "Ls", "LVL", 1, STR_GAME_OPTIONS_CURRENCY_LVL }, ///< latvian lats
{ 1, "", CF_NOEURO, "\u00a3", "", "GBP", 0, STR_GAME_OPTIONS_CURRENCY_GBP }, ///< british pound
{ 2, "", CF_ISEURO, "\u20ac", "", "EUR", 0, STR_GAME_OPTIONS_CURRENCY_EUR }, ///< euro
{ 220, "", CF_NOEURO, "\u00a5", "", "JPY", 0, STR_GAME_OPTIONS_CURRENCY_JPY }, ///< japanese yen
{ 41, "", CF_NOEURO, "", NBSP "K\u010d", "CZK", 1, STR_GAME_OPTIONS_CURRENCY_CZK }, ///< czech koruna
{ 6, "", CF_NOEURO, "", NBSP "z\u0142", "PLN", 1, STR_GAME_OPTIONS_CURRENCY_PLN }, ///< polish zloty
{ 1850, "", CF_NOEURO, "\u20a9", "", "KRW", 0, STR_GAME_OPTIONS_CURRENCY_KRW }, ///< south korean won
{ 8, "", CF_NOEURO, "\u00a5", "", "CNY", 0, STR_GAME_OPTIONS_CURRENCY_CNY }, ///< chinese renminbi
{ 90, "", CF_NOEURO, "\u20b9", "", "INR", 0, STR_GAME_OPTIONS_CURRENCY_INR }, ///< Indian Rupee
};
/** Array of currencies used by the system */
@@ -401,69 +401,69 @@ static WindowDesc _about_desc(__FILE__,
);
static const char * const _credits[] = {
u8"Original design by Chris Sawyer",
u8"Original graphics by Simon Foster",
u8"",
u8"The OpenTTD team (in alphabetical order):",
u8" Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)",
u8" Christoph Elsenhans (frosch) - General coding (since 0.6)",
u8" Lo\u00efc Guilloux (glx) - General / Windows Expert (since 0.4.5)",
u8" Charles Pigott (LordAro) - General / Correctness police (since 1.9)",
u8" Michael Lutz (michi_cc) - Path based signals (since 0.7)",
u8" Niels Martin Hansen (nielsm) - Music system, general coding (since 1.9)",
u8" Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)",
u8" Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods (since 0.4.5)",
u8" Remko Bijker (Rubidium) - Coder and way more (since 0.4.5)",
u8" Patric Stout (TrueBrain) - NoProgrammer (since 0.3), sys op",
u8" Tyler Trahan (2TallTyler) - General coding (since 13)",
u8"Inactive Developers:",
u8" Grzegorz Duczy\u0144ski (adf88) - General coding (1.7 - 1.8)",
u8" Albert Hofkamp (Alberth) - GUI expert (0.7 - 1.9)",
u8" Jean-Fran\u00e7ois Claeys (Belugas) - GUI, NewGRF and more (0.4.5 - 1.0)",
u8" Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)",
u8" Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)",
u8" Ulf Hermann (fonsinchen) - Cargo Distribution (1.3 - 1.6)",
u8" Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)",
u8" Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)",
u8" Attila B\u00e1n (MiHaMiX) - Developer WebTranslator 1 and 2 (0.3 - 0.5)",
u8" Ingo von Borstel (planetmaker) - General coding, Support (1.1 - 1.9)",
u8" Zden\u011bk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)",
u8" Jos\u00e9 Soler (Terkhen) - General coding (1.0 - 1.4)",
u8" Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)",
u8" Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)",
u8" Leif Linse (Zuu) - AI/Game Script (1.2 - 1.6)",
u8"Retired Developers:",
u8" Tam\u00e1s Farag\u00f3 (Darkvater) - Ex-Lead coder (0.3 - 0.5)",
u8" Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)",
u8" Emil Djupfeld (egladil) - MacOSX (0.4.5 - 0.6)",
u8" Simon Sasburg (HackyKid) - Many bugfixes (0.4 - 0.4.5)",
u8" Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)",
u8" Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)",
u8" Petr Baudi\u0161 (pasky) - Many patches, NewGRF support (0.3 - 0.3)",
u8" Benedikt Br\u00fcggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)",
u8" Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)",
u8"Special thanks go out to:",
u8" Josef Drexler - For his great work on TTDPatch",
u8" Marcin Grzegorczyk - Track foundations and for describing TTD internals",
u8" Stefan Mei\u00dfner (sign_de) - For his work on the console",
u8" Mike Ragsdale - OpenTTD installer",
u8" Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
u8" Richard Kempton (richK) - additional airports, initial TGP implementation",
u8" Alberto Demichelis - Squirrel scripting language \u00a9 2003-2008",
u8" L. Peter Deutsch - MD5 implementation \u00a9 1999, 2000, 2002",
u8" Michael Blunck - Pre-signals and semaphores \u00a9 2003",
u8" George - Canal/Lock graphics \u00a9 2003-2004",
u8" Andrew Parkhouse (andythenorth) - River graphics",
u8" David Dallaston (Pikka) - Tram tracks",
u8" All Translators - Who made OpenTTD a truly international game",
u8" Bug Reporters - Without whom OpenTTD would still be full of bugs!",
u8"And last but not least:",
u8" Chris Sawyer - For an amazing game!"
"Original design by Chris Sawyer",
"Original graphics by Simon Foster",
"",
"The OpenTTD team (in alphabetical order):",
" Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)",
" Christoph Elsenhans (frosch) - General coding (since 0.6)",
" Lo\u00efc Guilloux (glx) - General / Windows Expert (since 0.4.5)",
" Charles Pigott (LordAro) - General / Correctness police (since 1.9)",
" Michael Lutz (michi_cc) - Path based signals (since 0.7)",
" Niels Martin Hansen (nielsm) - Music system, general coding (since 1.9)",
" Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)",
" Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods (since 0.4.5)",
" Remko Bijker (Rubidium) - Coder and way more (since 0.4.5)",
" Patric Stout (TrueBrain) - NoProgrammer (since 0.3), sys op",
" Tyler Trahan (2TallTyler) - General coding (since 13)",
"Inactive Developers:",
" Grzegorz Duczy\u0144ski (adf88) - General coding (1.7 - 1.8)",
" Albert Hofkamp (Alberth) - GUI expert (0.7 - 1.9)",
" Jean-Fran\u00e7ois Claeys (Belugas) - GUI, NewGRF and more (0.4.5 - 1.0)",
" Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)",
" Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)",
" Ulf Hermann (fonsinchen) - Cargo Distribution (1.3 - 1.6)",
" Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)",
" Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)",
" Attila B\u00e1n (MiHaMiX) - Developer WebTranslator 1 and 2 (0.3 - 0.5)",
" Ingo von Borstel (planetmaker) - General coding, Support (1.1 - 1.9)",
" Zden\u011bk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)",
" Jos\u00e9 Soler (Terkhen) - General coding (1.0 - 1.4)",
" Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)",
" Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)",
" Leif Linse (Zuu) - AI/Game Script (1.2 - 1.6)",
"Retired Developers:",
" Tam\u00e1s Farag\u00f3 (Darkvater) - Ex-Lead coder (0.3 - 0.5)",
" Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)",
" Emil Djupfeld (egladil) - MacOSX (0.4.5 - 0.6)",
" Simon Sasburg (HackyKid) - Many bugfixes (0.4 - 0.4.5)",
" Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)",
" Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)",
" Petr Baudi\u0161 (pasky) - Many patches, NewGRF support (0.3 - 0.3)",
" Benedikt Br\u00fcggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)",
" Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)",
"Special thanks go out to:",
" Josef Drexler - For his great work on TTDPatch",
" Marcin Grzegorczyk - Track foundations and for describing TTD internals",
" Stefan Mei\u00dfner (sign_de) - For his work on the console",
" Mike Ragsdale - OpenTTD installer",
" Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
" Richard Kempton (richK) - additional airports, initial TGP implementation",
" Alberto Demichelis - Squirrel scripting language \u00a9 2003-2008",
" L. Peter Deutsch - MD5 implementation \u00a9 1999, 2000, 2002",
" Michael Blunck - Pre-signals and semaphores \u00a9 2003",
" George - Canal/Lock graphics \u00a9 2003-2004",
" Andrew Parkhouse (andythenorth) - River graphics",
" David Dallaston (Pikka) - Tram tracks",
" All Translators - Who made OpenTTD a truly international game",
" Bug Reporters - Without whom OpenTTD would still be full of bugs!",
"And last but not least:",
" Chris Sawyer - For an amazing game!"
struct AboutWindow : public Window {
@@ -13,10 +13,10 @@
#include "core/enum_type.hpp"
/** A non-breaking space. */
#define NBSP u8"\u00a0"
#define NBSP "\u00a0"
/** A left-to-right marker, marks the next character as left-to-right. */
#define LRM u8"\u200e"
#define LRM "\u200e"
/**
* Valid filter types for IsValidChar.
@@ -310,7 +310,7 @@ static const char * const _name_austrian
"Aus",
"Alten",
"Braun",
u8"V\u00f6sl",
"V\u00f6sl",
"Mittern",
"Nuss",
"Neu",
@@ -332,9 +332,9 @@ static const char * const _name_austrian
"Frauen",
"Herren",
"Hof",
u8"H\u00fctt",
"H\u00fctt",
"Kaisers",
u8"K\u00f6nigs",
"K\u00f6nigs",
"Knittel",
"Lang",
"Ober",
@@ -346,7 +346,7 @@ static const char * const _name_austrian
"Stocker",
"Unter",
"Utten",
u8"V\u00f6sen",
"V\u00f6sen",
"Vill",
"Weissen",
@@ -392,7 +392,7 @@ static const char * const _name_austrian
static const char * const _name_austrian_a6[] = {
"Aegyd",
u8"Andr\u00e4",
"Andr\u00e4",
"Georgen",
"Jakob",
"Johann",
@@ -405,7 +405,7 @@ static const char * const _name_austrian
"Nikolai",
"Oswald",
"Peter",
u8"P\u00f6lten",
"P\u00f6lten",
"Stefan",
"Stephan",
"Thomas",
@@ -466,10 +466,10 @@ static const char * const _name_german_r
"Gera",
"Kassel",
"Kiel",
u8"K\u00f6ln",
u8"L\u00fcbeck",
"K\u00f6ln",
"L\u00fcbeck",
"Magdeburg",
u8"M\u00fcnchen",
"M\u00fcnchen",
"Potsdam",
"Stuttgart",
"Wiesbaden",
@@ -492,7 +492,7 @@ static const char * const _name_german_1
"Cloppen",
"Co",
"Duis",
u8"D\u00fcssel",
"D\u00fcssel",
"Dannen",
"Elb",
"Els",
@@ -506,7 +506,7 @@ static const char * const _name_german_1
"Frei",
"Freuden",
"Fried",
u8"F\u00fcrsten",
"F\u00fcrsten",
"Hahn",
"Ham",
"Harz",
@@ -527,10 +527,10 @@ static const char * const _name_german_1
"Langen",
"Lim",
"Lohr",
u8"L\u00fcne",
"L\u00fcne",
"Mel",
"Michels",
u8"M\u00fchl",
"M\u00fchl",
"Naum",
"Nest",
"Nord",
@@ -538,7 +538,7 @@ static const char * const _name_german_1
"Nien",
"Nidda",
"Nieder",
u8"N\u00fcrn",
"N\u00fcrn",
"Offen",
"Osna",
@@ -552,18 +552,18 @@ static const char * const _name_german_1
"Regens",
"Rott",
"Ros",
u8"R\u00fcssels",
"R\u00fcssels",
"Saal",
"Saar",
"Salz",
u8"Sch\u00f6ne",
"Sch\u00f6ne",
"Schwein",
"Sonder",
"Sonnen",
"Stein",
"Strals",
"Straus",
u8"S\u00fcd",
"S\u00fcd",
"Ton",
"Ur",
@@ -574,14 +574,14 @@ static const char * const _name_german_1
"Wester",
"Witten",
"Wolfs",
u8"W\u00fcrz",
"W\u00fcrz",
static const char * const _name_german_2[] = {
"bach",
"berg",
u8"br\u00fcck",
u8"br\u00fccken",
"br\u00fcck",
"br\u00fccken",
"burg",
"dorf",
"feld",
@@ -591,7 +591,7 @@ static const char * const _name_german_2
"heim",
"horst",
"mund",
u8"m\u00fcnster",
"m\u00fcnster",
"stadt",
"wald",
@@ -625,9 +625,9 @@ static const char * const _name_spanish_
"Morrocoy",
"Cata",
"Cataito",
u8"Ciudad Bol\u00edvar",
"Ciudad Bol\u00edvar",
"Barquisimeto",
u8"M\u00e9rida",
"M\u00e9rida",
"Puerto Ordaz",
"Santa Elena",
"San Juan",
@@ -636,58 +636,58 @@ static const char * const _name_spanish_
"Santiago",
"Barcelona",
"Barinas",
u8"San Crist\u00f3bal",
"San Crist\u00f3bal",
"San Francisco",
u8"San Mart\u00edn",
"San Mart\u00edn",
"Guayana",
"San Carlos",
u8"El Lim\u00f3n",
"El Lim\u00f3n",
"Coro",
"Coro Coro",
"Puerto Ayacucho",
"Elorza",
"Arismendi",
"Trujillo",
u8"Car\u00fapano",
"Car\u00fapano",
"Anaco",
"Lima",
"Cuzco",
"Iquitos",
"Callao",
"Huacho",
u8"Caman\u00e1",
"Caman\u00e1",
"Puerto Chala",
"Santa Cruz",
"Quito",
"Cuenca",
u8"Medell\u00edn",
u8"Tulc\u00e1n",
"Medell\u00edn",
"Tulc\u00e1n",
"Esmeraldas",
"Ibarra",
"San Lorenzo",
"Macas",
u8"Mora\u00f1a",
"Mora\u00f1a",
"Machala",
"Zamora",
"Latacunga",
"Tena",
"Cochabamba",
u8"Ascensi\u00f3n",
"Ascensi\u00f3n",
"Magdalena",
"Santa Ana",
"Manoa",
"Sucre",
"Oruro",
"Uyuni",
u8"Potos\u00ed",
"Potos\u00ed",
"Tupiza",
"La Quiaca",
u8"Yacu\u00edba",
"Yacu\u00edba",
"San Borja",
"Fuerte Olimpo",
u8"Fort\u00edn Esteros",
"Fort\u00edn Esteros",
"Campo Grande",
u8"Bogot\u00e1",
"Bogot\u00e1",
"El Banco",
"Zaragoza",
"Neiva",
@@ -715,7 +715,7 @@ static const char * const _name_french_r
"Bordeaux",
"Bayonne",
"Montpellier",
u8"Mont\u00e9limar",
"Mont\u00e9limar",
"Valence",
"Digne",
"Nice",
@@ -723,16 +723,16 @@ static const char * const _name_french_r
"St. Tropez",
"Marseille",
"Narbonne",
u8"S\u00e8te",
"S\u00e8te",
"Aurillac",
u8"Gu\u00e9ret",
"Gu\u00e9ret",
"Le Creusot",
"Nevers",
"Auxerre",
"Versailles",
"Meaux",
u8"Ch\u00e2lons",
u8"Compi\u00e8gne",
"Ch\u00e2lons",
"Compi\u00e8gne",
"Metz",
"Chaumont",
"Langres",
@@ -745,8 +745,8 @@ static const char * const _name_french_r
"Le Mans",
"Angers",
"Nantes",
u8"Ch\u00e2teauroux",
u8"Orl\u00e9ans",
"Ch\u00e2teauroux",
"Orl\u00e9ans",
"Lisieux",
"Cherbourg",
"Morlaix",
@@ -757,7 +757,7 @@ static const char * const _name_french_r
"Troyes",
"Charolles",
"Toulouse",
u8"Chamb\u00e9ry",
"Chamb\u00e9ry",
"Tours",
"St. Brieuc",
"St. Malo",
@@ -771,11 +771,11 @@ static const char * const _name_french_r
"Albi",
"Paris",
"Biarritz",
u8"B\u00e9ziers",
u8"N\u00eemes",
"B\u00e9ziers",
"N\u00eemes",
"Chamonix",
u8"Angoul\u00e8me",
u8"Alen\u00e7on",
"Angoul\u00e8me",
"Alen\u00e7on",
static const char * const _name_silly_1[] = {
@@ -903,7 +903,7 @@ static const char * const _name_swedish_
"Es",
"Fin",
"Fisk",
u8"Gr\u00f6n",
"Gr\u00f6n",
"Hag",
"Halm",
"Karl",
@@ -922,17 +922,17 @@ static const char * const _name_swedish_
"Skog",
"Stock",
"Stor",
u8"Str\u00f6m",
"Str\u00f6m",
"Sund",
u8"S\u00f6der",
"S\u00f6der",
"Tall",
"Tratt",
"Troll",
"Upp",
"Var",
u8"V\u00e4ster",
u8"\u00c4ngel",
u8"\u00d6ster",
"V\u00e4ster",
"\u00c4ngel",
"\u00d6ster",
static const char * const _name_swedish_2a[] = {
@@ -987,9 +987,9 @@ static const char * const _name_swedish_
"o",
"u",
"y",
u8"\u00e5",
u8"\u00e4",
u8"\u00f6",
"\u00e5",
"\u00e4",
"\u00f6",
static const char * const _name_swedish_2c[] = {
@@ -1035,25 +1035,25 @@ static const char * const _name_swedish_
"hamn",
"holm",
"hus",
u8"h\u00e4ttan",
"h\u00e4ttan",
"kulle",
u8"k\u00f6ping",
"k\u00f6ping",
"lund",
u8"l\u00f6v",
"l\u00f6v",
"sala",
"skrona",
u8"sl\u00e4tt",
u8"sp\u00e5ng",
"sl\u00e4tt",
"sp\u00e5ng",
"stad",
"sund",
"svall",
"svik",
u8"s\u00e5ker",
"s\u00e5ker",
"udde",
"valla",
"viken",
u8"\u00e4lv",
u8"\u00e5s",
"\u00e4lv",
"\u00e5s",
static const char * const _name_dutch_1[] = {
@@ -1220,7 +1220,7 @@ static const char * const _name_finnish_
"Espoo",
"Helsinki",
"Tapiola",
u8"J\u00e4rvel\u00e4",
"J\u00e4rvel\u00e4",
"Lahti",
"Kotka",
"Hamina",
@@ -1255,26 +1255,26 @@ static const char * const _name_finnish_
"Sauna",
"Uusi",
"Vanha",
u8"Kes\u00e4",
"Kes\u00e4",
"Kuusi",
"Pelto",
"Tuomi",
"Terva",
"Olki",
u8"Hein\u00e4",
u8"Sein\u00e4",
"Hein\u00e4",
"Sein\u00e4",
"Rova",
"Koivu",
"Kokko",
u8"M\u00e4nty",
"M\u00e4nty",
"Pihlaja",
u8"Pet\u00e4j\u00e4",
"Pet\u00e4j\u00e4",
"Kielo",
"Kauha",
"Viita",
"Kivi",
"Riihi",
u8"\u00c4\u00e4ne",
"\u00c4\u00e4ne",
"Niini",
@@ -1283,27 +1283,27 @@ static const char * const _name_finnish_
"Lohjan",
"Savon",
"Lapin",
u8"Pit\u00e4j\u00e4n",
"Pit\u00e4j\u00e4n",
"Martin",
"Kuusan",
"Kemi",
"Keri",
u8"H\u00e4meen",
"H\u00e4meen",
"Kangas",
static const char * const _name_finnish_3[] = {
"harju",
"linna",
u8"j\u00e4rvi",
"j\u00e4rvi",
"kallio",
u8"m\u00e4ki",
"m\u00e4ki",
"nummi",
"joki",
u8"kyl\u00e4",
"kyl\u00e4",
"lampi",
"lahti",
u8"mets\u00e4",
"mets\u00e4",
"suo",
"laakso",
"niitty",
@@ -1316,56 +1316,56 @@ static const char * const _name_finnish_
static const char * const _name_polish_1_m[] = {
"Wielki ",
u8"Ma\u0142y ",
u8"Z\u0142y ",
"Ma\u0142y ",
"Z\u0142y ",
"Dobry ",
"Nowy ",
"Stary ",
u8"Z\u0142oty ",
"Z\u0142oty ",
"Zielony ",
u8"Bia\u0142y ",
"Bia\u0142y ",
"Modry ",
u8"D\u0119bowy ",
"D\u0119bowy ",
static const char * const _name_polish_1_f[] = {
"Wielka ",
u8"Ma\u0142a ",
u8"Z\u0142a ",
"Ma\u0142a ",
"Z\u0142a ",
"Dobra ",
"Nowa ",
"Stara ",
u8"Z\u0142ota ",
"Z\u0142ota ",
"Zielona ",
u8"Bia\u0142a ",
"Bia\u0142a ",
"Modra ",
u8"D\u0119bowa ",
"D\u0119bowa ",
static const char * const _name_polish_1_n[] = {
"Wielkie ",
u8"Ma\u0142e ",
u8"Z\u0142e ",
"Ma\u0142e ",
"Z\u0142e ",
"Dobre ",
"Nowe ",
"Stare ",
u8"Z\u0142ote ",
"Z\u0142ote ",
"Zielone ",
u8"Bia\u0142e ",
"Bia\u0142e ",
"Modre ",
u8"D\u0119bowe ",
"D\u0119bowe ",
static const char * const _name_polish_2_o[] = {
"Frombork",
"Gniezno",
"Olsztyn",
u8"Toru\u0144",
"Toru\u0144",
"Bydgoszcz",
"Terespol",
u8"Krak\u00f3w",
u8"Pozna\u0144",
u8"Wroc\u0142aw",
"Krak\u00f3w",
"Pozna\u0144",
"Wroc\u0142aw",
"Katowice",
"Cieszyn",
"Bytom",
@@ -1376,7 +1376,7 @@ static const char * const _name_polish_2
"Malbork",
"Sopot",
"Sosnowiec",
u8"Gda\u0144sk",
"Gda\u0144sk",
"Gdynia",
"Sieradz",
"Sandomierz",
@@ -1384,9 +1384,9 @@ static const char * const _name_polish_2
"Szczytno",
"Szczecin",
"Zakopane",
u8"Szklarska Por\u0119ba",
"Szklarska Por\u0119ba",
"Bochnia",
u8"Golub-Dobrzy\u0144",
"Golub-Dobrzy\u0144",
"Chojnice",
"Ostrowiec",
"Otwock",
@@ -1396,13 +1396,13 @@ static const char * const _name_polish_2
static const char * const _name_polish_2_m[] = {
"Jarocin",
"Gogolin",
u8"Tomasz\u00f3w",
u8"Piotrk\u00f3w",
"Tomasz\u00f3w",
"Piotrk\u00f3w",
"Lidzbark",
"Rypin",
"Radzymin",
u8"Wo\u0142omin",
u8"Pruszk\u00f3w",
"Wo\u0142omin",
"Pruszk\u00f3w",
"Olsztynek",
"Cisek",
@@ -1412,7 +1412,7 @@ static const char * const _name_polish_2
"Lubicz",
"Milicz",
"Targ",
u8"Ostr\u00f3w",
"Ostr\u00f3w",
"Ozimek",
"Puck",
"Rzepin",
@@ -1425,7 +1425,7 @@ static const char * const _name_polish_2
"Strzepcz",
"Strzebielin",
"Sochaczew",
u8"Gr\u0119bocin",
"Gr\u0119bocin",
"Gniew",
"Lubliniec",
"Lubasz",
@@ -1447,7 +1447,7 @@ static const char * const _name_polish_2
static const char * const _name_polish_2_f[] = {
"Szprotawa",
"Pogorzelica",
u8"Mot\u0142awa",
"Mot\u0142awa",
"Lubawa",
"Nidzica",
"Kruszwica",
@@ -1501,7 +1501,7 @@ static const char * const _name_polish_2
"Braniewo",
"Sulinowo",
"Chmielno",
u8"Jastrz\u0119bie",
"Jastrz\u0119bie",
"Gryfino",
"Koronowo",
"Lubichowo",
@@ -1510,182 +1510,182 @@ static const char * const _name_polish_2
static const char * const _name_polish_3_m[] = {
" Wybudowanie",
u8" \u015awi\u0119tokrzyski",
u8" G\u00f3rski",
" \u015awi\u0119tokrzyski",
" G\u00f3rski",
" Morski",
u8" Zdr\u00f3j",
" Zdr\u00f3j",
" Wody",
" Bajoro",
u8" Kraje\u0144ski",
u8" \u015al\u0105ski",
" Kraje\u0144ski",
" \u015al\u0105ski",
" Mazowiecki",
" Pomorski",
" Wielki",
" Maly",
u8" Warmi\u0144ski",
" Warmi\u0144ski",
" Mazurski",
" Mniejszy",
u8" Wi\u0119kszy",
u8" G\u00f3rny",
" Wi\u0119kszy",
" G\u00f3rny",
" Dolny",
" Stary",
" Nowy",
" Wielkopolski",
u8" Wzg\u00f3rze",
" Wzg\u00f3rze",
" Mosty",
" Kujawski",
u8" Ma\u0142opolski",
" Ma\u0142opolski",
" Podlaski",
" Lesny",
static const char * const _name_polish_3_f[] = {
u8" \u015awi\u0119tokrzyska",
u8" G\u00f3rska",
" \u015awi\u0119tokrzyska",
" G\u00f3rska",
" Morska",
" Woda",
u8" Kraje\u0144ska",
u8" \u015al\u0105ska",
" Kraje\u0144ska",
" \u015al\u0105ska",
" Mazowiecka",
" Pomorska",
" Wielka",
u8" Ma\u0142a",
u8" Warmi\u0144ska",
" Ma\u0142a",
" Warmi\u0144ska",
" Mazurska",
" Mniejsza",
u8" Wi\u0119ksza",
u8" G\u00f3rna",
" Wi\u0119ksza",
" G\u00f3rna",
" Dolna",
" Stara",
" Nowa",
" Wielkopolska",
u8" Wzg\u00f3rza",
" Wzg\u00f3rza",
" Kujawska",
" Malopolska",
" Podlaska",
u8" Le\u015bna",
" Le\u015bna",
static const char * const _name_polish_3_n[] = {
u8" \u015awietokrzyskie",
u8" G\u00f3rskie",
" \u015awietokrzyskie",
" G\u00f3rskie",
" Morskie",
u8" Kraje\u0144skie",
u8" \u015al\u0105skie",
" Kraje\u0144skie",
" \u015al\u0105skie",
" Mazowieckie",
" Pomorskie",
" Wielkie",
u8" Ma\u0142e",
u8" Warmi\u0144skie ",
" Ma\u0142e",
" Warmi\u0144skie ",
" Mazurskie ",
" Mniejsze",
u8" Wi\u0119ksze",
u8" G\u00f3rne",
" Wi\u0119ksze",
" G\u00f3rne",
" Dolne",
" Stare",
" Nowe",
" Wielkopolskie",
" Kujawskie",
u8" Ma\u0142opolskie",
" Ma\u0142opolskie",
" Podlaskie",
u8" Le\u015bne",
" Le\u015bne",
static const char * const _name_czech_real[] = {
u8"A\u0161",
u8"Bene\u0161ov",
"A\u0161",
"Bene\u0161ov",
"Beroun",
u8"Bezdru\u017eice",
"Bezdru\u017eice",
"Blansko",
u8"B\u0159eclav",
"B\u0159eclav",
"Brno",
u8"Brunt\u00e1l",
u8"\u010cesk\u00e1 L\u00edpa",
u8"\u010cesk\u00e9 Bud\u011bjovice",
u8"\u010cesk\u00fd Krumlov",
u8"D\u011b\u010d\u00edn",
u8"Doma\u017elice",
u8"Dub\u00ed",
u8"Fr\u00fddek-M\u00edstek",
u8"Havl\u00ed\u010dk\u016fv Brod",
u8"Hodon\u00edn",
u8"Hradec Kr\u00e1lov\u00e9",
"Brunt\u00e1l",
"\u010cesk\u00e1 L\u00edpa",
"\u010cesk\u00e9 Bud\u011bjovice",
"\u010cesk\u00fd Krumlov",
"D\u011b\u010d\u00edn",
"Doma\u017elice",
"Dub\u00ed",
"Fr\u00fddek-M\u00edstek",
"Havl\u00ed\u010dk\u016fv Brod",
"Hodon\u00edn",
"Hradec Kr\u00e1lov\u00e9",
"Humpolec",
"Cheb",
"Chomutov",
"Chrudim",
"Jablonec nad Nisou",
u8"Jesen\u00edk",
u8"Ji\u010d\u00edn",
"Jesen\u00edk",
"Ji\u010d\u00edn",
"Jihlava",
u8"Jind\u0159ich\u016fv Hradec",
"Jind\u0159ich\u016fv Hradec",
"Karlovy Vary",
u8"Karvin\u00e1",
"Karvin\u00e1",
"Kladno",
"Klatovy",
u8"Kol\u00edn",
"Kol\u00edn",
"Kosmonosy",
u8"Krom\u011b\u0159\u00ed\u017e",
u8"Kutn\u00e1 Hora",
"Krom\u011b\u0159\u00ed\u017e",
"Kutn\u00e1 Hora",
"Liberec",
u8"Litom\u011b\u0159ice",
"Litom\u011b\u0159ice",
"Louny",
u8"Man\u011bt\u00edn",
u8"M\u011bln\u00edk",
u8"Mlad\u00e1 Boleslav",
"Man\u011bt\u00edn",
"M\u011bln\u00edk",
"Mlad\u00e1 Boleslav",
"Most",
u8"N\u00e1chod",
u8"Nov\u00fd Ji\u010d\u00edn",
"N\u00e1chod",
"Nov\u00fd Ji\u010d\u00edn",
"Nymburk",
"Olomouc",
"Opava",
u8"Or\u00e1\u010dov",
"Or\u00e1\u010dov",
"Ostrava",
"Pardubice",
u8"Pelh\u0159imov",
u8"Pol\u017eice",
u8"P\u00edsek",
u8"Plze\u0148",
"Pelh\u0159imov",
"Pol\u017eice",
"P\u00edsek",
"Plze\u0148",
"Praha",
"Prachatice",
u8"P\u0159erov",
u8"P\u0159\u00edbram",
u8"Prost\u011bjov",
u8"Rakovn\u00edk",
"P\u0159erov",
"P\u0159\u00edbram",
"Prost\u011bjov",
"Rakovn\u00edk",
"Rokycany",
u8"Rudn\u00e1",
u8"Rychnov nad Kn\u011b\u017enou",
"Rudn\u00e1",
"Rychnov nad Kn\u011b\u017enou",
"Semily",
"Sokolov",
"Strakonice",
u8"St\u0159edokluky",
u8"\u0160umperk",
"St\u0159edokluky",
"\u0160umperk",
"Svitavy",
u8"T\u00e1bor",
"T\u00e1bor",
"Tachov",
"Teplice",
u8"T\u0159eb\u00ed\u010d",
"T\u0159eb\u00ed\u010d",
"Trutnov",
u8"Uhersk\u00e9 Hradi\u0161t\u011b",
u8"\u00dast\u00ed nad Labem",
u8"\u00dast\u00ed nad Orlic\u00ed",
u8"Vset\u00edn",
u8"Vy\u0161kov",
u8"\u017d\u010f\u00e1r nad S\u00e1zavou",
u8"Zl\u00edn",
"Uhersk\u00e9 Hradi\u0161t\u011b",
"\u00dast\u00ed nad Labem",
"\u00dast\u00ed nad Orlic\u00ed",
"Vset\u00edn",
"Vy\u0161kov",
"\u017d\u010f\u00e1r nad S\u00e1zavou",
"Zl\u00edn",
"Znojmo",
@@ -1719,12 +1719,12 @@ enum CzechPattern {
* by this.
* XXX: [CZG_SMASC][CZP_PRIVL] needs special handling: -ovX -> -uv. */
static const char * const _name_czech_patmod[][3] = {
/* CZG_SMASC */ { u8"\u00ed", u8"\u00fd", "X" },
/* CZG_SFEM */ { u8"\u00ed", u8"\u00e1", "a" },
/* CZG_SNEUT */ { u8"\u00ed", u8"\u00e9", "o" },
/* CZG_PMASC */ { u8"\u00ed", u8"\u00e9", "y" },
/* CZG_PFEM */ { u8"\u00ed", u8"\u00e9", "y" },
/* CZG_PNEUT */ { u8"\u00ed", u8"\u00e1", "a" }
/* CZG_SMASC */ { "\u00ed", "\u00fd", "X" },
/* CZG_SFEM */ { "\u00ed", "\u00e1", "a" },
/* CZG_SNEUT */ { "\u00ed", "\u00e9", "o" },
/* CZG_PMASC */ { "\u00ed", "\u00e9", "y" },
/* CZG_PFEM */ { "\u00ed", "\u00e9", "y" },
/* CZG_PNEUT */ { "\u00ed", "\u00e1", "a" }
/* This way the substantive can choose only some adjectives/endings:
@@ -1764,52 +1764,52 @@ struct CzechNameAdj {
/* Some of items which should be common are doubled. */
static const CzechNameAdj _name_czech_adj[] = {
{ CZP_JARNI, CZC_ANY, u8"Horn\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"Doln\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"P\u0159edn\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"Zadn\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"Kosteln\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"Havran\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"\u0158\u00ed\u010dn\u00ed" },
{ CZP_JARNI, CZC_ANY, u8"Jezern\u00ed" },
{ CZP_MLADY, CZC_ANY, u8"Velk\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Mal\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Vysok\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"\u010cesk\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Moravsk\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Slov\u00e1ck\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Slezsk\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Uhersk\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Star\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Nov\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Mlad\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Kr\u00e1lovsk\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Kamenn\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Cihlov\u00fd" },
{ CZP_MLADY, CZC_ANY, u8"Divn\u00fd" },
{ CZP_MLADY, CZC_COLOR, u8"\u010cerven\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"Zelen\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"\u017dlut\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"Siv\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"\u0160ed\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"B\u00edl\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"Modr\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"R\u016f\u017eov\u00e1" },
{ CZP_MLADY, CZC_COLOR, u8"\u010cern\u00e1" },
{ CZP_PRIVL, CZC_ANY, u8"Kr\u00e1lova" },
{ CZP_JARNI, CZC_ANY, "Horn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Doln\u00ed" },
{ CZP_JARNI, CZC_ANY, "P\u0159edn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Zadn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Kosteln\u00ed" },
{ CZP_JARNI, CZC_ANY, "Havran\u00ed" },
{ CZP_JARNI, CZC_ANY, "\u0158\u00ed\u010dn\u00ed" },
{ CZP_JARNI, CZC_ANY, "Jezern\u00ed" },
{ CZP_MLADY, CZC_ANY, "Velk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Mal\u00fd" },
{ CZP_MLADY, CZC_ANY, "Vysok\u00fd" },
{ CZP_MLADY, CZC_ANY, "\u010cesk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Moravsk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Slov\u00e1ck\u00fd" },
{ CZP_MLADY, CZC_ANY, "Slezsk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Uhersk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Star\u00fd" },
{ CZP_MLADY, CZC_ANY, "Nov\u00fd" },
{ CZP_MLADY, CZC_ANY, "Mlad\u00fd" },
{ CZP_MLADY, CZC_ANY, "Kr\u00e1lovsk\u00fd" },
{ CZP_MLADY, CZC_ANY, "Kamenn\u00fd" },
{ CZP_MLADY, CZC_ANY, "Cihlov\u00fd" },
{ CZP_MLADY, CZC_ANY, "Divn\u00fd" },
{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
{ CZP_MLADY, CZC_COLOR, "Zelen\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u017dlut\u00e1" },
{ CZP_MLADY, CZC_COLOR, "Siv\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u0160ed\u00e1" },
{ CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
{ CZP_MLADY, CZC_COLOR, "Modr\u00e1" },
{ CZP_MLADY, CZC_COLOR, "R\u016f\u017eov\u00e1" },
{ CZP_MLADY, CZC_COLOR, "\u010cern\u00e1" },
{ CZP_PRIVL, CZC_ANY, "Kr\u00e1lova" },
{ CZP_PRIVL, CZC_ANY, "Janova" },
{ CZP_PRIVL, CZC_ANY, "Karlova" },
{ CZP_PRIVL, CZC_ANY, u8"Kry\u0161tofova" },
{ CZP_PRIVL, CZC_ANY, u8"Ji\u0159\u00edkova" },
{ CZP_PRIVL, CZC_ANY, "Kry\u0161tofova" },
{ CZP_PRIVL, CZC_ANY, "Ji\u0159\u00edkova" },
{ CZP_PRIVL, CZC_ANY, "Petrova" },
{ CZP_PRIVL, CZC_ANY, "Sudovo" },
@@ -1819,17 +1819,17 @@ static const CzechNameSubst _name_czech_
{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Sedlec" },
{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Brod" },
{ CZG_SMASC, CZA_ALL, CZC_NONE, u8"\u00daval" },
{ CZG_SMASC, CZA_ALL, CZC_COLOR, u8"\u017d\u010f\u00e1r" },
{ CZG_SMASC, CZA_ALL, CZC_NONE, "\u00daval" },
{ CZG_SMASC, CZA_ALL, CZC_COLOR, "\u017d\u010f\u00e1r" },
{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Smrk" },
{ CZG_SFEM, CZA_ALL, CZC_COLOR, "Hora" },
{ CZG_SFEM, CZA_ALL, CZC_COLOR, "Lhota" },
{ CZG_SFEM, CZA_ALL, CZC_COLOR, "Hlava" },
{ CZG_SFEM, CZA_ALL, CZC_COLOR, u8"L\u00edpa" },
{ CZG_SFEM, CZA_ALL, CZC_COLOR, "L\u00edpa" },
{ CZG_SNEUT, CZA_ALL, CZC_COLOR, "Pole" },
{ CZG_SNEUT, CZA_ALL, CZC_COLOR, u8"\u00dadol\u00ed" },
{ CZG_PMASC, CZA_ALL, CZC_NONE, u8"\u00davaly" },
{ CZG_SNEUT, CZA_ALL, CZC_COLOR, "\u00dadol\u00ed" },
{ CZG_PMASC, CZA_ALL, CZC_NONE, "\u00davaly" },
{ CZG_PFEM, CZA_ALL, CZC_COLOR, "Luka" },
{ CZG_PNEUT, CZA_ALL, CZC_COLOR, "Pole" },
@@ -1837,46 +1837,46 @@ static const CzechNameSubst _name_czech_
/* TODO: More stems needed. --pasky */
static const CzechNameSubst _name_czech_subst_stem[] = {
{ CZG_SMASC, CZA_MIDDLE, CZC_COLOR, "Kostel" },
{ CZG_SMASC, CZA_MIDDLE, CZC_COLOR, u8"Kl\u00e1\u0161ter" },
{ CZG_SMASC, CZA_MIDDLE, CZC_COLOR, "Kl\u00e1\u0161ter" },
{ CZG_SMASC, CZA_SHORT, CZC_COLOR, "Lhot" },
{ CZG_SFEM, CZA_SHORT, CZC_COLOR, "Lhot" },
{ CZG_SFEM, CZA_SHORT, CZC_COLOR, "Hur" },
{ CZG_FREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Sedl" },
{ CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_COLOR, "Hrad" },
{ CZG_NFREE, CZA_MIDDLE, CZC_NONE, "Pras" },
{ CZG_NFREE, CZA_MIDDLE, CZC_NONE, u8"Ba\u017e" },
{ CZG_NFREE, CZA_MIDDLE, CZC_NONE, "Ba\u017e" },
{ CZG_NFREE, CZA_MIDDLE, CZC_NONE, "Tes" },
{ CZG_NFREE, CZA_MIDDLE, CZC_NONE, u8"U\u017e" },
{ CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_POSTFIX, u8"B\u0159" },
{ CZG_NFREE, CZA_MIDDLE, CZC_NONE, "U\u017e" },
{ CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_POSTFIX, "B\u0159" },
{ CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Vod" },
{ CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Jan" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Prach" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Kunr" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Strak" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, u8"V\u00edt" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, u8"Vy\u0161" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, u8"\u017dat" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, u8"\u017der" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, u8"St\u0159ed" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "V\u00edt" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Vy\u0161" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "\u017dat" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "\u017der" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "St\u0159ed" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Harv" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Pruh" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Tach" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, u8"P\u00edsn" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "P\u00edsn" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Jin" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Jes" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Jar" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Sok" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Hod" },
{ CZG_NFREE, CZA_LONG, CZC_NONE, "Net" },
{ CZG_FREE, CZA_LONG, CZC_NONE, u8"Pra\u017e" },
{ CZG_FREE, CZA_LONG, CZC_NONE, "Pra\u017e" },
{ CZG_FREE, CZA_LONG, CZC_NONE, "Nerat" },
{ CZG_FREE, CZA_LONG, CZC_NONE, "Kral" },
{ CZG_FREE, CZA_LONG, CZC_NONE, "Hut" },
{ CZG_FREE, CZA_LONG, CZC_NOPOSTFIX, "Pan" },
{ CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NOPOSTFIX, u8"Odst\u0159ed" },
{ CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NOPOSTFIX, "Odst\u0159ed" },
{ CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_COLOR, "Mrat" },
{ CZG_FREE, CZA_LONG, CZC_COLOR, "Hlav" },
{ CZG_FREE, CZA_SHORT | CZA_MIDDLE, CZC_NONE, u8"M\u011b\u0159" },
{ CZG_FREE, CZA_SHORT | CZA_MIDDLE, CZC_NONE, "M\u011b\u0159" },
{ CZG_FREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Lip" },
@@ -1890,47 +1890,47 @@ static const char * const _name_czech_su
/* This array must have the both neutral genders at the end! */
static const CzechNameSubst _name_czech_subst_ending[] = {
{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "ec" },
{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE, CZC_ANY, u8"\u00edn" },
{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "\u00edn" },
{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ov" },
{ CZG_SMASC, CZA_SHORT | CZA_LONG, CZC_ANY, "kov" },
{ CZG_SMASC, CZA_LONG, CZC_POSTFIX, u8"\u00edn" },
{ CZG_SMASC, CZA_LONG, CZC_POSTFIX, u8"n\u00edk" },
{ CZG_SMASC, CZA_LONG, CZC_POSTFIX, "\u00edn" },
{ CZG_SMASC, CZA_LONG, CZC_POSTFIX, "n\u00edk" },
{ CZG_SMASC, CZA_LONG, CZC_ANY, "burk" },
{ CZG_SFEM, CZA_SHORT, CZC_ANY, "ka" },
{ CZG_SFEM, CZA_MIDDLE, CZC_ANY, "inka" },
{ CZG_SFEM, CZA_MIDDLE, CZC_ANY, u8"n\u00e1" },
{ CZG_SFEM, CZA_MIDDLE, CZC_ANY, "n\u00e1" },
{ CZG_SFEM, CZA_LONG, CZC_ANY, "ava" },
{ CZG_PMASC, CZA_LONG, CZC_POSTFIX, u8"\u00edky" },
{ CZG_PMASC, CZA_LONG, CZC_POSTFIX, "\u00edky" },
{ CZG_PMASC, CZA_LONG, CZC_ANY, "upy" },
{ CZG_PMASC, CZA_LONG, CZC_ANY, "olupy" },
{ CZG_PFEM, CZA_LONG, CZC_ANY, "avy" },
{ CZG_PFEM, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ice" },
{ CZG_PFEM, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, u8"i\u010dky" },
{ CZG_PFEM, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "i\u010dky" },
{ CZG_PNEUT, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "na" },
{ CZG_SNEUT, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "no" },
{ CZG_SNEUT, CZA_LONG, CZC_ANY, u8"i\u0161t\u011b" },
{ CZG_SNEUT, CZA_LONG, CZC_ANY, "i\u0161t\u011b" },
static const char * const _name_czech_suffix[] = {
"nad Cidlinou",
u8"nad Dyj\u00ed",
"nad Dyj\u00ed",
"nad Jihlavou",
"nad Labem",
"nad Lesy",
"nad Moravou",
"nad Nisou",
"nad Odrou",
u8"nad Ostravic\u00ed",
u8"nad S\u00e1zavou",
"nad Ostravic\u00ed",
"nad S\u00e1zavou",
"nad Vltavou",
u8"pod Prad\u011bdem",
u8"pod Radho\u0161t\u011bm",
u8"pod \u0158\u00edpem",
u8"pod Sn\u011b\u017ekou",
u8"pod \u0160pi\u010d\u00e1kem",
"pod Prad\u011bdem",
"pod Radho\u0161t\u011bm",
"pod \u0158\u00edpem",
"pod Sn\u011b\u017ekou",
"pod \u0160pi\u010d\u00e1kem",
"pod Sedlem",
u8"v \u010cech\u00e1ch",
u8"na Morav\u011b",
"v \u010cech\u00e1ch",
"na Morav\u011b",
@@ -1940,197 +1940,197 @@ static const char * const _name_romanian
"Alba Iulia",
"Alexandria",
"Babadag",
u8"Bac\u0103u",
"Bac\u0103u",
"Baia Mare",
u8"B\u0103ile Herculane",
u8"B\u0103ile\u0219ti",
u8"B\u00e2rlad",
"B\u0103ile Herculane",
"B\u0103ile\u0219ti",
"B\u00e2rlad",
"Bicaz",
u8"Bistri\u021ba",
"Bistri\u021ba",
"Blaj",
"Borsec",
u8"Boto\u0219ani",
u8"Br\u0103ila",
u8"Bra\u0219ov",
u8"Bucure\u0219ti",
"Boto\u0219ani",
"Br\u0103ila",
"Bra\u0219ov",
"Bucure\u0219ti",
"Buftea",
u8"Buz\u0103u",
u8"C\u0103l\u0103ra\u0219i",
u8"Caransebe\u0219",
u8"Cernavod\u0103",
"Buz\u0103u",
"C\u0103l\u0103ra\u0219i",
"Caransebe\u0219",
"Cernavod\u0103",
"Cluj-Napoca",
u8"Constan\u021ba",
"Constan\u021ba",
"Covasna",
"Craiova",
"Dej",
"Deva",
"Dorohoi",
"Drobeta-Turnu Severin",
u8"Dr\u0103g\u0103\u0219ani",
u8"F\u0103g\u0103ra\u0219",
u8"F\u0103lticeni",
u8"Fete\u0219ti",
u8"Foc\u0219ani",
u8"Gala\u021bi",
"Dr\u0103g\u0103\u0219ani",
"F\u0103g\u0103ra\u0219",
"F\u0103lticeni",
"Fete\u0219ti",
"Foc\u0219ani",
"Gala\u021bi",
"Gheorgheni",
"Giurgiu",
u8"H\u00e2r\u0219ova",
"H\u00e2r\u0219ova",
"Hunedoara",
u8"Hu\u0219i",
u8"Ia\u0219i",
"Hu\u0219i",
"Ia\u0219i",
"Isaccea",
"Lugoj",
u8"M\u0103cin",
"M\u0103cin",
"Mangalia",
"Medgidia",
u8"Media\u0219",
"Media\u0219",
"Miercurea Ciuc",
"Mizil",
"Motru",
u8"N\u0103s\u0103ud",
u8"N\u0103vodari",
u8"Odobe\u0219ti",
u8"Olteni\u021ba",
u8"One\u0219ti",
"N\u0103s\u0103ud",
"N\u0103vodari",
"Odobe\u0219ti",
"Olteni\u021ba",
"One\u0219ti",
"Oradea",
u8"Or\u0219ova",
u8"Petro\u0219ani",
u8"Piatra Neam\u021b",
u8"Pite\u0219ti",
u8"Ploie\u0219ti",
"Or\u0219ova",
"Petro\u0219ani",
"Piatra Neam\u021b",
"Pite\u0219ti",
"Ploie\u0219ti",
"Predeal",
u8"R\u00e2mnicu V\u00e2lcea",
"R\u00e2mnicu V\u00e2lcea",
"Reghin",
u8"Re\u0219i\u021ba",
"Re\u0219i\u021ba",
"Roman",
u8"Ro\u0219iorii de Vede",
"Ro\u0219iorii de Vede",
"Satu Mare",
u8"Sebe\u0219",
u8"Sf\u00e2ntu Gheorghe",
"Sebe\u0219",
"Sf\u00e2ntu Gheorghe",
"Sibiu",
u8"Sighi\u0219oara",
"Sighi\u0219oara",
"Sinaia",
"Slatina",
"Slobozia",
"Sovata",
"Suceava",
"Sulina",
u8"\u021a\u0103nd\u0103rei",
u8"T\u00e2rgovi\u0219te",
u8"T\u00e2rgu Jiu",
u8"T\u00e2rgu Mure\u0219",
"\u021a\u0103nd\u0103rei",
"T\u00e2rgovi\u0219te",
"T\u00e2rgu Jiu",
"T\u00e2rgu Mure\u0219",
"Tecuci",
u8"Timi\u0219oara",
"Timi\u0219oara",
"Tulcea",
"Turda",
u8"Turnu M\u0103gurele",
"Turnu M\u0103gurele",
"Urziceni",
"Vaslui",
"Vatra Dornei",
"Victoria",
"Videle",
u8"Zal\u0103u",
"Zal\u0103u",
static const char * const _name_slovak_real[] = {
"Bratislava",
u8"B\u00e1novce nad Bebravou",
u8"Bansk\u00e1 Bystrica",
u8"Bansk\u00e1 \u0160tiavnica",
"B\u00e1novce nad Bebravou",
"Bansk\u00e1 Bystrica",
"Bansk\u00e1 \u0160tiavnica",
"Bardejov",
"Brezno",
"Brezova pod Bradlom",
u8"Byt\u010da",
u8"\u010cadca",
u8"\u010cierna nad Tisou",
"Byt\u010da",
"\u010cadca",
"\u010cierna nad Tisou",
"Detva",
u8"Pre\u0161ov",
"Pre\u0161ov",
"Dolny Kubin",
u8"Spi\u0161sk\u00e1 Nov\u00e1 Ves",
u8"Dunajsk\u00e1 Streda",
u8"Gab\u010d\u00edikovo",
"Spi\u0161sk\u00e1 Nov\u00e1 Ves",
"Dunajsk\u00e1 Streda",
"Gab\u010d\u00edikovo",
"Galanta",
"Gbely",
"Gelnica",
u8"Handlov\u00e1",
"Handlov\u00e1",
"Hlohovec",
u8"Hol\u00ed\u010d",
u8"Humenn\u00e9",
"Hol\u00ed\u010d",
"Humenn\u00e9",
"Hurbanovo",
"Kezmarok",
u8"Kom\u00e1rno",
u8"Ko\u0161ice",
"Kom\u00e1rno",
"Ko\u0161ice",
"Kremnica",
"Krompachy",
"Kuty",
"Leopoldov",
u8"Levo\u010da",
u8"Liptovsk\u00fd Mikul\u00e1\u0161",
u8"Lu\u010denec",
"Levo\u010da",
"Liptovsk\u00fd Mikul\u00e1\u0161",
"Lu\u010denec",
"Malacky",
"Medzilaborce",
"Michalovce",
"Modra",
"Myjava",
u8"N\u00e1mestovo",
"N\u00e1mestovo",
"Nitra",
u8"Nov\u00e1 Ba\u0148a",
u8"Nov\u00e9 Mesto nad V\u00e1hom",
u8"Nov\u00e9 Z\u00e1mky",
u8"Partiz\u00e1nske",
"Nov\u00e1 Ba\u0148a",
"Nov\u00e9 Mesto nad V\u00e1hom",
"Nov\u00e9 Z\u00e1mky",
"Partiz\u00e1nske",
"Pezinok",
u8"Pie\u0161\u0165any",
u8"Polt\u00e1r",
"Pie\u0161\u0165any",
"Polt\u00e1r",
"Poprad",
u8"Pova\u017esk\u00e1 Bystrica",
"Pova\u017esk\u00e1 Bystrica",
"Prievidza",
u8"P\u00fachov",
u8"Rev\u00faca",
u8"Rimavsk\u00e1 Sobota",
u8"Ro\u017e\u0148ava",
u8"Ru\u017eomberok",
"P\u00fachov",
"Rev\u00faca",
"Rimavsk\u00e1 Sobota",
"Ro\u017e\u0148ava",
"Ru\u017eomberok",
"Sabinov",
u8"\u0160a\u013ea",
"\u0160a\u013ea",
"Senec",
"Senica",
u8"Sere\u010f",
"Sere\u010f",
"Skalica",
u8"Sl\u00e1dkovi\u00cdovo",
"Sl\u00e1dkovi\u00cdovo",
"Smolenice",
"Snina",
u8"Star\u00e1 \u013dubov\u0148a",
u8"Star\u00e1 Tur\u00e1",
u8"Str\u00e1\u017eske",
"Star\u00e1 \u013dubov\u0148a",
"Star\u00e1 Tur\u00e1",
"Str\u00e1\u017eske",
"Stropkov",
"Stupava",
u8"\u0160t\u00farovo",
u8"\u0120ulekovo",
u8"Topo\u013e\u010dany",
u8"Trebi\u0161ov",
u8"Tren\u010d\u00edn",
"\u0160t\u00farovo",
"\u0120ulekovo",
"Topo\u013e\u010dany",
"Trebi\u0161ov",
"Tren\u010d\u00edn",
"Trnava",
u8"Tur\u010dianske Teplice",
u8"Tvrdo\u0161\u00edn",
u8"Vr\u00e1ble",
u8"Vranov nad Top\u013eou",
u8"Z\u00e1horsk\u00e1 Bystrica",
u8"\u017ddiar",
u8"\u013diar nad Hronom",
u8"\u017dilina",
u8"Zlat\u00e9 Moravce",
"Tur\u010dianske Teplice",
"Tvrdo\u0161\u00edn",
"Vr\u00e1ble",
"Vranov nad Top\u013eou",
"Z\u00e1horsk\u00e1 Bystrica",
"\u017ddiar",
"\u013diar nad Hronom",
"\u017dilina",
"Zlat\u00e9 Moravce",
"Zvolen",
static const char * const _name_norwegian_1[] = {
"Arna",
"Aust",
u8"Bj\u00f8rk",
u8"Bj\u00f8rn",
"Bj\u00f8rk",
"Bj\u00f8rn",
"Brand",
u8"B\u00f8ver",
"B\u00f8ver",
"Drag",
u8"Dr\u00f8",
"Dr\u00f8",
"Eids",
"Egge",
"Fager",
@@ -2143,12 +2143,12 @@ static const char * const _name_norwegia
"Gaus",
"Galte",
"Geir",
u8"Gl\u00f8s",
"Gl\u00f8s",
"Gran",
"Grind",
"Grims",
u8"Gr\u00f8n",
u8"Gr\u00f8t",
"Gr\u00f8n",
"Gr\u00f8t",
"Gulle",
"Haka",
"Hammer",
@@ -2163,7 +2163,7 @@ static const char * const _name_norwegia
"Kjerring",
"Knatte",
"Krok",
u8"K\u00f8y",
"K\u00f8y",
"Lauv",
"Leir",
@@ -2171,7 +2171,7 @@ static const char * const _name_norwegia
"Logn",
"Lo",
"Lyng",
u8"L\u00f8n",
"L\u00f8n",
"Mesna",
"Mo",
@@ -2191,9 +2191,9 @@ static const char * const _name_norwegia
"Sel",
"Sol",
"Sjur",
u8"Sk\u00e5r",
u8"Sl\u00e5tt",
u8"Stj\u00f8r",
"Sk\u00e5r",
"Sl\u00e5tt",
"Stj\u00f8r",
"Svart",
"Svens",
@@ -2206,7 +2206,7 @@ static const char * const _name_norwegia
"Vest",
"Vesle",
"Vik",
u8"V\u00e5g",
"V\u00e5g",
static const char * const _name_norwegian_2[] = {
@@ -2221,7 +2221,7 @@ static const char * const _name_norwegia
"bugen",
"by",
"bygd",
u8"b\u00f8",
"b\u00f8",
"dal",
"egga",
"eid",
@@ -2239,10 +2239,10 @@ static const char * const _name_norwegia
"hella",
"hovda",
u8"h\u00f8a",
u8"h\u00f8gda",
"h\u00f8a",
"h\u00f8gda",
"kampen",
u8"kj\u00f8len",
"kj\u00f8len",
"kollen",
"kroken",
"land",
@@ -2257,7 +2257,7 @@ static const char * const _name_norwegia
"rud",
"sand",
"set",
u8"sj\u00f8en",
"sj\u00f8en",
"skogen",
"slette",
"snipa",
@@ -2266,7 +2266,7 @@ static const char * const _name_norwegia
"stulen",
"svingen",
u8"s\u00e6tra",
"s\u00e6tra",
"tinden",
"tun",
"vang",
@@ -2274,9 +2274,9 @@ static const char * const _name_norwegia
"veid",
"vik",
"voll",
u8"v\u00e5g",
"v\u00e5g",
"um",
u8"\u00e5sen",
"\u00e5sen",
static const char * const _name_norwegian_real[] = {
@@ -2284,12 +2284,12 @@ static const char * const _name_norwegia
"Arendal",
"Askim",
"Bergen",
u8"Bod\u00f8",
"Bod\u00f8",
"Brevik",
"Bryne",
u8"Br\u00f8nn\u00f8ysund",
"Br\u00f8nn\u00f8ysund",
"Drammen",
u8"Dr\u00f8bak",
"Dr\u00f8bak",
"Egersund",
"Elverum",
"Farsund",
@@ -2297,10 +2297,10 @@ static const char * const _name_norwegia
"Finnsnes",
"Flekkefjord",
"Flora",
u8"Fosnav\u00e5g",
"Fosnav\u00e5g",
"Fredrikstad",
u8"F\u00f8rde",
u8"Gj\u00f8vik",
"F\u00f8rde",
"Gj\u00f8vik",
"Grimstad",
"Halden",
"Hamar",
@@ -2309,13 +2309,13 @@ static const char * const _name_norwegia
"Haugesund",
"Holmestrand",
"Horten",
u8"J\u00f8rpeland",
"J\u00f8rpeland",
"Kirkenes",
"Kolvereid",
"Kongsberg",
"Kongsvinger",
"Kopervik",
u8"Krager\u00f8",
"Krager\u00f8",
"Kristiansand",
"Kristiansund",
"Langesund",
@@ -2325,16 +2325,16 @@ static const char * const _name_norwegia
"Levanger",
"Lillehammer",
"Lillesand",
u8"Lillestr\u00f8m",
"Lillestr\u00f8m",
"Lyngdal",
u8"L\u00f8renskog",
"L\u00f8renskog",
"Mandal",
"Mo i Rana",
"Molde",
u8"Mosj\u00f8en",
"Mosj\u00f8en",
"Moss",
"Mysen",
u8"M\u00e5l\u00f8y",
"M\u00e5l\u00f8y",
"Namsos",
"Narvik",
"Notodden",
@@ -2343,11 +2343,11 @@ static const char * const _name_norwegia
"Otta",
"Porsgrunn",
"Ringerike",
u8"Ris\u00f8r",
"Ris\u00f8r",
"Rjukan",
"Sandefjord",
"Sandnes",
u8"Sandnessj\u00f8en",
"Sandnessj\u00f8en",
"Sandvika",
"Sarpsborg",
"Sauda",
@@ -2358,152 +2358,152 @@ static const char * const _name_norwegia
"Stathelle",
"Stavanger",
"Steinkjer",
u8"Stj\u00f8rdal",
"Stj\u00f8rdal",
"Stokmarknes",
"Stord",
"Svelvik",
u8"Svolv\u00e6r",
u8"Troms\u00f8",
"Svolv\u00e6r",
"Troms\u00f8",
"Trondheim",
"Tvedestrand",
u8"T\u00f8nsberg",
"T\u00f8nsberg",
"Ulsteinvik",
u8"Vads\u00f8",
u8"Vard\u00f8",
u8"Verdals\u00f8ra",
u8"\u00c5krehamn",
u8"\u00c5lesund",
u8"\u00c5ndalsnes",
"Vads\u00f8",
"Vard\u00f8",
"Verdals\u00f8ra",
"\u00c5krehamn",
"\u00c5lesund",
"\u00c5ndalsnes",
static const char * const _name_hungarian_1[] = {
"Nagy-",
"Kis-",
u8"Fels\u0151-",
u8"Als\u00f3-",
u8"\u00daj-",
"Fels\u0151-",
"Als\u00f3-",
"\u00daj-",
static const char * const _name_hungarian_2[] = {
"Bodrog",
u8"Dr\u00e1va",
"Dr\u00e1va",
"Duna",
u8"Hej\u0151",
u8"Hern\u00e1d",
u8"R\u00e1ba",
u8"Saj\u00f3",
"Hej\u0151",
"Hern\u00e1d",
"R\u00e1ba",
"Saj\u00f3",
"Szamos",
"Tisza",
"Zala",
"Balaton",
u8"Fert\u0151",
"Fert\u0151",
"Bakony",
u8"Cserh\u00e1t",
"Cserh\u00e1t",
"Bihar",
u8"Hajd\u00fa",
u8"J\u00e1sz",
"Hajd\u00fa",
"J\u00e1sz",
"Kun",
"Magyar",
u8"N\u00f3gr\u00e1d",
u8"Ny\u00edr",
"N\u00f3gr\u00e1d",
"Ny\u00edr",
"Somogy",
u8"Sz\u00e9kely",
"Sz\u00e9kely",
"Buda",
u8"Gy\u0151r",
"Gy\u0151r",
"Pest",
u8"Feh\u00e9r",
u8"Cser\u00e9p",
u8"Erd\u0151",
"Feh\u00e9r",
"Cser\u00e9p",
"Erd\u0151",
"Hegy",
"Homok",
u8"Mez\u0151",
"Mez\u0151",
"Puszta",
u8"S\u00e1r",
u8"Cs\u00e1sz\u00e1r",
"S\u00e1r",
"Cs\u00e1sz\u00e1r",
"Herceg",
u8"Kir\u00e1ly",
"Kir\u00e1ly",
"Nemes",
u8"P\u00fcsp\u00f6k",
"P\u00fcsp\u00f6k",
"Szent",
u8"Alm\u00e1s",
u8"Szilv\u00e1s",
"Alm\u00e1s",
"Szilv\u00e1s",
"Agg",
"Aranyos",
u8"B\u00e9k\u00e9s",
u8"Egyh\u00e1zas",
"B\u00e9k\u00e9s",
"Egyh\u00e1zas",
"Gagy",
"Heves",
"Kapos",
u8"T\u00e1pi\u00f3",
"T\u00e1pi\u00f3",
"Torna",
"Vas",
u8"V\u00e1mos",
u8"V\u00e1s\u00e1ros",
"V\u00e1mos",
"V\u00e1s\u00e1ros",
static const char * const _name_hungarian_3[] = {
u8"ap\u00e1ti",
u8"b\u00e1ba",
"ap\u00e1ti",
"b\u00e1ba",
"bikk",
"dob",
"fa",
u8"f\u00f6ld",
"f\u00f6ld",
"hegyes",
"kak",
"kereszt",
u8"k\u00fcrt",
u8"lad\u00e1ny",
u8"m\u00e9rges",
"k\u00fcrt",
"lad\u00e1ny",
"m\u00e9rges",
"szalonta",
"telek",
"vas",
u8"v\u00f6lgy",
"v\u00f6lgy",
static const char * const _name_hungarian_4[] = {
"alja",
u8"egyh\u00e1za",
u8"h\u00e1za",
u8"\u00far",
u8"v\u00e1r",
"egyh\u00e1za",
"h\u00e1za",
"\u00far",
"v\u00e1r",
static const char * const _name_hungarian_real[] = {
"Ajka",
u8"Asz\u00f3d",
"Asz\u00f3d",
"Badacsony",
"Baja",
"Budapest",
"Debrecen",
"Eger",
u8"Fony\u00f3d",
u8"G\u00f6d\u00f6ll\u0151",
"Fony\u00f3d",
"G\u00f6d\u00f6ll\u0151",
"Gyula",
"Karcag",
u8"Kecskem\u00e9t",
"Kecskem\u00e9t",
"Keszthely",
u8"Kisk\u00f6re",
"Kisk\u00f6re",
"Kocsord",
u8"Kom\u00e1rom",
u8"K\u0151szeg",
u8"Mak\u00f3",
u8"Moh\u00e1cs",
"Kom\u00e1rom",
"K\u0151szeg",
"Mak\u00f3",
"Moh\u00e1cs",
"Miskolc",
u8"\u00d3zd",
"\u00d3zd",
"Paks",
u8"P\u00e1pa",
u8"P\u00e9cs",
u8"Polg\u00e1r",
"P\u00e1pa",
"P\u00e9cs",
"Polg\u00e1r",
"Sarkad",
u8"Si\u00f3fok",
"Si\u00f3fok",
"Szeged",
"Szentes",
"Szolnok",
"Tihany",
"Tokaj",
u8"V\u00e1c",
u8"Z\u00e1hony",
"V\u00e1c",
"Z\u00e1hony",
"Zirc",
@@ -2514,7 +2514,7 @@ static const char * const _name_swiss_re
"Arosa",
"Appenzell",
"Arbon",
u8"Altst\u00e4tten",
"Altst\u00e4tten",
"Baar",
"Baden",
"Bellinzona",
@@ -2525,20 +2525,20 @@ static const char * const _name_swiss_re
"Burgdorf",
"Bern",
"Basel",
u8"B\u00fclach",
"B\u00fclach",
"Carouge",
"Cham",
"Chiasso",
"Chur",
"Davos",
u8"Del\u00e9mont",
"Del\u00e9mont",
"Dietikon",
u8"D\u00fcbendorf",
"D\u00fcbendorf",
"Emmen",
u8"Freienbach-Pf\u00e4ffikon",
"Freienbach-Pf\u00e4ffikon",
"Fribourg",
"Frauenfeld",
u8"Gen\u00e8ve",
"Gen\u00e8ve",
"Glarus",
"Gossau",
"Grenchen",
@@ -2550,9 +2550,9 @@ static const char * const _name_swiss_re
"Jona",
"Kriens",
"Kloten",
u8"K\u00f6niz",
"K\u00f6niz",
"Kreuzlingen",
u8"K\u00fcsnacht",
"K\u00fcsnacht",
"Agen",
"Lancy",
"La Chaux-de-Fonds",
@@ -2569,7 +2569,7 @@ static const char * const _name_swiss_re
"Lyss",
"Luzern",
"Martigny",
u8"M\u00fcnchenstein",
"M\u00fcnchenstein",
"Meyrin",
"Montreux",
"Monthey",
@@ -2577,7 +2577,7 @@ static const char * const _name_swiss_re
"Murten",
"Moutier",
"Muttenz",
u8"Neuch\u00e2tel",
"Neuch\u00e2tel",
"Neuhausen am Rheinfall",
"Nyon",
"Olten",
@@ -2606,11 +2606,11 @@ static const char * const _name_swiss_re
"St. Moritz",
"Sion",
"Spiez",
u8"St\u00e4fa",
"St\u00e4fa",
"Sursee",
"Schwyz",
"Thalwil",
u8"Th\u00f4nex",
"Th\u00f4nex",
"Thun",
"Uster",
"Uzwil",
@@ -2618,7 +2618,7 @@ static const char * const _name_swiss_re
"Volketswil",
"Versoix",
"Vevey",
u8"W\u00e4denswil",
"W\u00e4denswil",
"Wettingen",
"Wil",
"Wallisellen",
@@ -2629,7 +2629,7 @@ static const char * const _name_swiss_re
"Yverdon-les-Bains",
"Zollikon",
"Zofingen",
u8"Z\u00fcrich",
"Z\u00fcrich",
"Zug",
@@ -2639,12 +2639,12 @@ static const char * const _name_danish_1
"Nye ",
"Store ",
"Kirke ",
u8"N\u00f8rre ",
"N\u00f8rre ",
"Vester ",
u8"S\u00f8nder ",
u8"\u00d8ster ",
"S\u00f8nder ",
"\u00d8ster ",
"Hvide ",
u8"H\u00f8je ",
"H\u00f8je ",
"Kongens ",
@@ -2656,7 +2656,7 @@ static const char * const _name_danish_2
"Bede",
"Birke",
"Bjerring",
u8"Bj\u00e6ver",
"Bj\u00e6ver",
"Blommens",
"Blok",
"Bolder",
@@ -2669,7 +2669,7 @@ static const char * const _name_danish_2
"Fredens",
"Frederiks",
"Fugle",
u8"F\u00e5re",
"F\u00e5re",
"Gille",
"Gis",
"Givs",
@@ -2686,11 +2686,11 @@ static const char * const _name_danish_2
"Hol",
"Horn",
"Humle",
u8"H\u00f8j",
u8"H\u00f8r",
"H\u00f8j",
"H\u00f8r",
"Is",
"Jyde",
u8"J\u00e6gers",
"J\u00e6gers",
"Karls",
"Klov",
"Kokke",
@@ -2702,24 +2702,24 @@ static const char * const _name_danish_2
"Ny",
"Oks",
"Ring",
u8"R\u00f8de",
"R\u00f8de",
"Rung",
u8"R\u00f8r",
"R\u00f8r",
"Rud",
"Saks",
"Salt",
"Skam",
"Silke",
"Skod",
u8"Sk\u00e6l",
u8"Sk\u00e6r",
"Sk\u00e6l",
"Sk\u00e6r",
"Svend",
"Svine",
"Strand",
"Stubbe",
"Ting",
u8"Tj\u00e6re",
"Tj\u00e6re",
"Tore",
"Uger",
"Ulf",
@@ -2727,9 +2727,9 @@ static const char * const _name_danish_2
"Vand",
"Vej",
"Vor",
u8"V\u00e6r",
u8"\u00d8r",
u8"\u00c5l",
"V\u00e6r",
"\u00d8r",
"\u00c5l",
static const char * const _name_danish_3[] = {
@@ -2742,21 +2742,21 @@ static const char * const _name_danish_3
"strup",
u8"k\u00f8bing",
"k\u00f8bing",
"lunde",
"ovre",
u8"h\u00f8j",
"h\u00f8j",
"sted",
"sten",
u8"l\u00f8se",
u8"r\u00f8d",
"l\u00f8se",
"r\u00f8d",
"magle",
u8"s\u00f8",
"s\u00f8",
"bjerg",
u8"b\u00e6k",
"b\u00e6k",
"drup",
"lev",
"bo",
@@ -2766,32 +2766,32 @@ static const char * const _name_danish_3
static const char * const _name_turkish_prefix[] = {
u8"Ak\u00e7a",
u8"Alt\u0131n",
u8"Bah\u00e7e",
"Ak\u00e7a",
"Alt\u0131n",
"Bah\u00e7e",
"Boz",
u8"B\u00fcy\u00fck",
u8"\u00c7ay",
u8"Do\u011fu",
"B\u00fcy\u00fck",
"\u00c7ay",
"Do\u011fu",
"Eski",
u8"G\u00fczel",
u8"K\u0131z\u0131l",
u8"K\u00fc\u00e7\u00fck",
"G\u00fczel",
"K\u0131z\u0131l",
"K\u00fc\u00e7\u00fck",
"Orta",
u8"Sar\u0131",
"Sar\u0131",
"Sultan",
"Ulu",
"Yeni",
static const char * const _name_turkish_middle[] = {
u8"aga\u00e7",
"aga\u00e7",
"ayva",
u8"\u00e7am",
"\u00e7am",
"elma",
"kurt",
"pazar",
u8"yal\u0131",
"yal\u0131",
static const char * const _name_turkish_suffix[] = {
@@ -2800,10 +2800,10 @@ static const char * const _name_turkish_
"kale",
"kaya",
"kent",
u8"k\u00f6y",
"k\u00f6y",
"ova",
u8"\u00f6z\u00fc",
u8"\u00f6ren",
"\u00f6z\u00fc",
"\u00f6ren",
"saray",
"tepe",
@@ -2813,48 +2813,48 @@ static const char * const _name_turkish_
static const char * const _name_turkish_real[] = {
"Adana",
u8"Ad\u0131yaman",
"Ad\u0131yaman",
"Afyon",
u8"A\u011fr\u0131",
"A\u011fr\u0131",
"Amasya",
"Antalya",
"Artvin",
u8"Bal\u0131kesir",
"Bal\u0131kesir",
"Bilecik",
"Bitlis",
"Bolu",
"Burdur",
"Bursa",
u8"\u00c7anakkale",
u8"\u00c7ank\u0131r\u0131",
"\u00c7anakkale",
"\u00c7ank\u0131r\u0131",
"Denizli",
u8"Diyarbak\u0131r",
"Diyarbak\u0131r",
"Edirne",
u8"Elaz\u0131\u011f",
"Elaz\u0131\u011f",
"Erzurum",
u8"Eski\u015fehir",
"Eski\u015fehir",
"Giresun",
u8"G\u00fcm\u00fc\u015fhane",
"G\u00fcm\u00fc\u015fhane",
"Hatay",
"Isparta",
u8"\u0130\u00e7el",
u8"\u0130stanbul",
u8"\u0130zmir",
"\u0130\u00e7el",
"\u0130stanbul",
"\u0130zmir",
"Kars",
"Kastamonu",
"Kayseri",
"Kirklareli",
"Kocaeli",
"Konya",
u8"K\u00fctahya",
"K\u00fctahya",
"Malatya",
"Manisa",
u8"Kahramanmara\u015f",
"Kahramanmara\u015f",
"Mardin",
u8"Mu\u011fla",
u8"Mu\u015f",
u8"Nev\u015fehir",
u8"Ni\u011fde",
"Mu\u011fla",
"Mu\u015f",
"Nev\u015fehir",
"Ni\u011fde",
"Rize",
"Sakarya",
"Samsun",
@@ -2862,21 +2862,21 @@ static const char * const _name_turkish_
"Sinop",
"Sivas",
"Trabzon",
u8"\u015eanl\u0131urfa",
"\u015eanl\u0131urfa",
"Van",
"Yozgat",
"Zonguldak",
"Aksaray",
"Bayburt",
"Karaman",
u8"\u015e\u0131rnak",
u8"Bart\u0131n",
"\u015e\u0131rnak",
"Bart\u0131n",
"Ardahan",
u8"I\u011fd\u0131r",
"I\u011fd\u0131r",
"Yalova",
u8"Karab\u00fck",
"Karab\u00fck",
"Osmaniye",
u8"D\u00fczce",
"D\u00fczce",
static const char * const _name_italian_real[] = {
@@ -3168,7 +3168,7 @@ static const char * const _name_catalan_
"Banyoles",
"Figueres",
"Balaguer",
u8"Vilafranca del Pened\u00e8s",
"Vilafranca del Pened\u00e8s",
"La Seu d'Urgell",
"El Pont de Suert",
"Igualada",
@@ -3184,21 +3184,21 @@ static const char * const _name_catalan_
"Ripoll",
"Cervera",
"Gandesa",
u8"Matar\u00f3",
"Matar\u00f3",
"Montblanc",
u8"Vilanova i la Geltr\u00fa",
u8"T\u00e0rrega",
"Vilanova i la Geltr\u00fa",
"T\u00e0rrega",
"Camprodon",
u8"Campdev\u00e0nol",
"Campdev\u00e0nol",
"Cambrils",
"Begur",
"Setcases",
"Palafrugell",
"Begues",
"El Bruc",
u8"Cadaqu\u00e9s",
u8"Collbat\u00f3",
u8"Cervell\u00f3",
"Cadaqu\u00e9s",
"Collbat\u00f3",
"Cervell\u00f3",
"Esparreguera",
"Abrera",
"Alp",
@@ -3209,7 +3209,7 @@ static const char * const _name_catalan_
"Molins de Rei",
"Monistrol",
"Rocallaura",
u8"Rub\u00ed",
"Rub\u00ed",
"Ripollet",
"Sitges",
"Roses",
@@ -3239,14 +3239,14 @@ static const char * const _name_catalan_
"Sant Joan de ",
"Sant Feliu de ",
"Sant Quirze de ",
u8"Sant Sadurn\u00ed de ",
"Sant Sadurn\u00ed de ",
"Santa Coloma de ",
"Santa Margarida de ",
"Santa Maria de ",
u8"Sant Mart\u00ed de ",
"Sant Mart\u00ed de ",
"Sant Pere de ",
u8"Sant Juli\u00e0 de ",
u8"Sant Vicen\u00e7 de ",
"Sant Juli\u00e0 de ",
"Sant Vicen\u00e7 de ",
@@ -3275,10 +3275,10 @@ static const char * const _name_catalan_
"baix",
"fosc",
"pelat",
u8"vent\u00f3s",
"vent\u00f3s",
"negre",
"roig",
u8"gr\u00eds",
"gr\u00eds",
static const char * const _name_catalan_2f[] = {
@@ -3293,14 +3293,14 @@ static const char * const _name_catalan_
static const char * const _name_catalan_3[] = {
u8" Desp\u00ed",
" Desp\u00ed",
" Desvern",
u8" del Cam\u00ed",
" del Cam\u00ed",
" de Mar",
" de Dalt",
" de Baix",
u8" del Vall\u00e8s",
u8" de Bergued\u00e0",
" del Vall\u00e8s",
" de Bergued\u00e0",
" de Conflent",
" de la Plana",
@@ -3311,5 +3311,5 @@ static const char * const _name_catalan_
" de Llobregat",
" d'Ebre",
" de Segre",
u8" de Francol\u00ed",
" de Francol\u00ed",
@@ -796,7 +796,7 @@ static void Xunzip(byte **bufp, size_t *
std::string_view sv_buf(buf, filesize);
/* Check for the byte-order-mark, and skip it if needed. */
if (StrStartsWith(sv_buf, u8"\ufeff")) sv_buf.remove_prefix(3);
if (StrStartsWith(sv_buf, "\ufeff")) sv_buf.remove_prefix(3);
/* Update the filename. */
this->filepath = textfile;
@@ -501,7 +501,7 @@ static void MakeFinnishTownName(StringBu
if (view.find_first_of("aouAOU") != std::string_view::npos) {
builder += "la";
} else {
builder += u8"l\u00e4";
builder += "l\u00e4";
}
return;
Status change: