table/namegen.h
author pasky
Sat, 05 Mar 2005 22:21:43 +0000
changeset 1427 dde1e3b304dd
parent 1425 d566470aa3ca
child 1444 37e4c0fab3ae
permissions -rw-r--r--
(svn r1931) Added Krystofova, Udoli and Hut. Zdar is s. masc., not s. neut.
#include "../stdafx.h"
#include "../ttd.h"

static const char *name_original_english_1[] = {
	"Great ",
	"Little ",
	"New ",
	"Fort ",
};

static const char *name_original_english_2[] = {
	"Wr",
	"B",
	"C",
	"Ch",
	"Br",
	"D",
	"Dr",
	"F",
	"Fr",
	"Fl",
	"G",
	"Gr",
	"H",
	"L",
	"M",
	"N",
	"P",
	"Pr",
	"Pl",
	"R",
	"S",
	"S",
	"Sl",
	"T",
	"Tr",
	"W"
};

static const char *name_original_english_3[] = {
	"ar",
	"a",
	"e",
	"in",
	"on",
	"u",
	"un",
	"en"
};

static const char *name_original_english_4[] = {
	"n",
	"ning",
	"ding",
	"d",
	"",
	"t"
	"fing"
};

static const char *name_original_english_5[] = {
	"ville",
	"ham",
	"field",
	"ton",
	"town",
	"bridge",
	"bury",
	"wood",
	"ford",
	"hall",
	"ston",
	"way",
	"stone",
	"borough",
	"ley",
	"head",
	"bourne",
	"pool",
	"worth",
	"hill",
	"well",
	"hattan",
	"burg",
};

static const char *name_original_english_6[] = {
	"-on-sea",
	" Bay",
	" Market",
	" Cross",
	" Bridge",
	" Falls",
	" City",
	" Ridge",
	" Springs"
};

static const char *name_additional_english_prefix[] = {
	"Great ",
	"Little ",
	"New ",
	"Fort ",
	"St. ",
	"Old "
};

static const char *name_additional_english_1a[] = {
	"Pen",
	"Lough",
	"Stam",
	"Aber",
	"Acc",
	"Ex",
	"Ax",
	"Bre",
	"Cum",
	"Dun",
	"Fin",
	"Inver",
	"Kin",
	"Mon",
	"Nan",
	"Nant",
	"Pit",
	"Pol",
	"Pont",
	"Strath",
	"Tre",
	"Tilly",
	"Beck",
	"Canter",
	"Bath",
	"Liver",
	"Mal",
	"Ox",
	"Bletch",
	"Maccles",
	"Grim",
	"Wind",
	"Sher",
	"Gates",
	"Orp",
	"Brom",
	"Lewis",
	"Whit",
	"White",
	"Worm",
	"Tyne",
	"Avon",
	"Stan"
};

static const char *name_additional_english_1b1[] = {
	"Wr",
	"B",
	"C",
	"Ch",
	"Br",
	"D",
	"Dr",
	"F",
	"Fr",
	"Fl",
	"G",
	"Gr",
	"H",
	"L",
	"M",
	"N",
	"P",
	"Pr",
	"Pl",
	"R",
	"S",
	"S",
	"Sl",
	"T",
	"Tr",
	"W"
};

static const char *name_additional_english_1b2[] = {
	"ar",
	"a",
	"e",
	"in",
	"on",
	"u",
	"o",
	"ee",
	"es",
	"ea",
	"un",
	"en"
};

static const char *name_additional_english_1b3a[] = {
	"n",
	"d",
	"",
	"t",
	"",
	""
};

static const char *name_additional_english_1b3b[] = {
	"ning",
	"ding",
	"fing"
};

static const char *name_additional_english_2[] = {
	"ville",
	"ham",
	"field",
	"ton",
	"town",
	"borough",
	"bridge",
	"bury",
	"wood",
	"ditch",
	"ford",
	"hall",
	"dean",
	"leigh",
	"dore",
	"ston",
	"stow",
	"church",
	"wich",
	"low",
	"way",
	"stone",
	"minster",
	"ley",
	"head",
	"bourne",
	"pool",
	"worth",
	"hill",
	"well",
	"hattan",
	"burg",
	"berg",
	"burgh",
	"port",
	"stoke",
	"haven",
	"stable",
	"stock",
	"side",
	"brook",
	"don",
	"den",
	"down",
	"nor",
	"grove",
	"combe",
	"by",
	"say",
	"ney",
	"chester",
	"dale",
	"ness",
	"shaw",
	"thwaite"
};

static const char *name_additional_english_3[] = {
	"-on-sea",
	" Bay",
	" Market",
	" Beeches",
	" Common",
	" Park",
	" Heath",
	" Marsh",
	" Green",
	" Castle",
	" End",
	" Rivers",
	" Cross",
	" Bridge",
	" Falls",
	" City",
	" Ridge",
	" Springs"
};

static const char *name_austrian_a1[] = {
	"Bad ",
	"Deutsch ",
	"Gross ",
	"Klein ",
	"Markt ",
	"Maria "
};

static const char *name_austrian_a2[] = {
	"Aus",
	"Alten",
	"Braun",
	"Vösl",
	"Mittern",
	"Nuss",
	"Neu",
	"Walters",
	"Breiten",
	"Eisen",
	"Feld",
	"Mittern",
	"Gall",
	"Obern",
	"Grat",
	"Heiligen",
	"Hof",
	"Holla",
	"Stein",
	"Eber",
	"Eggen",
	"Enzers",
	"Frauen",
	"Herren",
	"Hof",
	"Hütt",
	"Kaisers",
	"Königs",
	"Knittel",
	"Lang",
	"Ober",
	"Ollers",
	"Pfaffen",
	"Potten",
	"Salz",
	"Schwarz",
	"Stocker",
	"Unter",
	"Utten",
	"Vösen",
	"Vill",
	"Weissen"
};

static const char *name_austrian_a3[] = {
	"see",
	"bach",
	"dorf",
	"ach",
	"stein",
	"hofen",
	"au",
	"ach",
	"kirch",
	"kirchen",
	"kreuz",
	"brunn",
	"siedl",
	"markt",
	"wang",
	"haag"
};

static const char *name_austrian_a4[] = {
	"Bruck",
	"Brunn",
	"Gams",
	"Grein",
	"Ried",
	"Faak",
	"Zell",
	"Spital",
	"Kirchberg",
	"Saal",
	"Taferl",
	"Wald"
};

static const char *name_austrian_a5[] = {
	"St. ",
	"Sankt "
};

static const char *name_austrian_a6[] = {
	"Aegyd",
	"Andrä",
	"Georgen",
	"Jakob",
	"Johann",
	"Leonhard",
	"Marein",
	"Lorenzen",
	"Margarethen",
	"Martin",
	"Michael",
	"Nikolai",
	"Oswald",
	"Peter",
	"Pölten",
	"Stefan",
	"Stephan",
	"Thomas",
	"Veit",
	"Wolfgang"
};

static const char *name_austrian_f1[] = {
	" an der ",
	" ob der "
};

static const char *name_austrian_f2[] = {
	"Donau",
	"Steyr",
	"Lafnitz",
	"Leitha",
	"Thaya",
	"Gail",
	"Drau",
	"Salzach",
	"Ybbs",
	"Traisen",
	"Enns",
	"Mur",
	"Ill"
};

static const char *name_austrian_b1[] = {
	" am "
};

static const char *name_austrian_b2[] = {
	"Brenner",
	"Dachstein",
	"Gebirge",
	"Grossglockner",
	"Hausruck",
	"Semmering",
	"Wagram",
	"Wechsel",
	"Wilden Kaiser",
	"Ziller"
};

static const char *name_german_real[] = {
	"Berlin",
	"Bonn",
	"Bremen",
	"Cottbus",
	"Chemnitz",
	"Dortmund",
	"Dresden",
	"Erfurt",
	"Erlangen",
	"Essen",
	"Fulda",
	"Gera",
	"Kassel",
	"Kiel",
	"Köln",
	"Lübeck",
	"Magdeburg",
	"München",
	"Potsdam",
	"Stuttgart",
	"Wiesbaden"
};

static const char *name_german_pre[] = {
	"Bad ",
	"Klein ",
	"Neu "
};

static const char *name_german_1[] = {
	"Alb",
	"Als",
	"Ander",
	"Arns",
	"Bruns",
	"Bam",
	"Biele",
	"Cloppen",
	"Co",
	"Duis",
	"Düssel",
	"Dannen",
	"Elb",
	"Els",
	"Elster",
	"Eichen",
	"Ems",
	"Fahr",
	"Falken",
	"Flens",
	"Frank",
	"Frei",
	"Freuden",
	"Fried",
	"Fürsten",
	"Hahn",
	"Ham",
	"Harz",
	"Heidel",
	"Hers",
	"Herz",
	"Holz",
	"Hildes",
	"Inns",
	"Ilsen",
	"Ingols",
	"Kel",
	"Kies",
	"Korn",
	"Kor",
	"Kreuz",
	"Kulm",
	"Langen",
	"Lim",
	"Lohr",
	"Lüne",
	"Mel",
	"Michels",
	"Mühl",
	"Naum",
	"Nest",
	"Nord",
	"Nort",
	"Nien",
	"Nidda",
	"Nieder",
	"Nürn",
	"Ober",
	"Offen",
	"Osna",
	"Olden",
	"Ols",
	"Oranien",
	"Pader",
	"Quedlin",
	"Quer",
	"Ravens",
	"Regens",
	"Rott",
	"Ros",
	"Rüssels",
	"Saal",
	"Saar",
	"Salz",
	"Schöne",
	"Schwein",
	"Sonder",
	"Sonnen",
	"Stein",
	"Strals",
	"Straus",
	"Süd",
	"Ton",
	"Unter",
	"Ur",
	"Vor",
	"Wald",
	"War",
	"Wert",
	"Wester",
	"Witten",
	"Wolfs",
	"Würz"
};

static const char *name_german_2[] = {
	"bach",
	"berg",
	"brück",
	"brücken",
	"burg",
	"dorf",
	"feld",
	"furt",
	"hausen",
	"haven",
	"heim",
	"horst",
	"mund",
	"münster",
	"stadt",
	"wald"
};

static const char *name_german_3_an_der[] = {
	" an der "
};

static const char *name_german_3_am[] = {
	" am "
};

static const char *name_german_4_an_der[] = {
	"Oder",
	"Spree",
	"Donau",
	"Saale",
	"Elbe"
};

static const char *name_german_4_am[] = {
	"Main"
};

static const char *name_spanish_real[] = {
	"Caracas",
	"Maracay",
	"Maracaibo",
	"Velencia",
	"El Dorado",
	"Morrocoy",
	"Cata",
	"Cataito",
	"Ciudad Bolivar",
	"Barquisimeto",
	"Merida",
	"Puerto Ordaz",
	"Santa Elena",
	"San Juan",
	"San Luis",
	"San Rafael",
	"Santiago",
	"Barcelona",
	"Barinas",
	"San Cristobal",
	"San Fransisco",
	"San Martin",
	"Guayana",
	"San Carlos",
	"El Limon",
	"Coro",
	"Corocoro",
	"Puerto Ayacucho",
	"Elorza",
	"Arismendi",
	"Trujillo",
	"Carupano",
	"Anaco",
	"Lima",
	"Cuzco",
	"Iquitos",
	"Callao",
	"Huacho",
	"Camana",
	"Puerto Chala",
	"Santa Cruz",
	"Quito",
	"Cuenca",
	"Huacho",
	"Tulcan",
	"Esmereldas",
	"Ibarra",
	"San Lorenzo",
	"Macas",
	"Morana",
	"Machala",
	"Zamora",
	"Latacunga",
	"Tena",
	"Cochabamba",
	"Ascencion",
	"Magdalena",
	"Santa Ana",
	"Manoa",
	"Sucre",
	"Oruro",
	"Uyuni",
	"Potosi",
	"Tupiza",
	"La Quiaca",
	"Yacuiba",
	"San Borja",
	"Fuerte Olimpio",
	"Fortin Esteros",
	"Campo Grande",
	"Bogota",
	"El Banco",
	"Zaragosa",
	"Neiva",
	"Mariano",
	"Cali",
	"La Palma",
	"Andoas",
	"Barranca",
	"Montevideo",
	"Valdivia",
	"Arica",
	"Temuco",
	"Tocopilla",
	"Mendoza",
	"Santa Rosa"
};

static const char *name_french_real[] = {
	"Agincourt",
	"Lille",
	"Dinan",
	"Aubusson",
	"Rodez",
	"Bergerac",
	"Bordeaux",
	"Bayonne",
	"Montpellier",
	"Montelimar",
	"Valence",
	"Digne",
	"Nice",
	"Cannes",
	"St. Tropez",
	"Marseilles",
	"Narbonne",
	"Sčte",
	"Aurillac",
	"Gueret",
	"Le Creusot",
	"Nevers",
	"Auxerre",
	"Versailles",
	"Meaux",
	"Châlons",
	"Compičgne",
	"Metz",
	"Chaumont",
	"Langres",
	"Bourg",
	"Lyons",
	"Vienne",
	"Grenoble",
	"Toulon",
	"Rennes",
	"Le Mans",
	"Angers",
	"Nantes",
	"Châteauroux",
	"Orléans",
	"Lisieux",
	"Cherbourg",
	"Morlaix",
	"Cognac",
	"Agen",
	"Tulle",
	"Blois",
	"Troyes",
	"Charolles",
	"Grenoble",
	"Chambéry",
	"Tours",
	"St. Brieuc",
	"St. Malo",
	"La Rochelle",
	"St. Flour",
	"Le Puy",
	"Vichy",
	"St. Valery",
	"Beaujolais",
	"Narbonne",
	"Albi",
	"St. Valery",
	"Biarritz",
	"Béziers",
	"Nîmes",
	"Chamonix",
	"Angoulčme",
	"Alençon"
};

static const char *name_silly_1[] = {
	"Binky",
	"Blubber",
	"Bumble",
	"Crinkle",
	"Crusty",
	"Dangle",
	"Dribble",
	"Flippety",
	"Google",
	"Muffin",
	"Nosey",
	"Pinker",
	"Quack",
	"Rumble",
	"Sleepy",
	"Sliggles",
	"Snooze",
	"Teddy",
	"Tinkle",
	"Twister",
	"Pinker",
	"Hippo",
	"Itchy",
	"Jelly",
	"Jingle",
	"Jolly",
	"Kipper",
	"Lazy",
	"Frogs",
	"Mouse",
	"Quack",
	"Cheeky",
	"Lumpy",
	"Grumpy",
	"Mangle",
	"Fiddle",
	"Slugs",
	"Noodles",
	"Poodles",
	"Shiver",
	"Rumble",
	"Pixie",
	"Puddle",
	"Riddle",
	"Rattle",
	"Rickety",
	"Waffle",
	"Sagging",
	"Sausage",
	"Egg",
	"Sleepy",
	"Scatter",
	"Scramble",
	"Silly",
	"Simple",
	"Trickle",
	"Slippery",
	"Slimey",
	"Slumber",
	"Soggy",
	"Sliggles",
	"Splutter",
	"Sulky",
	"Swindle",
	"Swivel",
	"Tasty",
	"Tangle",
	"Toggle",
	"Trotting",
	"Tumble",
	"Snooze",
	"Water",
	"Windy",
	"Amble",
	"Bubble",
	"Cheery",
	"Cheese",
	"Cockle",
	"Cracker",
	"Crumple",
	"Teddy",
	"Evil",
	"Fairy",
	"Falling",
	"Fishy",
	"Fizzle",
	"Frosty",
	"Griddle"
};

static const char *name_silly_2[] = {
	"ton",
	"bury",
	"bottom",
	"ville",
	"well",
	"weed",
	"worth",
	"wig",
	"wick",
	"wood",
	"pool",
	"head",
	"burg",
	"gate",
	"bridge"
};

static const char *name_swedish_1[] = {
	"Gamla ",
	"Lilla ",
	"Nya ",
	"Stora "
};

static const char *name_swedish_2[] = {
	"Boll",
	"Bor",
	"Ed",
	"En",
	"Erik",
	"Es",
	"Fin",
	"Fisk",
	"Grön",
	"Hag",
	"Halm",
	"Karl",
	"Kram",
	"Kung",
	"Land",
	"Lid",
	"Lin",
	"Mal",
	"Malm",
	"Marie",
	"Ner",
	"Norr",
	"Oskar",
	"Sand",
	"Skog",
	"Stock",
	"Stor",
	"Ström",
	"Sund",
	"Söder",
	"Tall",
	"Tratt",
	"Troll",
	"Upp",
	"Var",
	"Väster",
	"Ängel",
	"Öster"
};

static const char *name_swedish_2a[] = {
	"B",
	"Br",
	"D",
	"Dr",
	"Dv",
	"F",
	"Fj",
	"Fl",
	"Fr",
	"G",
	"Gl",
	"Gn",
	"Gr",
	"H",
	"J",
	"K",
	"Kl",
	"Kn",
	"Kr",
	"Kv",
	"L",
	"M",
	"N",
	"P",
	"Pl",
	"Pr",
	"R",
	"S",
	"Sk",
	"Skr",
	"Sl",
	"Sn",
	"Sp",
	"Spr",
	"St",
	"Str",
	"Sv",
	"T",
	"Tr",
	"Tv",
	"V",
	"Vr"
};

static const char *name_swedish_2b[] = {
	"a",
	"e",
	"i",
	"o",
	"u",
	"y",
	"ĺ",
	"ä",
	"ö"
};

static const char *name_swedish_2c[] = {
	"ck",
	"d",
	"dd",
	"g",
	"gg",
	"l",
	"ld",
	"m",
	"n",
	"nd",
	"ng",
	"nn",
	"p",
	"pp",
	"r",
	"rd",
	"rk",
	"rp",
	"rr",
	"rt",
	"s",
	"sk",
	"st",
	"t",
	"tt",
	"v"
};

static const char *name_swedish_3[] = {
	"arp",
	"berg",
	"boda",
	"borg",
	"bro",
	"bukten",
	"by",
	"byn",
	"fors",
	"hammar",
	"hamn",
	"holm",
	"hus",
	"hättan",
	"kulle",
	"köping",
	"lund",
	"löv",
	"sala",
	"skrona",
	"slätt",
	"spĺng",
	"stad",
	"sund",
	"svall",
	"svik",
	"sĺker",
	"udde",
	"valla",
	"viken",
	"älv",
	"ĺs"
};

static const char *name_dutch_1[] = {
	"Nieuw ",
	"Oud ",
	"Groot ",
	"Zuid ",
	"Noord ",
	"Oost ",
	"West ",
	"Klein "
};

static const char *name_dutch_2[] = {
	"Hoog",
	"Laag",
	"Zuider",
	"Zuid",
	"Ooster",
	"Oost",
	"Wester",
	"West",
	"Hoofd",
	"Midden",
	"Eind",
	"Amster",
	"Amstel",
	"Dord",
	"Rotter",
	"Haar",
	"Til",
	"Enk",
	"Dok",
	"Veen",
	"Leidsch",
	"Lely",
	"En",
	"Kaats",
	"U",
	"Maas",
	"Mar",
	"Bla",
	"Al",
	"Alk",
	"Eer",
	"Drie",
	"Ter",
	"Groes",
	"Goes",
	"Soest",
	"Coe",
	"Uit",
	"Zwaag",
	"Hellen",
	"Slie",
	"IJ",
	"Grubben",
	"Groen",
	"Lek",
	"Ridder",
	"Schie",
	"Olde",
	"Roose",
	"Haar",
	"Til",
	"Loos",
	"Hil"
};

static const char *name_dutch_3[] = {
	"Drog",
	"Nat",
	"Valk",
	"Bob",
	"Dedem",
	"Kollum",
	"Best",
	"Hoend",
	"Leeuw",
	"Graaf",
	"Uithuis",
	"Purm",
	"Hard",
	"Hell",
	"Werk",
	"Spijk",
	"Vink",
	"Wams",
	"Heerhug",
	"Koning"
};

static const char *name_dutch_4[] = {
	"e",
	"er",
	"el",
	"en",
	"o",
	"s"
};

static const char *name_dutch_5[] = {
	"stad",
	"vorst",
	"dorp",
	"dam",
	"beek",
	"doorn",
	"zijl",
	"zijlen",
	"lo",
	"muiden",
	"meden",
	"vliet",
	"nisse",
	"daal",
	"vorden",
	"vaart",
	"mond",
	"zaal",
	"water",
	"duinen",
	"heuvel",
	"geest",
	"kerk",
	"meer",
	"maar",
	"hoorn",
	"rade",
	"wijk",
	"berg",
	"heim",
	"sum",
	"richt",
	"burg",
	"recht",
	"drecht",
	"trecht",
	"tricht",
	"dricht",
	"lum",
	"rum",
	"halen",
	"oever",
	"wolde",
	"veen",
	"hoven",
	"gast",
	"kum",
	"hage",
	"dijk",
	"zwaag",
	"pomp",
	"huizen",
	"bergen",
	"schede",
	"mere",
	"end"
};

static const char *name_finnish_real[] = {
	"Aijala",
	"Kisko",
	"Espoo",
	"Helsinki",
	"Tapiola",
	"Järvelä",
	"Lahti",
	"Kotka",
	"Hamina",
	"Loviisa",
	"Kouvola",
	"Tampere",
	"Kokkola",
	"Oulu",
	"Salo",
	"Malmi",
	"Pelto",
	"Koski",
	"Iisalmi",
	"Raisio",
	"Taavetti",
	"Joensuu",
	"Imatra",
	"Tapanila",
	"Pasila"
};

static const char *name_finnish_1[] = {
	"Hiekka",
	"Haapa",
	"Mylly",
	"Kivi",
	"Lappeen",
	"Lohjan",
	"Savon",
	"Sauna",
	"Keri",
	"Uusi",
	"Vanha",
	"Lapin",
	"Kesä",
	"Kuusi",
	"Pelto",
	"Tuomi",
	"Pitäjän",
	"Terva",
	"Olki",
	"Heinä",
	"Kuusan",
	"Seinä",
	"Kemi",
	"Rova",
	"Martin",
	"Koivu"
};

static const char *name_finnish_2[] = {
	"harju",
	"linna",
	"järvi",
	"kallio",
	"mäki",
	"nummi",
	"joki",
	"kylä",
	"lampi",
	"lahti",
	"metsä",
	"suo",
	"laakso",
	"niitty",
	"luoto",
	"hovi",
	"ranta",
	"koski"
};

static const char *name_polish_1_m[] = {
	"Wielki ",
	"Maly ",
	"Zly ",
	"Dobry ",
	"Nowy ",
	"Stary ",
	"Zloty ",
	"Zielony ",
	"Bialy ",
	"Modry ",
	"Debowy "
};

static const char *name_polish_1_f[] = {
	"Wielka ",
	"Mala ",
	"Zla ",
	"Dobra ",
	"Nowa ",
	"Stara ",
	"Zlota ",
	"Zielona ",
	"Biala ",
	"Modra ",
	"Debowa "
};

static const char *name_polish_1_n[] = {
	"Wielkie ",
	"Male ",
	"Zle ",
	"Dobre ",
	"Nowe ",
	"Stare ",
	"Zlote ",
	"Zielone ",
	"Biale ",
	"Modre ",
	"Debowe "
};

static const char *name_polish_2_o[] = {
	"Frombork",
	"Gniezno",
	"Olsztyn",
	"Torun",
	"Bydgoszcz",
	"Terespol",
	"Krakow",
	"Poznan",
	"Wroclaw",
	"Katowice",
	"Cieszyn",
	"Bytom",
	"Frombork",
	"Hel",
	"Konin",
	"Lublin",
	"Malbork",
	"Sopot",
	"Sosnowiec",
	"Gdansk",
	"Gdynia",
	"Sieradz",
	"Sandomierz",
	"Szczyrk",
	"Szczytno",
	"Szczecin",
	"Zakopane",
	"Szklarska Poreba",
	"Bochnia",
	"Golub-Dobrzyn",
	"Chojnice",
	"Ostrowiec",
	"Otwock",
	"Wolsztyn"
};

static const char *name_polish_2_m[] = {
	"Jarocin",
	"Gogolin",
	"Tomaszow",
	"Piotrkow",
	"Lidzbark",
	"Rypin",
	"Radzymin",
	"Wolomin",
	"Pruszkow",
	"Olsztynek",
	"Rypin",
	"Cisek",
	"Krotoszyn",
	"Stoczek",
	"Lubin",
	"Lubicz",
	"Milicz",
	"Targ",
	"Ostrow",
	"Ozimek",
	"Puck",
	"Rzepin",
	"Siewierz",
	"Stargard",
	"Starogard",
	"Turek",
	"Tymbark",
	"Wolsztyn",
	"Strzepcz",
	"Strzebielin",
	"Sochaczew",
	"Grebocin",
	"Gniew",
	"Lubliniec",
	"Lubasz",
	"Lutomiersk",
	"Niemodlin",
	"Przeworsk",
	"Ursus",
	"Tyczyn",
	"Sztum",
	"Szczebrzeszyn",
	"Wolin",
	"Wrzeszcz",
	"Zgierz",
	"Zieleniec",
	"Drobin",
	"Garwolin"
};

static const char *name_polish_2_f[] = {
	"Szprotawa",
	"Pogorzelica",
	"Motlawa",
	"Lubawa",
	"Nidzica",
	"Kruszwica",
	"Bierawa",
	"Brodnica",
	"Chojna",
	"Krzepica",
	"Ruda",
	"Rumia",
	"Tuchola",
	"Trzebinia",
	"Ustka",
	"Warszawa",
	"Bobowa",
	"Dukla",
	"Krynica",
	"Murowana",
	"Niemcza",
	"Zaspa",
	"Zawoja",
	"Wola",
	"Limanowa",
	"Rabka",
	"Skawina",
	"Pilawa"
};

static const char *name_polish_2_n[] = {
	"Lipsko",
	"Pilzno",
	"Przodkowo",
	"Strzelno",
	"Susz",
	"Jaworzno",
	"Choszczno",
	"Mogilno",
	"Luzino",
	"Miasto",
	"Dziadowo",
	"Kowalewo",
	"Legionowo",
	"Miastko",
	"Zabrze",
	"Zawiercie",
	"Kochanowo",
	"Miechucino",
	"Mirachowo",
	"Robakowo",
	"Kosakowo",
	"Borne",
	"Braniewo",
	"Sulinowo",
	"Chmielno",
	"Jastrzebie",
	"Gryfino",
	"Koronowo",
	"Lubichowo",
	"Opoczno"
};

static const char *name_polish_3_m[] = {
	" Wybudowanie",
	" Swietokrzyski",
	" Gorski",
	" Morski",
	" Zdroj",
	" Wody",
	" Bajoro",
	" Krajenski",
	" Slaski",
	" Mazowiecki",
	" Pomorski",
	" Wielki",
	" Maly",
	" Warminski",
	" Mazurski",
	" Mniejszy",
	" Wiekszy",
	" Gorny",
	" Dolny",
	" Wielki",
	" Stary",
	" Nowy",
	" Wielkopolski",
	" Wzgorze",
	" Mosty",
	" Kujawski",
	" Malopolski",
	" Podlaski",
	" Lesny"
};

static const char *name_polish_3_f[] = {
	" Wybudowanie",
	" Swietokrzyska",
	" Gorska",
	" Morska",
	" Zdroj",
	" Woda",
	" Bajoro",
	" Krajenska",
	" Slaska",
	" Mazowiecka",
	" Pomorska",
	" Wielka",
	" Mala",
	" Warminska",
	" Mazurska",
	" Mniejsza",
	" Wieksza",
	" Gorna",
	" Dolna",
	" Wielka",
	" Stara",
	" Nowa",
	" Wielkopolska",
	" Wzgorza",
	" Mosty",
	" Kujawska",
	" Malopolska",
	" Podlaska",
	" Lesna"
};

static const char *name_polish_3_n[] = {
	" Wybudowanie",
	" Swietokrzyskie",
	" Gorskie",
	" Morskie",
	" Zdroj",
	" Wody",
	" Bajoro",
	" Krajenskie",
	" Slaskie",
	" Mazowieckie",
	" Pomorskie",
	" Wielkie",
	" Male",
	" Warminskie ",
	" Mazurskie ",
	" Mniejsze",
	" Wieksze",
	" Gorne",
	" Dolne",
	" Wielkie",
	" Stare",
	" Nowe",
	" Wielkopolskie",
	" Wzgorze",
	" Mosty",
	" Kujawskie",
	" Malopolskie",
	" Podlaskie",
	" Lesne"
};

static const char *name_czech_real[] = {
	"As",
	"Benesov",
	"Beroun",
	"Bezdruzice",
	"Blansko",
	"Breclav",
	"Brno",
	"Bruntál",
	"Ceská Lípa",
	"Ceské Budejovice",
	"Ceský Krumlov",
	"Decín",
	"Domazlice",
	"Dubí",
	"Frýdek-Místek",
	"Havlíckuv Brod",
	"Hodonín",
	"Hradec Králové",
	"Humpolec",
	"Cheb",
	"Chomutov",
	"Chrudim",
	"Jablonec nad Nisou",
	"Jeseník",
	"Jicín",
	"Jihlava",
	"Jindrichuv Hradec",
	"Karlovy Vary",
	"Karviná",
	"Kladno",
	"Klatovy",
	"Kolín",
	"Kosmonosy",
	"Kromeríz",
	"Kutná Hora",
	"Liberec",
	"Litomerice",
	"Louny",
	"Manetín",
	"Melník",
	"Mladá Boleslav",
	"Most",
	"Náchod",
	"Nový Jicín",
	"Nymburk",
	"Olomouc",
	"Opava",
	"Orácov",
	"Ostrava",
	"Pardubice",
	"Pelhrimov",
	"Polzice",
	"Písek",
	"Plzen",
	"Praha",
	"Prachatice",
	"Prerov",
	"Príbram",
	"Prostejov",
	"Rakovník",
	"Rokycany",
	"Rudná",
	"Rychnov nad Kneznou",
	"Semily",
	"Sokolov",
	"Strakonice",
	"Stredokluky",
	"Sumperk",
	"Svitavy",
	"Tábor",
	"Tachov",
	"Teplice",
	"Trebíc",
	"Trutnov",
	"Uherské Hradiste",
	"Ústí nad Labem",
	"Ústí nad Orlicí",
	"Vsetín",
	"Vyskov",
	"Zdár nad Sázavou",
	"Zlín",
	"Znojmo"
};


/* The advanced hyperintelligent Czech town names generator! */

// Sing., pl.
enum CzechGender {
	CZG_SMASC,
	CZG_SFEM,
	CZG_SNEUT,
	CZG_PMASC,
	CZG_PFEM,
	CZG_PNEUT,
	// Special for substantive stems - the ending chooses the gender.
	CZG_FREE,
	// Like CZG_FREE, but disallow CZG_SNEUT.
	CZG_NFREE
};
enum CzechPattern {
	CZP_JARNI,
	CZP_MLADY,
	CZP_PRIVL
};
/* [CzechGender][CzechPattern] - replaces the last character of the adjective
 * by this. */
// XXX: [CZG_SMASC][CZP_PRIVL] needs special handling: -ovX -> -uv.
static const char name_czech_patmod[6][3] = {
	/* CZG_SMASC */ { 'í', 'ý', 'X' },
	/* CZG_SFEM */  { 'í', 'á', 'a' },
	/* CZG_SNEUT */ { 'í', 'é', 'o' },
	/* CZG_PMASC */ { 'í', 'é', 'y' },
	/* CZG_PFEM */  { 'í', 'é', 'y' },
	/* CZG_PNEUT */ { 'í', 'á', 'a' }
};

// This way the substantives can choose only some adjectives/endings:
// At least one of these flags must be satisfied:
enum CzechAllow {
	CZA_SHORT = 1,
	CZA_MIDDLE = 2,
	CZA_LONG = 4,
	CZA_ALL = ~0
};
// All these flags must be satisfied (in the stem->others direction):
enum CzechChoose {
	CZC_NORMAL = 1,
	CZC_COLOR = 2,
	CZC_POSTFIX = 4, // Matched if postfix was inserted.
	CZC_NOPOSTFIX = 8, // Matched if no postfix was inserted.
	CZC_ANY = ~0
};

struct CzechNameSubst {
	enum CzechGender gender;
	enum CzechAllow allow;
	enum CzechChoose choose;
	const char *name;
};

struct CzechNameAdj {
	enum CzechPattern pattern;
	enum CzechChoose choose;
	const char *name;
};

// Some of items which should be common are doubled.
static const struct CzechNameAdj name_czech_adj[] = {
	{ CZP_JARNI, CZC_ANY, "Horní" },
	{ CZP_JARNI, CZC_ANY, "Horní" },
	{ CZP_JARNI, CZC_ANY, "Dolní" },
	{ CZP_JARNI, CZC_ANY, "Dolní" },
	{ CZP_JARNI, CZC_ANY, "Prední" },
	{ CZP_JARNI, CZC_ANY, "Zadní" },
	{ CZP_JARNI, CZC_ANY, "Kostelní" },
	{ CZP_JARNI, CZC_ANY, "Havraní" },
	{ CZP_JARNI, CZC_ANY, "Rícní" },
	{ CZP_MLADY, CZC_ANY, "Velký" },
	{ CZP_MLADY, CZC_ANY, "Velký" },
	{ CZP_MLADY, CZC_ANY, "Malý" },
	{ CZP_MLADY, CZC_ANY, "Malý" },
	{ CZP_MLADY, CZC_ANY, "Vysoký" },
	{ CZP_MLADY, CZC_ANY, "Ceský" },
	{ CZP_MLADY, CZC_ANY, "Moravský" },
	{ CZP_MLADY, CZC_ANY, "Slovácký" },
	{ CZP_MLADY, CZC_ANY, "Uherský" },
	{ CZP_MLADY, CZC_ANY, "Starý" },
	{ CZP_MLADY, CZC_ANY, "Starý" },
	{ CZP_MLADY, CZC_ANY, "Nový" },
	{ CZP_MLADY, CZC_ANY, "Nový" },
	{ CZP_MLADY, CZC_ANY, "Mladý" },
	{ CZP_MLADY, CZC_ANY, "Královský" },
	{ CZP_MLADY, CZC_ANY, "Kamenný" },
	{ CZP_MLADY, CZC_ANY, "Cihlový" },
	{ CZP_MLADY, CZC_ANY, "Divný" },
	{ CZP_MLADY, CZC_COLOR, "Cervená" },
	{ CZP_MLADY, CZC_COLOR, "Cervená" },
	{ CZP_MLADY, CZC_COLOR, "Zelená" },
	{ CZP_MLADY, CZC_COLOR, "Zlutá" },
	{ CZP_MLADY, CZC_COLOR, "Sivá" },
	{ CZP_MLADY, CZC_COLOR, "Sedá" },
	{ CZP_MLADY, CZC_COLOR, "Bílá" },
	{ CZP_MLADY, CZC_COLOR, "Modrá" },
	{ CZP_MLADY, CZC_COLOR, "Ruzová" },
	{ CZP_MLADY, CZC_COLOR, "Cerná" },
	{ CZP_PRIVL, CZC_ANY, "Králova" },
	{ CZP_PRIVL, CZC_ANY, "Janova" },
	{ CZP_PRIVL, CZC_ANY, "Karlova" },
	{ CZP_PRIVL, CZC_ANY, "Krystofova" },
	{ CZP_PRIVL, CZC_ANY, "Jiríkova" },
	{ CZP_PRIVL, CZC_ANY, "Petrova" },
	{ CZP_PRIVL, CZC_ANY, "Sudovo" },
};

// Considered a stem for choose/allow matching purposes.
static const struct CzechNameSubst name_czech_subst_full[] = {
	{ CZG_SMASC, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Sedlec" },
	{ CZG_SMASC, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Brod" },
	{ CZG_SMASC, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Brod" },
	{ CZG_SMASC, CZA_ALL, CZC_NORMAL, "Úval" },
	{ CZG_SMASC, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Zdár" },
	{ CZG_SFEM,  CZA_ALL, CZC_NORMAL | CZC_COLOR, "Hora" },
	{ CZG_SFEM,  CZA_ALL, CZC_NORMAL | CZC_COLOR, "Lhota" },
	{ CZG_SFEM,  CZA_ALL, CZC_NORMAL | CZC_COLOR, "Lhota" },
	{ CZG_SFEM,  CZA_ALL, CZC_NORMAL | CZC_COLOR, "Hlava" },
	{ CZG_SNEUT, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Pole" },
	{ CZG_SNEUT, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Údolí" },
	{ CZG_PMASC, CZA_ALL, CZC_NORMAL, "Úvaly" },
	{ CZG_PFEM,  CZA_ALL, CZC_NORMAL | CZC_COLOR, "Luka" },
	{ CZG_PNEUT, CZA_ALL, CZC_NORMAL | CZC_COLOR, "Pole" },
};

// TODO: More stems needed. --pasky
static const struct CzechNameSubst name_czech_subst_stem[] = {
	{ CZG_SMASC,             CZA_MIDDLE,            CZC_NORMAL | CZC_COLOR, "Kostel" },
	{ CZG_SMASC,             CZA_MIDDLE,            CZC_NORMAL | CZC_COLOR, "Kláster" },
	{ CZG_SMASC, CZA_SHORT,                         CZC_NORMAL | CZC_COLOR, "Lhot" },
	{ CZG_SFEM,  CZA_SHORT,                         CZC_NORMAL | CZC_COLOR, "Lhot" },
	{ CZG_SFEM,  CZA_SHORT,                         CZC_NORMAL | CZC_COLOR, "Hur" },
	{ CZG_FREE,              CZA_MIDDLE | CZA_LONG, CZC_NORMAL, "Sedl" },
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NORMAL | CZC_COLOR, "Hrad" },
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NORMAL, "Pras" },
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NORMAL, "Baz" },
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NORMAL, "Tes" },
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NORMAL, "Uz" },
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_NORMAL, "Br" },
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_NORMAL, "Vod" },
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_NORMAL, "Jan" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Prach" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Kunr" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Strak" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Vit" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Vys" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Zat" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Zer" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Stred" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Harv" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Pruh" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Tach" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Písn" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Jin" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Jes" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Jar" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Sok" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Hod" },
	{ CZG_NFREE,                          CZA_LONG, CZC_NORMAL, "Net" },
	{ CZG_FREE,                           CZA_LONG, CZC_NORMAL, "Praz" },
	{ CZG_FREE,                           CZA_LONG, CZC_NORMAL, "Nerat" },
	{ CZG_FREE,                           CZA_LONG, CZC_NORMAL, "Kral" },
	{ CZG_FREE,                           CZA_LONG, CZC_NORMAL, "Hut" },
	{ CZG_FREE,                           CZA_LONG, CZC_NORMAL | CZC_NOPOSTFIX, "Pan" },
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NORMAL, "Odstred" },
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NORMAL | CZC_COLOR, "Mrat" },
	{ CZG_FREE,                           CZA_LONG, CZC_NORMAL | CZC_COLOR, "Hlav" },
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE,            CZC_NORMAL, "Mer" },
};

// Optional postfix inserted between stem and ending.
static const char *name_czech_subst_postfix[] = {
	"av", "an", "at",
	"ov", "on", "ot",
	"ev", "en", "et",
};

// This array must have the both neutral genders at the end!
static const struct CzechNameSubst name_czech_subst_ending[] = {
	{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "ec" },
	{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "ín" },
	{ 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, "ín" },
	{ CZG_SMASC,                          CZA_LONG, CZC_POSTFIX, "ník" },
	{ CZG_SFEM,  CZA_SHORT,                         CZC_ANY, "ka" },
	{ CZG_SFEM,              CZA_MIDDLE,            CZC_ANY, "inka" },
	{ CZG_SFEM,              CZA_MIDDLE,            CZC_NOPOSTFIX, "na" },
	{ CZG_SFEM,              CZA_MIDDLE,            CZC_ANY, "ná" },
	{ CZG_SFEM,                           CZA_LONG, CZC_ANY, "ava" },
	{ CZG_PMASC,                          CZA_LONG, CZC_ANY, "íky" },
	{ CZG_PMASC,                          CZA_LONG, CZC_ANY, "upy" },
	{ CZG_PFEM,                           CZA_LONG, CZC_ANY, "avy" },
	{ CZG_PFEM,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ice" },
	{ CZG_PNEUT, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "na" },
	{ CZG_SNEUT, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "no" },
	{ CZG_SNEUT,                          CZA_LONG, CZC_ANY, "iste" },
};

static const char *name_czech_suffix[] = {
	"nad Cydlinou",
	"nad Dyjí",
	"nad Jihlavou",
	"nad Labem",
	"nad Lesy",
	"nad Moravou",
	"nad Nisou",
	"nad Odrou",
	"nad Ostravicí",
	"nad Sázavou",
	"nad Vltavou",
	"pod Pradedem",
	"pod Radhostem",
	"pod Rípem",
	"pod Snezkou",
	"pod Spicákem",
	"pod Sedlem",
};



static const char *name_romanian_real[]= {
	"Adjud",
	"Alba Iulia",
	"Alexandria",
	"Babadag",
	"Bacău",
	"Baia Mare",
	"Băile Herculane",
	"Băilesti",
	"Bârlad",
	"Bicaz",
	"Bistrita",
	"Blaj",
	"Borsec",
	"Botosani",
	"Brăila",
	"Brasov",
	"Bucuresti",
	"Buftea",
	"Buzău",
	"Călărasi",
	"Caransebes",
	"Cernavodă",
	"Cluj-Napoca",
	"Constanta",
	"Covasna",
	"Craiova",
	"Dej",
	"Deva",
	"Dorohoi",
	"Dr.-Tr. Severin",
	"Drăgăsani",
	"Făgăras",
	"Fălticeni",
	"Fetesti",
	"Focsani",
	"Galati",
	"Gheorgheni",
	"Giurgiu",
	"Hârsova",
	"Hunedoara",
	"Husi",
	"Iasi",
	"Isaccea",
	"Lugoj",
	"Măcin",
	"Mangalia",
	"Medgidia",
	"Medias",
	"Miercurea Ciuc",
	"Mizil",
	"Motru",
	"Năsăud",
	"Năvodari",
	"Odobesti",
	"Oltenita",
	"Onesti",
	"Oradea",
	"Orsova",
	"Petrosani",
	"Piatra Neamt",
	"Pitesti",
	"Ploiesti",
	"Predeal",
	"Râmnicu Vâlcea",
	"Reghin",
	"Resita",
	"Roman",
	"Rosiorii de Vede",
	"Satu Mare",
	"Sebes",
	"Sfântu Gheorghe",
	"Sibiu",
	"Sighisoara",
	"Sinaia",
	"Slatina",
	"Slobozia",
	"Sovata",
	"Suceava",
	"Sulina",
	"Tăndărei",
	"Târgoviste",
	"Târgu Jiu",
	"Târgu Mures",
	"Tecuci",
	"Timisoara",
	"Tulcea",
	"Turda",
	"Turnu Măgurele",
	"Urziceni",
	"Vaslui",
	"Vatra Dornei",
	"Victoria",
	"Videle",
	"Zalău"
};

static const char *name_slovak_real[] = {
	"Bratislava",
	"Banovce nad Bebravou",
	"Banska Bystrica",
	"Banska Stiavnica",
	"Bardejov",
	"Brezno",
	"Brezova pod Bradlom",
	"Bytca",
	"Cadca",
	"Cierna nad Tisou",
	"Detva",
	"Detva",
	"Dolny Kubin",
	"Dolny Kubin",
	"Dunajska Streda",
	"Gabcikovo",
	"Galanta",
	"Gbely",
	"Gelnica",
	"Handlova",
	"Hlohovec",
	"Holic",
	"Humenne",
	"Hurbanovo",
	"Kezmarok",
	"Komarno",
	"Kosice",
	"Kremnica",
	"Krompachy",
	"Kuty",
	"Leopoldov",
	"Levoca",
	"Liptovsky Mikulas",
	"Lucenec",
	"Malacky",
	"Martin",
	"Medzilaborce",
	"Michalovce",
	"Modra",
	"Myjava",
	"Namestovo",
	"Nitra",
	"Nova Bana",
	"Nove Mesto nad Vahom",
	"Nove Zamky",
	"Partizanske",
	"Pezinok",
	"Piestany",
	"Poltar",
	"Poprad",
	"Povazska Bystrica",
	"Prievidza",
	"Puchov",
	"Revuca",
	"Rimavska Sobota",
	"Roznava",
	"Ruzomberok",
	"Sabinov",
	"Sala",
	"Senec",
	"Senica",
	"Sered",
	"Skalica",
	"Sladkovicovo",
	"Smolenice",
	"Snina",
	"Stara Lubovna",
	"Stara Tura",
	"Strazske",
	"Stropkov",
	"Stupava",
	"Sturovo",
	"Sulekovo",
	"Topolcany",
	"Trebisov",
	"Trencin",
	"Trnava",
	"Turcianske Teplice",
	"Tvrdosin",
	"Vrable",
	"Vranov nad Toplov",
	"Zahorska Bystrica",
	"Zdiar",
	"Ziar nad Hronom",
	"Zilina",
	"Zlate Moravce",
	"Zvolen"
};

static const char *name_norwegian_1[] = {
	"Arna",
	"Aust",
	"Bjřrk",
	"Bjřrn",
	"Brand",
	"Břver",
	"Drag",
	"Drř",
	"Eids",
	"Egge",
	"Fager",
	"Finns",
	"Flat",
	"Foll",
	"Foss",
	"Fugle",
	"Furu",
	"Gaus",
	"Galte",
	"Geir",
	"Glřs",
	"Gran",
	"Grind",
	"Grims",
	"Grřn",
	"Grřt",
	"Gulle",
	"Haka",
	"Hammer",
	"Haug",
	"Hol",
	"Hon",
	"Hop",
	"Hov",
	"Jess",
	"Kabel",
	"Kjerns",
	"Kjerring",
	"Knatte",
	"Krok",
	"Křy",
	"Lang",
	"Lauv",
	"Leir",
	"Lund",
	"Logn",
	"Lo",
	"Lyng",
	"Lřn",
	"Mesna",
	"Mel",
	"Mo",
	"Nar",
	"Nitte",
	"Nord",
	"Odd",
	"Ola",
	"Otte",
	"Ran",
	"Rev",
	"Rog",
	"Roms",
	"Rosen",
	"Sand",
	"Sau",
	"Sel",
	"Sol",
	"Sjur",
	"Skĺr",
	"Slĺtt",
	"Stjřr",
	"Stor",
	"Svart",
	"Svens",
	"Svin",
	"Sylte",
	"Syn",
	"Tran",
	"Vass",
	"Ved",
	"Vest",
	"Vesle",
	"Vik",
	"Vĺg"
};

static const char *name_norwegian_2[] = {
	"aker",
	"anger",
	"bakken",
	"bekk",
	"berg",
	"botn",
	"breen",
	"bu",
	"bugen",
	"by",
	"bygd",
	"bř",
	"dal",
	"egga",
	"eid",
	"elv",
	"enga",
	"foss",
	"fjell",
	"fjord",
	"foten",
	"gard",
	"grend",
	"hammer",
	"haug",
	"havn",
	"heim",
	"hella",
	"hovda",
	"hřa",
	"hřgda",
	"kampen",
	"kjřlen",
	"kollen",
	"kroken",
	"land",
	"lia",
	"mark",
	"moen",
	"myr",
	"nes",
	"nuten",
	"osen",
	"rike",
	"rud",
	"sand",
	"set",
	"sjřen",
	"skogen",
	"slette",
	"snipa",
	"stad",
	"stua",
	"stulen",
	"sund",
	"svingen",
	"sćtra",
	"tinden",
	"tun",
	"vang",
	"vatn",
	"veid",
	"vik",
	"voll",
	"vĺg",
	"um",
	"ĺsen"
};

static const char *name_norwegian_real[] = {
	"Alta",
	"Arendal",
	"Askim",
	"Bergen",
	"Bodř",
	"Brevik",
	"Bryne",
	"Brřnnřysund",
	"Drammen",
	"Drřbak",
	"Egersund",
	"Elverum",
	"Farsund",
	"Fauske",
	"Finnsnes",
	"Flekkefjord",
	"Flora",
	"Fosnavĺg",
	"Fredrikstad",
	"Fřrde",
	"Gjřvik",
	"Grimstad",
	"Halden",
	"Hamar",
	"Hammerfest",
	"Harstad",
	"Haugesund",
	"Holmestrand",
	"Horten",
	"Jřrpeland",
	"Kirkenes",
	"Kolvereid",
	"Kongsberg",
	"Kongsvinger",
	"Kopervik",
	"Kragerř",
	"Kristiansand",
	"Kristiansund",
	"Langesund",
	"Larvik",
	"Leirvik",
	"Leknes",
	"Levanger",
	"Lillehammer",
	"Lillesand",
	"Lillestrřm",
	"Lyngdal",
	"Lřrenskog",
	"Mandal",
	"Mo i Rana",
	"Molde",
	"Mosjřen",
	"Moss",
	"Mysen",
	"Mĺlřy",
	"Namsos",
	"Narvik",
	"Notodden",
	"Odda",
	"Oslo",
	"Otta",
	"Porsgrunn",
	"Ringerike",
	"Risřr",
	"Rjukan",
	"Sandefjord",
	"Sandnes",
	"Sandnessjřen",
	"Sandvika",
	"Sarpsborg",
	"Sauda",
	"Ski",
	"Skien",
	"Skudeneshavn",
	"Sortland",
	"Stathelle",
	"Stavanger",
	"Steinkjer",
	"Stjřrdal",
	"Stokmarknes",
	"Stord",
	"Svelvik",
	"Svolvćr",
	"Tromsř",
	"Trondheim",
	"Tvedestrand",
	"Třnsberg",
	"Ulsteinvik",
	"Vadsř",
	"Vardř",
	"Verdalsřra",
	"Ĺkrehamn",
	"Ĺlesund",
	"Ĺndalsnes"
};

static const char *name_hungarian_1[] = {
	"Nagy-",
	"Kis-",
	"Felső-",
	"Alsó-",
	"Új-"
};

static const char *name_hungarian_2[] = {
	"Bodrog",
	"Dráva",
	"Duna",
	"Hejő",
	"Hernád",
	"Rába",
	"Sajó",
	"Szamos",
	"Tisza",
	"Zala",
	"Balaton",
	"Fertő",
	"Bakony",
	"Cserhát",
	"Bihar",
	"Hajdú",
	"Jász",
	"Kun",
	"Magyar",
	"Nógrád",
	"Nyír",
	"Somogy",
	"Székely",
	"Buda",
	"Győr",
	"Pest",
	"Fehér",
	"Cserép",
	"Erdő",
	"Hegy",
	"Homok",
	"Mező",
	"Puszta",
	"Sár",
	"Császár",
	"Herceg",
	"Király",
	"Nemes",
	"Püspök",
	"Szent",
	"Almás",
	"Szilvás",
	"Agg",
	"Aranyos",
	"Békés",
	"Egyházas",
	"Gagy",
	"Heves",
	"Kapos",
	"Tápió",
	"Torna",
	"Vas",
	"Vámos",
	"Vásáros"
};

static const char *name_hungarian_3[] = {
	"apáti",
	"bába",
	"bikk",
	"dob",
	"fa",
	"föld",
	"hegyes",
	"kak",
	"kereszt",
	"kürt",
	"ladány",
	"mérges",
	"szalonta",
	"telek",
	"vas",
	"völgy"
};

static const char *name_hungarian_4[] = {
	"alja",
	"egyháza",
	"háza",
	"úr",
	"vár"
};

static const char *name_hungarian_real[] = {
	"Ajka",
	"Aszód",
	"Badacsony",
	"Baja",
	"Budapest",
	"Debrecen",
	"Eger",
	"Fonyód",
	"Gödöllő",
	"Győr",
	"Gyula",
	"Karcag",
	"Kecskemét",
	"Keszthely",
	"Kisköre",
	"Kocsord",
	"Komárom",
	"Kőszeg",
	"Makó",
	"Mohács",
	"Miskolc",
	"Ózd",
	"Paks",
	"Pápa",
	"Pécs",
	"Polgár",
	"Sarkad",
	"Siófok",
	"Szeged",
	"Szentes",
	"Szolnok",
	"Tihany",
	"Tokaj",
	"Vác",
	"Záhony",
	"Zirc"
};

static const char *name_swiss_real[] = {
	"Aarau",
	"Aesch",
	"Altdorf",
	"Arosa",
	"Appenzell",
	"Arbon",
	"Altstätten",
	"Baar",
	"Baden",
	"Bellinzona",
	"Brig-Glis",
	"Bienne",
	"Bulle",
	"Binningen",
	"Burgdorf",
	"Bern",
	"Basel",
	"Bülach",
	"Carouge",
	"Cham",
	"Chiasso",
	"Chur",
	"Davos",
	"Delémont",
	"Dietikon",
	"Dübendorf",
	"Emmen",
	"Freienbach-Pfäffikon",
	"Fribourg",
	"Frauenfeld",
	"Genčve",
	"Glarus",
	"Gossau",
	"Grenchen",
	"Herisau",
	"Horgen",
	"Horw",
	"Illnau-Effretikon",
	"Ittigen",
	"Jona",
	"Kriens",
	"Kloten",
	"Köniz",
	"Kreuzlingen",
	"Küsnacht",
	"Agen",
	"Lancy",
	"La Chaux-de-Fonds",
	"Lenzburg",
	"Lugano",
	"Langenthal",
	"Littau",
	"Le Locle",
	"La Neuveville",
	"Locarno",
	"Liestal",
	"La Tour-de-Peilz",
	"Lausanne",
	"Lyss",
	"Luzern",
	"Martigny",
	"Münchenstein",
	"Meyrin",
	"Montreux",
	"Monthey",
	"Morges",
	"Murten",
	"Moutier",
	"Muttenz",
	"Neuchâtel",
	"Neuhausen am Rheinfall",
	"Nyon",
	"Olten",
	"Onex",
	"Opfikon",
	"Ostermundigen",
	"Payerne",
	"Peseux",
	"Prilly",
	"Pully",
	"Rapperswil",
	"Richterswil",
	"Regensdorf",
	"Rheinfelden",
	"Riehen",
	"Renens",
	"Romanshorn",
	"Rorschach",
	"Stans",
	"Schaffhausen",
	"Steffisburg",
	"St. Gallen",
	"Schlieren",
	"Sierre",
	"Solothurn",
	"St. Moritz",
	"Sion",
	"Spiez",
	"Stäfa",
	"Sursee",
	"Schwyz",
	"Thalwil",
	"Thônex",
	"Thun",
	"Uster",
	"Uzwil",
	"Vernier",
	"Volketswil",
	"Versoix",
	"Vevey",
	"Wädenswil",
	"Wettingen",
	"Wil",
	"Wallisellen",
	"Winterthur",
	"Wohlen",
	"Worb",
	"Wetzikon",
	"Yverdon-les-Bains",
	"Zollikon",
	"Zofingen",
	"Zürich",
	"Zug",
};