OpenTTD Source 20260621-master-g720d10536d
townname.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
9
10#include "../core/enum_type.hpp"
11
12static const std::string_view _name_original_english_1[] = {
13 "Great ",
14 "Little ",
15 "New ",
16 "Fort ",
17};
18
19static const std::string_view _name_original_english_2[] = {
20 "Wr",
21 "B",
22 "C",
23 "Ch",
24 "Br",
25 "D",
26 "Dr",
27 "F",
28 "Fr",
29 "Fl",
30 "G",
31 "Gr",
32 "H",
33 "L",
34 "M",
35 "N",
36 "P",
37 "Pr",
38 "Pl",
39 "R",
40 "S",
41 "S",
42 "Sl",
43 "T",
44 "Tr",
45 "W",
46};
47
48static const std::string_view _name_original_english_3[] = {
49 "ar",
50 "a",
51 "e",
52 "in",
53 "on",
54 "u",
55 "un",
56 "en",
57};
58
59static const std::string_view _name_original_english_4[] = {
60 "n",
61 "ning",
62 "ding",
63 "d",
64 "",
65 "t",
66 "fing",
67};
68
69static const std::string_view _name_original_english_5[] = {
70 "ville",
71 "ham",
72 "field",
73 "ton",
74 "town",
75 "bridge",
76 "bury",
77 "wood",
78 "ford",
79 "hall",
80 "ston",
81 "way",
82 "stone",
83 "borough",
84 "ley",
85 "head",
86 "bourne",
87 "pool",
88 "worth",
89 "hill",
90 "well",
91 "hattan",
92 "burg",
93};
94
95static const std::string_view _name_original_english_6[] = {
96 "-on-sea",
97 " Bay",
98 " Market",
99 " Cross",
100 " Bridge",
101 " Falls",
102 " City",
103 " Ridge",
104 " Springs",
105};
106
107static const std::string_view _name_additional_english_prefix[] = {
108 "Great ",
109 "Little ",
110 "New ",
111 "Fort ",
112 "St. ",
113 "Old ",
114};
115
116static const std::string_view _name_additional_english_1a[] = {
117 "Pen",
118 "Lough",
119 "Stam",
120 "Aber",
121 "Acc",
122 "Ex",
123 "Ax",
124 "Bre",
125 "Cum",
126 "Dun",
127 "Fin",
128 "Inver",
129 "Kin",
130 "Mon",
131 "Nan",
132 "Nant",
133 "Pit",
134 "Pol",
135 "Pont",
136 "Strath",
137 "Tre",
138 "Tilly",
139 "Beck",
140 "Canter",
141 "Bath",
142 "Liver",
143 "Mal",
144 "Ox",
145 "Bletch",
146 "Maccles",
147 "Grim",
148 "Wind",
149 "Sher",
150 "Gates",
151 "Orp",
152 "Brom",
153 "Lewis",
154 "Whit",
155 "White",
156 "Worm",
157 "Tyne",
158 "Avon",
159 "Stan",
160};
161
162static const std::string_view _name_additional_english_1b1[] = {
163 "Wr",
164 "B",
165 "C",
166 "Ch",
167 "Br",
168 "D",
169 "Dr",
170 "F",
171 "Fr",
172 "Fl",
173 "G",
174 "Gr",
175 "H",
176 "L",
177 "M",
178 "N",
179 "P",
180 "Pr",
181 "Pl",
182 "R",
183 "S",
184 "S",
185 "Sl",
186 "T",
187 "Tr",
188 "W",
189};
190
191static const std::string_view _name_additional_english_1b2[] = {
192 "ar",
193 "a",
194 "e",
195 "in",
196 "on",
197 "u",
198 "o",
199 "ee",
200 "es",
201 "ea",
202 "un",
203 "en",
204};
205
206static const std::string_view _name_additional_english_1b3a[] = {
207 "n",
208 "d",
209 "",
210 "t",
211 "",
212 "",
213};
214
215static const std::string_view _name_additional_english_1b3b[] = {
216 "ning",
217 "ding",
218 "fing",
219};
220
221static const std::string_view _name_additional_english_2[] = {
222 "ville",
223 "ham",
224 "field",
225 "ton",
226 "town",
227 "borough",
228 "bridge",
229 "bury",
230 "wood",
231 "ditch",
232 "ford",
233 "hall",
234 "dean",
235 "leigh",
236 "dore",
237 "ston",
238 "stow",
239 "church",
240 "wich",
241 "low",
242 "way",
243 "stone",
244 "minster",
245 "ley",
246 "head",
247 "bourne",
248 "pool",
249 "worth",
250 "hill",
251 "well",
252 "hattan",
253 "burg",
254 "berg",
255 "burgh",
256 "port",
257 "stoke",
258 "haven",
259 "stable",
260 "stock",
261 "side",
262 "brook",
263 "don",
264 "den",
265 "down",
266 "nor",
267 "grove",
268 "combe",
269 "by",
270 "say",
271 "ney",
272 "chester",
273 "dale",
274 "ness",
275 "shaw",
276 "thwaite",
277};
278
279static const std::string_view _name_additional_english_3[] = {
280 "-on-sea",
281 " Bay",
282 " Market",
283 " Beeches",
284 " Common",
285 " Park",
286 " Heath",
287 " Marsh",
288 " Green",
289 " Castle",
290 " End",
291 " Rivers",
292 " Cross",
293 " Bridge",
294 " Falls",
295 " City",
296 " Ridge",
297 " Springs",
298};
299
300static const std::string_view _name_austrian_a1[] = {
301 "Bad ",
302 "Deutsch ",
303 "Gross ",
304 "Klein ",
305 "Markt ",
306 "Maria ",
307};
308
309static const std::string_view _name_austrian_a2[] = {
310 "Aus",
311 "Alten",
312 "Braun",
313 "V\u00f6sl",
314 "Mittern",
315 "Nuss",
316 "Neu",
317 "Walters",
318 "Breiten",
319 "Eisen",
320 "Feld",
321 "Mittern",
322 "Gall",
323 "Obern",
324 "Grat",
325 "Heiligen",
326 "Hof",
327 "Holla",
328 "Stein",
329 "Eber",
330 "Eggen",
331 "Enzers",
332 "Frauen",
333 "Herren",
334 "Hof",
335 "H\u00fctt",
336 "Kaisers",
337 "K\u00f6nigs",
338 "Knittel",
339 "Lang",
340 "Ober",
341 "Ollers",
342 "Pfaffen",
343 "Potten",
344 "Salz",
345 "Schwarz",
346 "Stocker",
347 "Unter",
348 "Utten",
349 "V\u00f6sen",
350 "Vill",
351 "Weissen",
352};
353
354static const std::string_view _name_austrian_a3[] = {
355 "see",
356 "bach",
357 "dorf",
358 "ach",
359 "stein",
360 "hofen",
361 "au",
362 "ach",
363 "kirch",
364 "kirchen",
365 "kreuz",
366 "brunn",
367 "siedl",
368 "markt",
369 "wang",
370 "haag",
371};
372
373static const std::string_view _name_austrian_a4[] = {
374 "Bruck",
375 "Brunn",
376 "Gams",
377 "Grein",
378 "Ried",
379 "Faak",
380 "Zell",
381 "Spital",
382 "Kirchberg",
383 "Saal",
384 "Taferl",
385 "Wald",
386};
387
388static const std::string_view _name_austrian_a5[] = {
389 "St. ",
390 "Sankt ",
391};
392
393static const std::string_view _name_austrian_a6[] = {
394 "Aegyd",
395 "Andr\u00e4",
396 "Georgen",
397 "Jakob",
398 "Johann",
399 "Leonhard",
400 "Marein",
401 "Lorenzen",
402 "Margarethen",
403 "Martin",
404 "Michael",
405 "Nikolai",
406 "Oswald",
407 "Peter",
408 "P\u00f6lten",
409 "Stefan",
410 "Stephan",
411 "Thomas",
412 "Veit",
413 "Wolfgang",
414};
415
416static const std::string_view _name_austrian_f1[] = {
417 " an der ",
418 " ob der ",
419};
420
421static const std::string_view _name_austrian_f2[] = {
422 "Donau",
423 "Steyr",
424 "Lafnitz",
425 "Leitha",
426 "Thaya",
427 "Gail",
428 "Drau",
429 "Salzach",
430 "Ybbs",
431 "Traisen",
432 "Enns",
433 "Mur",
434 "Ill",
435};
436
437static const std::string_view _name_austrian_b1[] = {
438 " am ",
439};
440
441static const std::string_view _name_austrian_b2[] = {
442 "Brenner",
443 "Dachstein",
444 "Gebirge",
445 "Grossglockner",
446 "Hausruck",
447 "Semmering",
448 "Wagram",
449 "Wechsel",
450 "Wilden Kaiser",
451 "Ziller",
452};
453
454static const std::string_view _name_german_real[] = {
455 "Berlin",
456 "Bonn",
457 "Bremen",
458 "Cottbus",
459 "Chemnitz",
460 "Dortmund",
461 "Dresden",
462 "Erfurt",
463 "Erlangen",
464 "Essen",
465 "Fulda",
466 "Gera",
467 "Kassel",
468 "Kiel",
469 "K\u00f6ln",
470 "L\u00fcbeck",
471 "Magdeburg",
472 "M\u00fcnchen",
473 "Potsdam",
474 "Stuttgart",
475 "Wiesbaden",
476};
477
478static const std::string_view _name_german_pre[] = {
479 "Bad ",
480 "Klein ",
481 "Neu ",
482};
483
484static const std::string_view _name_german_1[] = {
485 "Alb",
486 "Als",
487 "Ander",
488 "Arns",
489 "Bruns",
490 "Bam",
491 "Biele",
492 "Cloppen",
493 "Co",
494 "Duis",
495 "D\u00fcssel",
496 "Dannen",
497 "Elb",
498 "Els",
499 "Elster",
500 "Eichen",
501 "Ems",
502 "Fahr",
503 "Falken",
504 "Flens",
505 "Frank",
506 "Frei",
507 "Freuden",
508 "Fried",
509 "F\u00fcrsten",
510 "Hahn",
511 "Ham",
512 "Harz",
513 "Heidel",
514 "Hers",
515 "Herz",
516 "Holz",
517 "Hildes",
518 "Inns",
519 "Ilsen",
520 "Ingols",
521 "Kel",
522 "Kies",
523 "Korn",
524 "Kor",
525 "Kreuz",
526 "Kulm",
527 "Langen",
528 "Lim",
529 "Lohr",
530 "L\u00fcne",
531 "Mel",
532 "Michels",
533 "M\u00fchl",
534 "Naum",
535 "Nest",
536 "Nord",
537 "Nort",
538 "Nien",
539 "Nidda",
540 "Nieder",
541 "N\u00fcrn",
542 "Ober",
543 "Offen",
544 "Osna",
545 "Olden",
546 "Ols",
547 "Oranien",
548 "Pader",
549 "Quedlin",
550 "Quer",
551 "Ravens",
552 "Regens",
553 "Rott",
554 "Ros",
555 "R\u00fcssels",
556 "Saal",
557 "Saar",
558 "Salz",
559 "Sch\u00f6ne",
560 "Schwein",
561 "Sonder",
562 "Sonnen",
563 "Stein",
564 "Strals",
565 "Straus",
566 "S\u00fcd",
567 "Ton",
568 "Unter",
569 "Ur",
570 "Vor",
571 "Wald",
572 "War",
573 "Wert",
574 "Wester",
575 "Witten",
576 "Wolfs",
577 "W\u00fcrz",
578};
579
580static const std::string_view _name_german_2[] = {
581 "bach",
582 "berg",
583 "br\u00fcck",
584 "br\u00fccken",
585 "burg",
586 "dorf",
587 "feld",
588 "furt",
589 "hausen",
590 "haven",
591 "heim",
592 "horst",
593 "mund",
594 "m\u00fcnster",
595 "stadt",
596 "wald",
597};
598
599static const std::string_view _name_german_3_an_der[] = {
600 " an der ",
601};
602
603static const std::string_view _name_german_3_am[] = {
604 " am ",
605};
606
607static const std::string_view _name_german_4_an_der[] = {
608 "Oder",
609 "Spree",
610 "Donau",
611 "Saale",
612 "Elbe",
613};
614
615static const std::string_view _name_german_4_am[] = {
616 "Main",
617};
618
619static const std::string_view _name_spanish_real[] = {
620 "Caracas",
621 "Maracay",
622 "Maracaibo",
623 "Valencia",
624 "El Dorado",
625 "Morrocoy",
626 "Cata",
627 "Cataito",
628 "Ciudad Bol\u00edvar",
629 "Barquisimeto",
630 "M\u00e9rida",
631 "Puerto Ordaz",
632 "Santa Elena",
633 "San Juan",
634 "San Luis",
635 "San Rafael",
636 "Santiago",
637 "Barcelona",
638 "Barinas",
639 "San Crist\u00f3bal",
640 "San Francisco",
641 "San Mart\u00edn",
642 "Guayana",
643 "San Carlos",
644 "El Lim\u00f3n",
645 "Coro",
646 "Coro Coro",
647 "Puerto Ayacucho",
648 "Elorza",
649 "Arismendi",
650 "Trujillo",
651 "Car\u00fapano",
652 "Anaco",
653 "Lima",
654 "Cuzco",
655 "Iquitos",
656 "Callao",
657 "Huacho",
658 "Caman\u00e1",
659 "Puerto Chala",
660 "Santa Cruz",
661 "Quito",
662 "Cuenca",
663 "Medell\u00edn",
664 "Tulc\u00e1n",
665 "Esmeraldas",
666 "Ibarra",
667 "San Lorenzo",
668 "Macas",
669 "Mora\u00f1a",
670 "Machala",
671 "Zamora",
672 "Latacunga",
673 "Tena",
674 "Cochabamba",
675 "Ascensi\u00f3n",
676 "Magdalena",
677 "Santa Ana",
678 "Manoa",
679 "Sucre",
680 "Oruro",
681 "Uyuni",
682 "Potos\u00ed",
683 "Tupiza",
684 "La Quiaca",
685 "Yacu\u00edba",
686 "San Borja",
687 "Fuerte Olimpo",
688 "Fort\u00edn Esteros",
689 "Campo Grande",
690 "Bogot\u00e1",
691 "El Banco",
692 "Zaragoza",
693 "Neiva",
694 "Mariano",
695 "Cali",
696 "La Palma",
697 "Andoas",
698 "Barranca",
699 "Montevideo",
700 "Valdivia",
701 "Arica",
702 "Temuco",
703 "Tocopilla",
704 "Mendoza",
705 "Santa Rosa",
706};
707
708static const std::string_view _name_french_real[] = {
709 "Agincourt",
710 "Lille",
711 "Dinan",
712 "Aubusson",
713 "Rodez",
714 "Bergerac",
715 "Bordeaux",
716 "Bayonne",
717 "Montpellier",
718 "Mont\u00e9limar",
719 "Valence",
720 "Digne",
721 "Nice",
722 "Cannes",
723 "St. Tropez",
724 "Marseille",
725 "Narbonne",
726 "S\u00e8te",
727 "Aurillac",
728 "Gu\u00e9ret",
729 "Le Creusot",
730 "Nevers",
731 "Auxerre",
732 "Versailles",
733 "Meaux",
734 "Ch\u00e2lons",
735 "Compi\u00e8gne",
736 "Metz",
737 "Chaumont",
738 "Langres",
739 "Bourg",
740 "Lyon",
741 "Vienne",
742 "Grenoble",
743 "Toulon",
744 "Rennes",
745 "Le Mans",
746 "Angers",
747 "Nantes",
748 "Ch\u00e2teauroux",
749 "Orl\u00e9ans",
750 "Lisieux",
751 "Cherbourg",
752 "Morlaix",
753 "Cognac",
754 "Agen",
755 "Tulle",
756 "Blois",
757 "Troyes",
758 "Charolles",
759 "Toulouse",
760 "Chamb\u00e9ry",
761 "Tours",
762 "St. Brieuc",
763 "St. Malo",
764 "La Rochelle",
765 "St. Flour",
766 "Le Puy",
767 "Vichy",
768 "St. Valery",
769 "Beaujolais",
770 "Reims",
771 "Albi",
772 "Paris",
773 "Biarritz",
774 "B\u00e9ziers",
775 "N\u00eemes",
776 "Chamonix",
777 "Angoul\u00e8me",
778 "Alen\u00e7on",
779};
780
781static const std::string_view _name_silly_1[] = {
782 "Binky",
783 "Blubber",
784 "Bumble",
785 "Crinkle",
786 "Crusty",
787 "Dangle",
788 "Dribble",
789 "Flippety",
790 "Google",
791 "Muffin",
792 "Nosey",
793 "Pinker",
794 "Quack",
795 "Rumble",
796 "Sleepy",
797 "Sliggles",
798 "Snooze",
799 "Teddy",
800 "Tinkle",
801 "Twister",
802 "Pinker",
803 "Hippo",
804 "Itchy",
805 "Jelly",
806 "Jingle",
807 "Jolly",
808 "Kipper",
809 "Lazy",
810 "Frogs",
811 "Mouse",
812 "Quack",
813 "Cheeky",
814 "Lumpy",
815 "Grumpy",
816 "Mangle",
817 "Fiddle",
818 "Slugs",
819 "Noodles",
820 "Poodles",
821 "Shiver",
822 "Rumble",
823 "Pixie",
824 "Puddle",
825 "Riddle",
826 "Rattle",
827 "Rickety",
828 "Waffle",
829 "Sagging",
830 "Sausage",
831 "Egg",
832 "Sleepy",
833 "Scatter",
834 "Scramble",
835 "Silly",
836 "Simple",
837 "Trickle",
838 "Slippery",
839 "Slimey",
840 "Slumber",
841 "Soggy",
842 "Sliggles",
843 "Splutter",
844 "Sulky",
845 "Swindle",
846 "Swivel",
847 "Tasty",
848 "Tangle",
849 "Toggle",
850 "Trotting",
851 "Tumble",
852 "Snooze",
853 "Water",
854 "Windy",
855 "Amble",
856 "Bubble",
857 "Cheery",
858 "Cheese",
859 "Cockle",
860 "Cracker",
861 "Crumple",
862 "Teddy",
863 "Evil",
864 "Fairy",
865 "Falling",
866 "Fishy",
867 "Fizzle",
868 "Frosty",
869 "Griddle",
870};
871
872static const std::string_view _name_silly_2[] = {
873 "ton",
874 "bury",
875 "bottom",
876 "ville",
877 "well",
878 "weed",
879 "worth",
880 "wig",
881 "wick",
882 "wood",
883 "pool",
884 "head",
885 "burg",
886 "gate",
887 "bridge",
888};
889
890static const std::string_view _name_swedish_1[] = {
891 "Gamla ",
892 "Lilla ",
893 "Nya ",
894 "Stora ",
895};
896
897static const std::string_view _name_swedish_2[] = {
898 "Boll",
899 "Bor",
900 "Ed",
901 "En",
902 "Erik",
903 "Es",
904 "Fin",
905 "Fisk",
906 "Gr\u00f6n",
907 "Hag",
908 "Halm",
909 "Karl",
910 "Kram",
911 "Kung",
912 "Land",
913 "Lid",
914 "Lin",
915 "Mal",
916 "Malm",
917 "Marie",
918 "Ner",
919 "Norr",
920 "Oskar",
921 "Sand",
922 "Skog",
923 "Stock",
924 "Stor",
925 "Str\u00f6m",
926 "Sund",
927 "S\u00f6der",
928 "Tall",
929 "Tratt",
930 "Troll",
931 "Upp",
932 "Var",
933 "V\u00e4ster",
934 "\u00c4ngel",
935 "\u00d6ster",
936};
937
938static const std::string_view _name_swedish_2a[] = {
939 "B",
940 "Br",
941 "D",
942 "Dr",
943 "Dv",
944 "F",
945 "Fj",
946 "Fl",
947 "Fr",
948 "G",
949 "Gl",
950 "Gn",
951 "Gr",
952 "H",
953 "J",
954 "K",
955 "Kl",
956 "Kn",
957 "Kr",
958 "Kv",
959 "L",
960 "M",
961 "N",
962 "P",
963 "Pl",
964 "Pr",
965 "R",
966 "S",
967 "Sk",
968 "Skr",
969 "Sl",
970 "Sn",
971 "Sp",
972 "Spr",
973 "St",
974 "Str",
975 "Sv",
976 "T",
977 "Tr",
978 "Tv",
979 "V",
980 "Vr",
981};
982
983static const std::string_view _name_swedish_2b[] = {
984 "a",
985 "e",
986 "i",
987 "o",
988 "u",
989 "y",
990 "\u00e5",
991 "\u00e4",
992 "\u00f6",
993};
994
995static const std::string_view _name_swedish_2c[] = {
996 "ck",
997 "d",
998 "dd",
999 "g",
1000 "gg",
1001 "l",
1002 "ld",
1003 "m",
1004 "n",
1005 "nd",
1006 "ng",
1007 "nn",
1008 "p",
1009 "pp",
1010 "r",
1011 "rd",
1012 "rk",
1013 "rp",
1014 "rr",
1015 "rt",
1016 "s",
1017 "sk",
1018 "st",
1019 "t",
1020 "tt",
1021 "v",
1022};
1023
1024static const std::string_view _name_swedish_3[] = {
1025 "arp",
1026 "berg",
1027 "boda",
1028 "borg",
1029 "bro",
1030 "bukten",
1031 "by",
1032 "byn",
1033 "fors",
1034 "hammar",
1035 "hamn",
1036 "holm",
1037 "hus",
1038 "h\u00e4ttan",
1039 "kulle",
1040 "k\u00f6ping",
1041 "lund",
1042 "l\u00f6v",
1043 "sala",
1044 "skrona",
1045 "sl\u00e4tt",
1046 "sp\u00e5ng",
1047 "stad",
1048 "sund",
1049 "svall",
1050 "svik",
1051 "s\u00e5ker",
1052 "udde",
1053 "valla",
1054 "viken",
1055 "\u00e4lv",
1056 "\u00e5s",
1057};
1058
1059static const std::string_view _name_dutch_1[] = {
1060 "Nieuw ",
1061 "Oud ",
1062 "Groot ",
1063 "Zuid ",
1064 "Noord ",
1065 "Oost ",
1066 "West ",
1067 "Klein ",
1068};
1069
1070static const std::string_view _name_dutch_2[] = {
1071 "Hoog",
1072 "Laag",
1073 "Zuider",
1074 "Zuid",
1075 "Ooster",
1076 "Oost",
1077 "Wester",
1078 "West",
1079 "Hoofd",
1080 "Midden",
1081 "Eind",
1082 "Amster",
1083 "Amstel",
1084 "Dord",
1085 "Rotter",
1086 "Haar",
1087 "Til",
1088 "Enk",
1089 "Dok",
1090 "Veen",
1091 "Leidsch",
1092 "Lely",
1093 "En",
1094 "Kaats",
1095 "U",
1096 "Maas",
1097 "Mar",
1098 "Bla",
1099 "Al",
1100 "Alk",
1101 "Eer",
1102 "Drie",
1103 "Ter",
1104 "Groes",
1105 "Goes",
1106 "Soest",
1107 "Coe",
1108 "Uit",
1109 "Zwaag",
1110 "Hellen",
1111 "Slie",
1112 "IJ",
1113 "Grubben",
1114 "Groen",
1115 "Lek",
1116 "Ridder",
1117 "Schie",
1118 "Olde",
1119 "Roose",
1120 "Haar",
1121 "Til",
1122 "Loos",
1123 "Hil",
1124};
1125
1126static const std::string_view _name_dutch_3[] = {
1127 "Drog",
1128 "Nat",
1129 "Valk",
1130 "Bob",
1131 "Dedem",
1132 "Kollum",
1133 "Best",
1134 "Hoend",
1135 "Leeuw",
1136 "Graaf",
1137 "Uithuis",
1138 "Purm",
1139 "Hard",
1140 "Hell",
1141 "Werk",
1142 "Spijk",
1143 "Vink",
1144 "Wams",
1145 "Heerhug",
1146 "Koning",
1147};
1148
1149static const std::string_view _name_dutch_4[] = {
1150 "e",
1151 "er",
1152 "el",
1153 "en",
1154 "o",
1155 "s",
1156};
1157
1158static const std::string_view _name_dutch_5[] = {
1159 "stad",
1160 "vorst",
1161 "dorp",
1162 "dam",
1163 "beek",
1164 "doorn",
1165 "zijl",
1166 "zijlen",
1167 "lo",
1168 "muiden",
1169 "meden",
1170 "vliet",
1171 "nisse",
1172 "daal",
1173 "vorden",
1174 "vaart",
1175 "mond",
1176 "zaal",
1177 "water",
1178 "duinen",
1179 "heuvel",
1180 "geest",
1181 "kerk",
1182 "meer",
1183 "maar",
1184 "hoorn",
1185 "rade",
1186 "wijk",
1187 "berg",
1188 "heim",
1189 "sum",
1190 "richt",
1191 "burg",
1192 "recht",
1193 "drecht",
1194 "trecht",
1195 "tricht",
1196 "dricht",
1197 "lum",
1198 "rum",
1199 "halen",
1200 "oever",
1201 "wolde",
1202 "veen",
1203 "hoven",
1204 "gast",
1205 "kum",
1206 "hage",
1207 "dijk",
1208 "zwaag",
1209 "pomp",
1210 "huizen",
1211 "bergen",
1212 "schede",
1213 "mere",
1214 "end",
1215};
1216
1217static const std::string_view _name_finnish_real[] = {
1218 "Aijala",
1219 "Kisko",
1220 "Espoo",
1221 "Helsinki",
1222 "Tapiola",
1223 "J\u00e4rvel\u00e4",
1224 "Lahti",
1225 "Kotka",
1226 "Hamina",
1227 "Loviisa",
1228 "Kouvola",
1229 "Tampere",
1230 "Oulu",
1231 "Salo",
1232 "Malmi",
1233 "Pelto",
1234 "Koski",
1235 "Iisalmi",
1236 "Raisio",
1237 "Taavetti",
1238 "Joensuu",
1239 "Imatra",
1240 "Tapanila",
1241 "Pasila",
1242 "Turku",
1243 "Kupittaa",
1244 "Vaasa",
1245 "Pori",
1246 "Rauma",
1247 "Kolari",
1248 "Lieksa",
1249};
1250
1251static const std::string_view _name_finnish_1[] = {
1252 "Hiekka",
1253 "Haapa",
1254 "Mylly",
1255 "Sauna",
1256 "Uusi",
1257 "Vanha",
1258 "Kes\u00e4",
1259 "Kuusi",
1260 "Pelto",
1261 "Tuomi",
1262 "Terva",
1263 "Olki",
1264 "Hein\u00e4",
1265 "Sein\u00e4",
1266 "Rova",
1267 "Koivu",
1268 "Kokko",
1269 "M\u00e4nty",
1270 "Pihlaja",
1271 "Pet\u00e4j\u00e4",
1272 "Kielo",
1273 "Kauha",
1274 "Viita",
1275 "Kivi",
1276 "Riihi",
1277 "\u00c4\u00e4ne",
1278 "Niini",
1279};
1280
1281static const std::string_view _name_finnish_2[] = {
1282 "Lappeen",
1283 "Lohjan",
1284 "Savon",
1285 "Lapin",
1286 "Pit\u00e4j\u00e4n",
1287 "Martin",
1288 "Kuusan",
1289 "Kemi",
1290 "Keri",
1291 "H\u00e4meen",
1292 "Kangas",
1293};
1294
1295static const std::string_view _name_finnish_3[] = {
1296 "harju",
1297 "linna",
1298 "j\u00e4rvi",
1299 "kallio",
1300 "m\u00e4ki",
1301 "nummi",
1302 "joki",
1303 "kyl\u00e4",
1304 "lampi",
1305 "lahti",
1306 "mets\u00e4",
1307 "suo",
1308 "laakso",
1309 "niitty",
1310 "luoto",
1311 "hovi",
1312 "ranta",
1313 "koski",
1314 "salo",
1315};
1316
1317static const std::string_view _name_polish_1_m[] = {
1318 "Wielki ",
1319 "Ma\u0142y ",
1320 "Z\u0142y ",
1321 "Dobry ",
1322 "Nowy ",
1323 "Stary ",
1324 "Z\u0142oty ",
1325 "Zielony ",
1326 "Bia\u0142y ",
1327 "Modry ",
1328 "D\u0119bowy ",
1329};
1330
1331static const std::string_view _name_polish_1_f[] = {
1332 "Wielka ",
1333 "Ma\u0142a ",
1334 "Z\u0142a ",
1335 "Dobra ",
1336 "Nowa ",
1337 "Stara ",
1338 "Z\u0142ota ",
1339 "Zielona ",
1340 "Bia\u0142a ",
1341 "Modra ",
1342 "D\u0119bowa ",
1343};
1344
1345static const std::string_view _name_polish_1_n[] = {
1346 "Wielkie ",
1347 "Ma\u0142e ",
1348 "Z\u0142e ",
1349 "Dobre ",
1350 "Nowe ",
1351 "Stare ",
1352 "Z\u0142ote ",
1353 "Zielone ",
1354 "Bia\u0142e ",
1355 "Modre ",
1356 "D\u0119bowe ",
1357};
1358
1359static const std::string_view _name_polish_2_o[] = {
1360 "Frombork",
1361 "Gniezno",
1362 "Olsztyn",
1363 "Toru\u0144",
1364 "Bydgoszcz",
1365 "Terespol",
1366 "Krak\u00f3w",
1367 "Pozna\u0144",
1368 "Wroc\u0142aw",
1369 "Katowice",
1370 "Cieszyn",
1371 "Bytom",
1372 "Frombork",
1373 "Hel",
1374 "Konin",
1375 "Lublin",
1376 "Malbork",
1377 "Sopot",
1378 "Sosnowiec",
1379 "Gda\u0144sk",
1380 "Gdynia",
1381 "Sieradz",
1382 "Sandomierz",
1383 "Szczyrk",
1384 "Szczytno",
1385 "Szczecin",
1386 "Zakopane",
1387 "Szklarska Por\u0119ba",
1388 "Bochnia",
1389 "Golub-Dobrzy\u0144",
1390 "Chojnice",
1391 "Ostrowiec",
1392 "Otwock",
1393 "Wolsztyn",
1394};
1395
1396static const std::string_view _name_polish_2_m[] = {
1397 "Jarocin",
1398 "Gogolin",
1399 "Tomasz\u00f3w",
1400 "Piotrk\u00f3w",
1401 "Lidzbark",
1402 "Rypin",
1403 "Radzymin",
1404 "Wo\u0142omin",
1405 "Pruszk\u00f3w",
1406 "Olsztynek",
1407 "Rypin",
1408 "Cisek",
1409 "Krotoszyn",
1410 "Stoczek",
1411 "Lubin",
1412 "Lubicz",
1413 "Milicz",
1414 "Targ",
1415 "Ostr\u00f3w",
1416 "Ozimek",
1417 "Puck",
1418 "Rzepin",
1419 "Siewierz",
1420 "Stargard",
1421 "Starogard",
1422 "Turek",
1423 "Tymbark",
1424 "Wolsztyn",
1425 "Strzepcz",
1426 "Strzebielin",
1427 "Sochaczew",
1428 "Gr\u0119bocin",
1429 "Gniew",
1430 "Lubliniec",
1431 "Lubasz",
1432 "Lutomiersk",
1433 "Niemodlin",
1434 "Przeworsk",
1435 "Ursus",
1436 "Tyczyn",
1437 "Sztum",
1438 "Szczebrzeszyn",
1439 "Wolin",
1440 "Wrzeszcz",
1441 "Zgierz",
1442 "Zieleniec",
1443 "Drobin",
1444 "Garwolin",
1445};
1446
1447static const std::string_view _name_polish_2_f[] = {
1448 "Szprotawa",
1449 "Pogorzelica",
1450 "Mot\u0142awa",
1451 "Lubawa",
1452 "Nidzica",
1453 "Kruszwica",
1454 "Bierawa",
1455 "Brodnica",
1456 "Chojna",
1457 "Krzepica",
1458 "Ruda",
1459 "Rumia",
1460 "Tuchola",
1461 "Trzebinia",
1462 "Ustka",
1463 "Warszawa",
1464 "Bobowa",
1465 "Dukla",
1466 "Krynica",
1467 "Murowana",
1468 "Niemcza",
1469 "Zaspa",
1470 "Zawoja",
1471 "Wola",
1472 "Limanowa",
1473 "Rabka",
1474 "Skawina",
1475 "Pilawa",
1476};
1477
1478static const std::string_view _name_polish_2_n[] = {
1479 "Lipsko",
1480 "Pilzno",
1481 "Przodkowo",
1482 "Strzelno",
1483 "Leszno",
1484 "Jaworzno",
1485 "Choszczno",
1486 "Mogilno",
1487 "Luzino",
1488 "Miasto",
1489 "Dziadowo",
1490 "Kowalewo",
1491 "Legionowo",
1492 "Miastko",
1493 "Zabrze",
1494 "Zawiercie",
1495 "Kochanowo",
1496 "Miechucino",
1497 "Mirachowo",
1498 "Robakowo",
1499 "Kosakowo",
1500 "Borne",
1501 "Braniewo",
1502 "Sulinowo",
1503 "Chmielno",
1504 "Jastrz\u0119bie",
1505 "Gryfino",
1506 "Koronowo",
1507 "Lubichowo",
1508 "Opoczno",
1509};
1510
1511static const std::string_view _name_polish_3_m[] = {
1512 " Wybudowanie",
1513 " \u015awi\u0119tokrzyski",
1514 " G\u00f3rski",
1515 " Morski",
1516 " Zdr\u00f3j",
1517 " Wody",
1518 " Bajoro",
1519 " Kraje\u0144ski",
1520 " \u015al\u0105ski",
1521 " Mazowiecki",
1522 " Pomorski",
1523 " Wielki",
1524 " Maly",
1525 " Warmi\u0144ski",
1526 " Mazurski",
1527 " Mniejszy",
1528 " Wi\u0119kszy",
1529 " G\u00f3rny",
1530 " Dolny",
1531 " Wielki",
1532 " Stary",
1533 " Nowy",
1534 " Wielkopolski",
1535 " Wzg\u00f3rze",
1536 " Mosty",
1537 " Kujawski",
1538 " Ma\u0142opolski",
1539 " Podlaski",
1540 " Lesny",
1541};
1542
1543static const std::string_view _name_polish_3_f[] = {
1544 " Wybudowanie",
1545 " \u015awi\u0119tokrzyska",
1546 " G\u00f3rska",
1547 " Morska",
1548 " Zdr\u00f3j",
1549 " Woda",
1550 " Bajoro",
1551 " Kraje\u0144ska",
1552 " \u015al\u0105ska",
1553 " Mazowiecka",
1554 " Pomorska",
1555 " Wielka",
1556 " Ma\u0142a",
1557 " Warmi\u0144ska",
1558 " Mazurska",
1559 " Mniejsza",
1560 " Wi\u0119ksza",
1561 " G\u00f3rna",
1562 " Dolna",
1563 " Wielka",
1564 " Stara",
1565 " Nowa",
1566 " Wielkopolska",
1567 " Wzg\u00f3rza",
1568 " Mosty",
1569 " Kujawska",
1570 " Malopolska",
1571 " Podlaska",
1572 " Le\u015bna",
1573};
1574
1575static const std::string_view _name_polish_3_n[] = {
1576 " Wybudowanie",
1577 " \u015awietokrzyskie",
1578 " G\u00f3rskie",
1579 " Morskie",
1580 " Zdr\u00f3j",
1581 " Wody",
1582 " Bajoro",
1583 " Kraje\u0144skie",
1584 " \u015al\u0105skie",
1585 " Mazowieckie",
1586 " Pomorskie",
1587 " Wielkie",
1588 " Ma\u0142e",
1589 " Warmi\u0144skie ",
1590 " Mazurskie ",
1591 " Mniejsze",
1592 " Wi\u0119ksze",
1593 " G\u00f3rne",
1594 " Dolne",
1595 " Wielkie",
1596 " Stare",
1597 " Nowe",
1598 " Wielkopolskie",
1599 " Wzg\u00f3rze",
1600 " Mosty",
1601 " Kujawskie",
1602 " Ma\u0142opolskie",
1603 " Podlaskie",
1604 " Le\u015bne",
1605};
1606
1607static const std::string_view _name_czech_real[] = {
1608 "A\u0161",
1609 "Bene\u0161ov",
1610 "Beroun",
1611 "Bezdru\u017eice",
1612 "Blansko",
1613 "B\u0159eclav",
1614 "Brno",
1615 "Brunt\u00e1l",
1616 "\u010cesk\u00e1 L\u00edpa",
1617 "\u010cesk\u00e9 Bud\u011bjovice",
1618 "\u010cesk\u00fd Krumlov",
1619 "D\u011b\u010d\u00edn",
1620 "Doma\u017elice",
1621 "Dub\u00ed",
1622 "Fr\u00fddek-M\u00edstek",
1623 "Havl\u00ed\u010dk\u016fv Brod",
1624 "Hodon\u00edn",
1625 "Hradec Kr\u00e1lov\u00e9",
1626 "Humpolec",
1627 "Cheb",
1628 "Chomutov",
1629 "Chrudim",
1630 "Jablonec nad Nisou",
1631 "Jesen\u00edk",
1632 "Ji\u010d\u00edn",
1633 "Jihlava",
1634 "Jind\u0159ich\u016fv Hradec",
1635 "Karlovy Vary",
1636 "Karvin\u00e1",
1637 "Kladno",
1638 "Klatovy",
1639 "Kol\u00edn",
1640 "Kosmonosy",
1641 "Krom\u011b\u0159\u00ed\u017e",
1642 "Kutn\u00e1 Hora",
1643 "Liberec",
1644 "Litom\u011b\u0159ice",
1645 "Louny",
1646 "Man\u011bt\u00edn",
1647 "M\u011bln\u00edk",
1648 "Mlad\u00e1 Boleslav",
1649 "Most",
1650 "N\u00e1chod",
1651 "Nov\u00fd Ji\u010d\u00edn",
1652 "Nymburk",
1653 "Olomouc",
1654 "Opava",
1655 "Or\u00e1\u010dov",
1656 "Ostrava",
1657 "Pardubice",
1658 "Pelh\u0159imov",
1659 "Pol\u017eice",
1660 "P\u00edsek",
1661 "Plze\u0148",
1662 "Praha",
1663 "Prachatice",
1664 "P\u0159erov",
1665 "P\u0159\u00edbram",
1666 "Prost\u011bjov",
1667 "Rakovn\u00edk",
1668 "Rokycany",
1669 "Rudn\u00e1",
1670 "Rychnov nad Kn\u011b\u017enou",
1671 "Semily",
1672 "Sokolov",
1673 "Strakonice",
1674 "St\u0159edokluky",
1675 "\u0160umperk",
1676 "Svitavy",
1677 "T\u00e1bor",
1678 "Tachov",
1679 "Teplice",
1680 "T\u0159eb\u00ed\u010d",
1681 "Trutnov",
1682 "Uhersk\u00e9 Hradi\u0161t\u011b",
1683 "\u00dast\u00ed nad Labem",
1684 "\u00dast\u00ed nad Orlic\u00ed",
1685 "Vset\u00edn",
1686 "Vy\u0161kov",
1687 "\u017d\u010f\u00e1r nad S\u00e1zavou",
1688 "Zl\u00edn",
1689 "Znojmo",
1690};
1691
1692
1693/* The advanced hyperintelligent Czech town names generator!
1694 * The tables and MakeCzechTownName() is (c) Petr Baudis 2005 (GPL'd)
1695 * Feel free to ask me about anything unclear or if you need help
1696 * with cloning this for your own language. */
1697
1699enum CzechGender : uint8_t {
1700 CZG_SMASC,
1701 CZG_SFEM,
1702 CZG_SNEUT,
1703 CZG_PMASC,
1704 CZG_PFEM,
1705 CZG_PNEUT,
1710};
1711
1712enum CzechPattern : uint8_t {
1713 CZP_JARNI,
1714 CZP_MLADY,
1715 CZP_PRIVL
1716};
1717
1719static const std::string_view _name_czech_patmod[][3] = {
1720 /* CZG_SMASC */ { "\u00ed", "\u00fd", "uv" },
1721 /* CZG_SFEM */ { "\u00ed", "\u00e1", "ova" },
1722 /* CZG_SNEUT */ { "\u00ed", "\u00e9", "ovo" },
1723 /* CZG_PMASC */ { "\u00ed", "\u00e9", "ovy" },
1724 /* CZG_PFEM */ { "\u00ed", "\u00e9", "ovy" },
1725 /* CZG_PNEUT */ { "\u00ed", "\u00e1", "ova" }
1726};
1727
1732enum class CzechAllowFlag : uint8_t {
1733 Short,
1734 Middle,
1735 Long,
1736};
1737
1740
1741static constexpr CzechAllowFlags CZA_ALL = {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long};
1742
1744enum class CzechChooseFlag : uint8_t {
1745 Colour,
1748};
1749
1752
1753static constexpr CzechChooseFlags CZC_ANY = {CzechChooseFlag::Colour, CzechChooseFlag::Postfix, CzechChooseFlag::NoPostfix};
1754
1756 CzechGender gender;
1757 CzechAllowFlags allow;
1758 CzechChooseFlags choose;
1759 std::string_view name;
1760};
1761
1763 CzechPattern pattern;
1764 CzechChooseFlags choose;
1765 std::string_view name;
1766};
1767
1770 { CZP_JARNI, CZC_ANY, "Horn" },
1771 { CZP_JARNI, CZC_ANY, "Horn" },
1772 { CZP_JARNI, CZC_ANY, "Doln" },
1773 { CZP_JARNI, CZC_ANY, "Doln" },
1774 { CZP_JARNI, CZC_ANY, "P\u0159edn" },
1775 { CZP_JARNI, CZC_ANY, "Zadn" },
1776 { CZP_JARNI, CZC_ANY, "Kosteln" },
1777 { CZP_JARNI, CZC_ANY, "Havran" },
1778 { CZP_JARNI, CZC_ANY, "\u0158\u00ed\u010dn" },
1779 { CZP_JARNI, CZC_ANY, "Jezern" },
1780 { CZP_MLADY, CZC_ANY, "Velk" },
1781 { CZP_MLADY, CZC_ANY, "Velk" },
1782 { CZP_MLADY, CZC_ANY, "Mal" },
1783 { CZP_MLADY, CZC_ANY, "Mal" },
1784 { CZP_MLADY, CZC_ANY, "Vysok" },
1785 { CZP_MLADY, CZC_ANY, "\u010cesk" },
1786 { CZP_MLADY, CZC_ANY, "Moravsk" },
1787 { CZP_MLADY, CZC_ANY, "Slov\u00e1ck" },
1788 { CZP_MLADY, CZC_ANY, "Slezsk" },
1789 { CZP_MLADY, CZC_ANY, "Uhersk" },
1790 { CZP_MLADY, CZC_ANY, "Star" },
1791 { CZP_MLADY, CZC_ANY, "Star" },
1792 { CZP_MLADY, CZC_ANY, "Nov" },
1793 { CZP_MLADY, CZC_ANY, "Nov" },
1794 { CZP_MLADY, CZC_ANY, "Mlad" },
1795 { CZP_MLADY, CZC_ANY, "Kr\u00e1lovsk" },
1796 { CZP_MLADY, CZC_ANY, "Kamenn" },
1797 { CZP_MLADY, CZC_ANY, "Cihlov" },
1798 { CZP_MLADY, CZC_ANY, "Divn" },
1799 { CZP_MLADY, CzechChooseFlag::Colour, "\u010cerven" },
1800 { CZP_MLADY, CzechChooseFlag::Colour, "\u010cerven" },
1801 { CZP_MLADY, CzechChooseFlag::Colour, "\u010cerven" },
1802 { CZP_MLADY, CzechChooseFlag::Colour, "Zelen" },
1803 { CZP_MLADY, CzechChooseFlag::Colour, "\u017dlut" },
1804 { CZP_MLADY, CzechChooseFlag::Colour, "Siv" },
1805 { CZP_MLADY, CzechChooseFlag::Colour, "\u0160ed" },
1806 { CZP_MLADY, CzechChooseFlag::Colour, "B\u00edl" },
1807 { CZP_MLADY, CzechChooseFlag::Colour, "B\u00edl" },
1808 { CZP_MLADY, CzechChooseFlag::Colour, "Modr" },
1809 { CZP_MLADY, CzechChooseFlag::Colour, "R\u016f\u017eov" },
1810 { CZP_MLADY, CzechChooseFlag::Colour, "\u010cern" },
1811 { CZP_PRIVL, CZC_ANY, "Kr\u00e1l" },
1812 { CZP_PRIVL, CZC_ANY, "Jan" },
1813 { CZP_PRIVL, CZC_ANY, "Karl" },
1814 { CZP_PRIVL, CZC_ANY, "Kry\u0161tof" },
1815 { CZP_PRIVL, CZC_ANY, "Ji\u0159\u00edk" },
1816 { CZP_PRIVL, CZC_ANY, "Petr" },
1817 { CZP_PRIVL, CZC_ANY, "Sud" },
1818};
1819
1822 { CZG_SMASC, CZA_ALL, CzechChooseFlag::Colour, "Sedlec" },
1823 { CZG_SMASC, CZA_ALL, CzechChooseFlag::Colour, "Brod" },
1824 { CZG_SMASC, CZA_ALL, CzechChooseFlag::Colour, "Brod" },
1825 { CZG_SMASC, CZA_ALL, {}, "\u00daval" },
1826 { CZG_SMASC, CZA_ALL, CzechChooseFlag::Colour, "\u017d\u010f\u00e1r" },
1827 { CZG_SMASC, CZA_ALL, CzechChooseFlag::Colour, "Smrk" },
1828 { CZG_SFEM, CZA_ALL, CzechChooseFlag::Colour, "Hora" },
1829 { CZG_SFEM, CZA_ALL, CzechChooseFlag::Colour, "Lhota" },
1830 { CZG_SFEM, CZA_ALL, CzechChooseFlag::Colour, "Lhota" },
1831 { CZG_SFEM, CZA_ALL, CzechChooseFlag::Colour, "Hlava" },
1832 { CZG_SFEM, CZA_ALL, CzechChooseFlag::Colour, "L\u00edpa" },
1833 { CZG_SNEUT, CZA_ALL, CzechChooseFlag::Colour, "Pole" },
1834 { CZG_SNEUT, CZA_ALL, CzechChooseFlag::Colour, "\u00dadol\u00ed" },
1835 { CZG_PMASC, CZA_ALL, {}, "\u00davaly" },
1836 { CZG_PFEM, CZA_ALL, CzechChooseFlag::Colour, "Luka" },
1837 { CZG_PNEUT, CZA_ALL, CzechChooseFlag::Colour, "Pole" },
1838};
1839
1842 { CZG_SMASC, { CzechAllowFlag::Middle }, CzechChooseFlag::Colour, "Kostel" },
1843 { CZG_SMASC, { CzechAllowFlag::Middle }, CzechChooseFlag::Colour, "Kl\u00e1\u0161ter" },
1844 { CZG_SMASC, {CzechAllowFlag::Short }, CzechChooseFlag::Colour, "Lhot" },
1845 { CZG_SFEM, {CzechAllowFlag::Short }, CzechChooseFlag::Colour, "Lhot" },
1846 { CZG_SFEM, {CzechAllowFlag::Short }, CzechChooseFlag::Colour, "Hur" },
1847 { CZG_FREE, { CzechAllowFlag::Middle, CzechAllowFlag::Long}, {}, "Sedl" },
1848 { CZG_FREE, {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long}, CzechChooseFlag::Colour, "Hrad" },
1849 { CZG_NFREE, { CzechAllowFlag::Middle }, {}, "Pras" },
1850 { CZG_NFREE, { CzechAllowFlag::Middle }, {}, "Ba\u017e" },
1851 { CZG_NFREE, { CzechAllowFlag::Middle }, {}, "Tes" },
1852 { CZG_NFREE, { CzechAllowFlag::Middle }, {}, "U\u017e" },
1853 { CZG_NFREE, { CzechAllowFlag::Middle, CzechAllowFlag::Long}, CzechChooseFlag::Postfix, "B\u0159" },
1854 { CZG_NFREE, { CzechAllowFlag::Middle, CzechAllowFlag::Long}, {}, "Vod" },
1855 { CZG_NFREE, { CzechAllowFlag::Middle, CzechAllowFlag::Long}, {}, "Jan" },
1856 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Prach" },
1857 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Kunr" },
1858 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Strak" },
1859 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "V\u00edt" },
1860 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Vy\u0161" },
1861 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "\u017dat" },
1862 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "\u017der" },
1863 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "St\u0159ed" },
1864 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Harv" },
1865 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Pruh" },
1866 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Tach" },
1867 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "P\u00edsn" },
1868 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Jin" },
1869 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Jes" },
1870 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Jar" },
1871 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Sok" },
1872 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Hod" },
1873 { CZG_NFREE, { CzechAllowFlag::Long}, {}, "Net" },
1874 { CZG_FREE, { CzechAllowFlag::Long}, {}, "Pra\u017e" },
1875 { CZG_FREE, { CzechAllowFlag::Long}, {}, "Nerat" },
1876 { CZG_FREE, { CzechAllowFlag::Long}, {}, "Kral" },
1877 { CZG_FREE, { CzechAllowFlag::Long}, {}, "Hut" },
1878 { CZG_FREE, { CzechAllowFlag::Long}, CzechChooseFlag::NoPostfix, "Pan" },
1879 { CZG_FREE, {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long}, CzechChooseFlag::NoPostfix, "Odst\u0159ed" },
1880 { CZG_FREE, {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long}, CzechChooseFlag::Colour, "Mrat" },
1881 { CZG_FREE, { CzechAllowFlag::Long}, CzechChooseFlag::Colour, "Hlav" },
1882 { CZG_FREE, {CzechAllowFlag::Short, CzechAllowFlag::Middle }, {}, "M\u011b\u0159" },
1883 { CZG_FREE, { CzechAllowFlag::Middle, CzechAllowFlag::Long}, {}, "Lip" },
1884};
1885
1887static const std::string_view _name_czech_subst_postfix[] = {
1888 "av", "an", "at",
1889 "ov", "on", "ot",
1890 "ev", "en", "et",
1891};
1892
1895 { CZG_SMASC, {CzechAllowFlag::Short, CzechAllowFlag::Middle }, CZC_ANY, "ec" },
1896 { CZG_SMASC, {CzechAllowFlag::Short, CzechAllowFlag::Middle }, CZC_ANY, "\u00edn" },
1897 { CZG_SMASC, {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long}, CZC_ANY, "ov" },
1898 { CZG_SMASC, {CzechAllowFlag::Short, CzechAllowFlag::Long}, CZC_ANY, "kov" },
1899 { CZG_SMASC, { CzechAllowFlag::Long}, CzechChooseFlag::Postfix, "\u00edn" },
1900 { CZG_SMASC, { CzechAllowFlag::Long}, CzechChooseFlag::Postfix, "n\u00edk" },
1901 { CZG_SMASC, { CzechAllowFlag::Long}, CZC_ANY, "burk" },
1902 { CZG_SFEM, {CzechAllowFlag::Short }, CZC_ANY, "ka" },
1903 { CZG_SFEM, { CzechAllowFlag::Middle }, CZC_ANY, "inka" },
1904 { CZG_SFEM, { CzechAllowFlag::Middle }, CZC_ANY, "n\u00e1" },
1905 { CZG_SFEM, { CzechAllowFlag::Long}, CZC_ANY, "ava" },
1906 { CZG_PMASC, { CzechAllowFlag::Long}, CzechChooseFlag::Postfix, "\u00edky" },
1907 { CZG_PMASC, { CzechAllowFlag::Long}, CZC_ANY, "upy" },
1908 { CZG_PMASC, { CzechAllowFlag::Long}, CZC_ANY, "olupy" },
1909 { CZG_PFEM, { CzechAllowFlag::Long}, CZC_ANY, "avy" },
1910 { CZG_PFEM, {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long}, CZC_ANY, "ice" },
1911 { CZG_PFEM, {CzechAllowFlag::Short, CzechAllowFlag::Middle, CzechAllowFlag::Long}, CZC_ANY, "i\u010dky" },
1912 { CZG_PNEUT, {CzechAllowFlag::Short, CzechAllowFlag::Middle }, CZC_ANY, "na" },
1913 { CZG_SNEUT, {CzechAllowFlag::Short, CzechAllowFlag::Middle }, CZC_ANY, "no" },
1914 { CZG_SNEUT, { CzechAllowFlag::Long}, CZC_ANY, "i\u0161t\u011b" },
1915};
1916
1917static const std::string_view _name_czech_suffix[] = {
1918 "nad Cidlinou",
1919 "nad Dyj\u00ed",
1920 "nad Jihlavou",
1921 "nad Labem",
1922 "nad Lesy",
1923 "nad Moravou",
1924 "nad Nisou",
1925 "nad Odrou",
1926 "nad Ostravic\u00ed",
1927 "nad S\u00e1zavou",
1928 "nad Vltavou",
1929 "pod Prad\u011bdem",
1930 "pod Radho\u0161t\u011bm",
1931 "pod \u0158\u00edpem",
1932 "pod Sn\u011b\u017ekou",
1933 "pod \u0160pi\u010d\u00e1kem",
1934 "pod Sedlem",
1935 "v \u010cech\u00e1ch",
1936 "na Morav\u011b",
1937};
1938
1939
1940
1941static const std::string_view _name_romanian_real[] = {
1942 "Adjud",
1943 "Alba Iulia",
1944 "Alexandria",
1945 "Babadag",
1946 "Bac\u0103u",
1947 "Baia Mare",
1948 "B\u0103ile Herculane",
1949 "B\u0103ile\u0219ti",
1950 "B\u00e2rlad",
1951 "Bicaz",
1952 "Bistri\u021ba",
1953 "Blaj",
1954 "Borsec",
1955 "Boto\u0219ani",
1956 "Br\u0103ila",
1957 "Bra\u0219ov",
1958 "Bucure\u0219ti",
1959 "Buftea",
1960 "Buz\u0103u",
1961 "C\u0103l\u0103ra\u0219i",
1962 "Caransebe\u0219",
1963 "Cernavod\u0103",
1964 "Cluj-Napoca",
1965 "Constan\u021ba",
1966 "Covasna",
1967 "Craiova",
1968 "Dej",
1969 "Deva",
1970 "Dorohoi",
1971 "Drobeta-Turnu Severin",
1972 "Dr\u0103g\u0103\u0219ani",
1973 "F\u0103g\u0103ra\u0219",
1974 "F\u0103lticeni",
1975 "Fete\u0219ti",
1976 "Foc\u0219ani",
1977 "Gala\u021bi",
1978 "Gheorgheni",
1979 "Giurgiu",
1980 "H\u00e2r\u0219ova",
1981 "Hunedoara",
1982 "Hu\u0219i",
1983 "Ia\u0219i",
1984 "Isaccea",
1985 "Lugoj",
1986 "M\u0103cin",
1987 "Mangalia",
1988 "Medgidia",
1989 "Media\u0219",
1990 "Miercurea Ciuc",
1991 "Mizil",
1992 "Motru",
1993 "N\u0103s\u0103ud",
1994 "N\u0103vodari",
1995 "Odobe\u0219ti",
1996 "Olteni\u021ba",
1997 "One\u0219ti",
1998 "Oradea",
1999 "Or\u0219ova",
2000 "Petro\u0219ani",
2001 "Piatra Neam\u021b",
2002 "Pite\u0219ti",
2003 "Ploie\u0219ti",
2004 "Predeal",
2005 "R\u00e2mnicu V\u00e2lcea",
2006 "Reghin",
2007 "Re\u0219i\u021ba",
2008 "Roman",
2009 "Ro\u0219iorii de Vede",
2010 "Satu Mare",
2011 "Sebe\u0219",
2012 "Sf\u00e2ntu Gheorghe",
2013 "Sibiu",
2014 "Sighi\u0219oara",
2015 "Sinaia",
2016 "Slatina",
2017 "Slobozia",
2018 "Sovata",
2019 "Suceava",
2020 "Sulina",
2021 "\u021a\u0103nd\u0103rei",
2022 "T\u00e2rgovi\u0219te",
2023 "T\u00e2rgu Jiu",
2024 "T\u00e2rgu Mure\u0219",
2025 "Tecuci",
2026 "Timi\u0219oara",
2027 "Tulcea",
2028 "Turda",
2029 "Turnu M\u0103gurele",
2030 "Urziceni",
2031 "Vaslui",
2032 "Vatra Dornei",
2033 "Victoria",
2034 "Videle",
2035 "Zal\u0103u",
2036};
2037
2038static const std::string_view _name_slovak_real[] = {
2039 "Bratislava",
2040 "B\u00e1novce nad Bebravou",
2041 "Bansk\u00e1 Bystrica",
2042 "Bansk\u00e1 \u0160tiavnica",
2043 "Bardejov",
2044 "Brezno",
2045 "Brezova pod Bradlom",
2046 "Byt\u010da",
2047 "\u010cadca",
2048 "\u010cierna nad Tisou",
2049 "Detva",
2050 "Pre\u0161ov",
2051 "Dolny Kubin",
2052 "Spi\u0161sk\u00e1 Nov\u00e1 Ves",
2053 "Dunajsk\u00e1 Streda",
2054 "Gab\u010d\u00edikovo",
2055 "Galanta",
2056 "Gbely",
2057 "Gelnica",
2058 "Handlov\u00e1",
2059 "Hlohovec",
2060 "Hol\u00ed\u010d",
2061 "Humenn\u00e9",
2062 "Hurbanovo",
2063 "Kezmarok",
2064 "Kom\u00e1rno",
2065 "Ko\u0161ice",
2066 "Kremnica",
2067 "Krompachy",
2068 "Kuty",
2069 "Leopoldov",
2070 "Levo\u010da",
2071 "Liptovsk\u00fd Mikul\u00e1\u0161",
2072 "Lu\u010denec",
2073 "Malacky",
2074 "Martin",
2075 "Medzilaborce",
2076 "Michalovce",
2077 "Modra",
2078 "Myjava",
2079 "N\u00e1mestovo",
2080 "Nitra",
2081 "Nov\u00e1 Ba\u0148a",
2082 "Nov\u00e9 Mesto nad V\u00e1hom",
2083 "Nov\u00e9 Z\u00e1mky",
2084 "Partiz\u00e1nske",
2085 "Pezinok",
2086 "Pie\u0161\u0165any",
2087 "Polt\u00e1r",
2088 "Poprad",
2089 "Pova\u017esk\u00e1 Bystrica",
2090 "Prievidza",
2091 "P\u00fachov",
2092 "Rev\u00faca",
2093 "Rimavsk\u00e1 Sobota",
2094 "Ro\u017e\u0148ava",
2095 "Ru\u017eomberok",
2096 "Sabinov",
2097 "\u0160a\u013ea",
2098 "Senec",
2099 "Senica",
2100 "Sere\u010f",
2101 "Skalica",
2102 "Sl\u00e1dkovi\u00cdovo",
2103 "Smolenice",
2104 "Snina",
2105 "Star\u00e1 \u013dubov\u0148a",
2106 "Star\u00e1 Tur\u00e1",
2107 "Str\u00e1\u017eske",
2108 "Stropkov",
2109 "Stupava",
2110 "\u0160t\u00farovo",
2111 "\u0120ulekovo",
2112 "Topo\u013e\u010dany",
2113 "Trebi\u0161ov",
2114 "Tren\u010d\u00edn",
2115 "Trnava",
2116 "Tur\u010dianske Teplice",
2117 "Tvrdo\u0161\u00edn",
2118 "Vr\u00e1ble",
2119 "Vranov nad Top\u013eou",
2120 "Z\u00e1horsk\u00e1 Bystrica",
2121 "\u017ddiar",
2122 "\u013diar nad Hronom",
2123 "\u017dilina",
2124 "Zlat\u00e9 Moravce",
2125 "Zvolen",
2126};
2127
2128static const std::string_view _name_norwegian_1[] = {
2129 "Arna",
2130 "Aust",
2131 "Bj\u00f8rk",
2132 "Bj\u00f8rn",
2133 "Brand",
2134 "B\u00f8ver",
2135 "Drag",
2136 "Dr\u00f8",
2137 "Eids",
2138 "Egge",
2139 "Fager",
2140 "Finns",
2141 "Flat",
2142 "Foll",
2143 "Foss",
2144 "Fugle",
2145 "Furu",
2146 "Gaus",
2147 "Galte",
2148 "Geir",
2149 "Gl\u00f8s",
2150 "Gran",
2151 "Grind",
2152 "Grims",
2153 "Gr\u00f8n",
2154 "Gr\u00f8t",
2155 "Gulle",
2156 "Haka",
2157 "Hammer",
2158 "Haug",
2159 "Hol",
2160 "Hon",
2161 "Hop",
2162 "Hov",
2163 "Jess",
2164 "Kabel",
2165 "Kjerns",
2166 "Kjerring",
2167 "Knatte",
2168 "Krok",
2169 "K\u00f8y",
2170 "Lang",
2171 "Lauv",
2172 "Leir",
2173 "Lund",
2174 "Logn",
2175 "Lo",
2176 "Lyng",
2177 "L\u00f8n",
2178 "Mesna",
2179 "Mel",
2180 "Mo",
2181 "Nar",
2182 "Nitte",
2183 "Nord",
2184 "Odd",
2185 "Ola",
2186 "Otte",
2187 "Ran",
2188 "Rev",
2189 "Rog",
2190 "Roms",
2191 "Rosen",
2192 "Sand",
2193 "Sau",
2194 "Sel",
2195 "Sol",
2196 "Sjur",
2197 "Sk\u00e5r",
2198 "Sl\u00e5tt",
2199 "Stj\u00f8r",
2200 "Stor",
2201 "Svart",
2202 "Svens",
2203 "Svin",
2204 "Sylte",
2205 "Syn",
2206 "Tran",
2207 "Vass",
2208 "Ved",
2209 "Vest",
2210 "Vesle",
2211 "Vik",
2212 "V\u00e5g",
2213};
2214
2215static const std::string_view _name_norwegian_2[] = {
2216 "aker",
2217 "anger",
2218 "bakken",
2219 "bekk",
2220 "berg",
2221 "botn",
2222 "breen",
2223 "bu",
2224 "bugen",
2225 "by",
2226 "bygd",
2227 "b\u00f8",
2228 "dal",
2229 "egga",
2230 "eid",
2231 "elv",
2232 "enga",
2233 "foss",
2234 "fjell",
2235 "fjord",
2236 "foten",
2237 "gard",
2238 "grend",
2239 "hammer",
2240 "haug",
2241 "havn",
2242 "heim",
2243 "hella",
2244 "hovda",
2245 "h\u00f8a",
2246 "h\u00f8gda",
2247 "kampen",
2248 "kj\u00f8len",
2249 "kollen",
2250 "kroken",
2251 "land",
2252 "lia",
2253 "mark",
2254 "moen",
2255 "myr",
2256 "nes",
2257 "nuten",
2258 "osen",
2259 "rike",
2260 "rud",
2261 "sand",
2262 "set",
2263 "sj\u00f8en",
2264 "skogen",
2265 "slette",
2266 "snipa",
2267 "stad",
2268 "stua",
2269 "stulen",
2270 "sund",
2271 "svingen",
2272 "s\u00e6tra",
2273 "tinden",
2274 "tun",
2275 "vang",
2276 "vatn",
2277 "veid",
2278 "vik",
2279 "voll",
2280 "v\u00e5g",
2281 "um",
2282 "\u00e5sen",
2283};
2284
2285static const std::string_view _name_norwegian_real[] = {
2286 "Alta",
2287 "Arendal",
2288 "Askim",
2289 "Bergen",
2290 "Bod\u00f8",
2291 "Brevik",
2292 "Bryne",
2293 "Br\u00f8nn\u00f8ysund",
2294 "Drammen",
2295 "Dr\u00f8bak",
2296 "Egersund",
2297 "Elverum",
2298 "Farsund",
2299 "Fauske",
2300 "Finnsnes",
2301 "Flekkefjord",
2302 "Flora",
2303 "Fosnav\u00e5g",
2304 "Fredrikstad",
2305 "F\u00f8rde",
2306 "Gj\u00f8vik",
2307 "Grimstad",
2308 "Halden",
2309 "Hamar",
2310 "Hammerfest",
2311 "Harstad",
2312 "Haugesund",
2313 "Holmestrand",
2314 "Horten",
2315 "J\u00f8rpeland",
2316 "Kirkenes",
2317 "Kolvereid",
2318 "Kongsberg",
2319 "Kongsvinger",
2320 "Kopervik",
2321 "Krager\u00f8",
2322 "Kristiansand",
2323 "Kristiansund",
2324 "Langesund",
2325 "Larvik",
2326 "Leirvik",
2327 "Leknes",
2328 "Levanger",
2329 "Lillehammer",
2330 "Lillesand",
2331 "Lillestr\u00f8m",
2332 "Lyngdal",
2333 "L\u00f8renskog",
2334 "Mandal",
2335 "Mo i Rana",
2336 "Molde",
2337 "Mosj\u00f8en",
2338 "Moss",
2339 "Mysen",
2340 "M\u00e5l\u00f8y",
2341 "Namsos",
2342 "Narvik",
2343 "Notodden",
2344 "Odda",
2345 "Oslo",
2346 "Otta",
2347 "Porsgrunn",
2348 "Ringerike",
2349 "Ris\u00f8r",
2350 "Rjukan",
2351 "Sandefjord",
2352 "Sandnes",
2353 "Sandnessj\u00f8en",
2354 "Sandvika",
2355 "Sarpsborg",
2356 "Sauda",
2357 "Ski",
2358 "Skien",
2359 "Skudeneshavn",
2360 "Sortland",
2361 "Stathelle",
2362 "Stavanger",
2363 "Steinkjer",
2364 "Stj\u00f8rdal",
2365 "Stokmarknes",
2366 "Stord",
2367 "Svelvik",
2368 "Svolv\u00e6r",
2369 "Troms\u00f8",
2370 "Trondheim",
2371 "Tvedestrand",
2372 "T\u00f8nsberg",
2373 "Ulsteinvik",
2374 "Vads\u00f8",
2375 "Vard\u00f8",
2376 "Verdals\u00f8ra",
2377 "\u00c5krehamn",
2378 "\u00c5lesund",
2379 "\u00c5ndalsnes",
2380};
2381
2382static const std::string_view _name_hungarian_1[] = {
2383 "Nagy-",
2384 "Kis-",
2385 "Fels\u0151-",
2386 "Als\u00f3-",
2387 "\u00daj-",
2388};
2389
2390static const std::string_view _name_hungarian_2[] = {
2391 "Bodrog",
2392 "Dr\u00e1va",
2393 "Duna",
2394 "Hej\u0151",
2395 "Hern\u00e1d",
2396 "R\u00e1ba",
2397 "Saj\u00f3",
2398 "Szamos",
2399 "Tisza",
2400 "Zala",
2401 "Balaton",
2402 "Fert\u0151",
2403 "Bakony",
2404 "Cserh\u00e1t",
2405 "Bihar",
2406 "Hajd\u00fa",
2407 "J\u00e1sz",
2408 "Kun",
2409 "Magyar",
2410 "N\u00f3gr\u00e1d",
2411 "Ny\u00edr",
2412 "Somogy",
2413 "Sz\u00e9kely",
2414 "Buda",
2415 "Gy\u0151r",
2416 "Pest",
2417 "Feh\u00e9r",
2418 "Cser\u00e9p",
2419 "Erd\u0151",
2420 "Hegy",
2421 "Homok",
2422 "Mez\u0151",
2423 "Puszta",
2424 "S\u00e1r",
2425 "Cs\u00e1sz\u00e1r",
2426 "Herceg",
2427 "Kir\u00e1ly",
2428 "Nemes",
2429 "P\u00fcsp\u00f6k",
2430 "Szent",
2431 "Alm\u00e1s",
2432 "Szilv\u00e1s",
2433 "Agg",
2434 "Aranyos",
2435 "B\u00e9k\u00e9s",
2436 "Egyh\u00e1zas",
2437 "Gagy",
2438 "Heves",
2439 "Kapos",
2440 "T\u00e1pi\u00f3",
2441 "Torna",
2442 "Vas",
2443 "V\u00e1mos",
2444 "V\u00e1s\u00e1ros",
2445};
2446
2447static const std::string_view _name_hungarian_3[] = {
2448 "ap\u00e1ti",
2449 "b\u00e1ba",
2450 "bikk",
2451 "dob",
2452 "fa",
2453 "f\u00f6ld",
2454 "hegyes",
2455 "lak",
2456 "kereszt",
2457 "k\u00fcrt",
2458 "lad\u00e1ny",
2459 "m\u00e9rges",
2460 "szalonta",
2461 "telek",
2462 "vas",
2463 "v\u00f6lgy",
2464};
2465
2466static const std::string_view _name_hungarian_4[] = {
2467 "alja",
2468 "egyh\u00e1za",
2469 "h\u00e1za",
2470 "\u00far",
2471 "v\u00e1r",
2472};
2473
2474static const std::string_view _name_hungarian_real[] = {
2475 "Ajka",
2476 "Asz\u00f3d",
2477 "Badacsony",
2478 "Baja",
2479 "Budapest",
2480 "Debrecen",
2481 "Eger",
2482 "Fony\u00f3d",
2483 "G\u00f6d\u00f6ll\u0151",
2484 "Gy\u0151r",
2485 "Gyula",
2486 "Karcag",
2487 "Kecskem\u00e9t",
2488 "Keszthely",
2489 "Kisk\u00f6re",
2490 "Kocsord",
2491 "Kom\u00e1rom",
2492 "K\u0151szeg",
2493 "Mak\u00f3",
2494 "Moh\u00e1cs",
2495 "Miskolc",
2496 "\u00d3zd",
2497 "Paks",
2498 "P\u00e1pa",
2499 "P\u00e9cs",
2500 "Polg\u00e1r",
2501 "Sarkad",
2502 "Si\u00f3fok",
2503 "Szeged",
2504 "Szentes",
2505 "Szolnok",
2506 "Tihany",
2507 "Tokaj",
2508 "V\u00e1c",
2509 "Z\u00e1hony",
2510 "Zirc",
2511};
2512
2513static const std::string_view _name_swiss_real[] = {
2514 "Aarau",
2515 "Aesch",
2516 "Altdorf",
2517 "Arosa",
2518 "Appenzell",
2519 "Arbon",
2520 "Altst\u00e4tten",
2521 "Baar",
2522 "Baden",
2523 "Bellinzona",
2524 "Brig-Glis",
2525 "Bienne",
2526 "Bulle",
2527 "Binningen",
2528 "Burgdorf",
2529 "Bern",
2530 "Basel",
2531 "B\u00fclach",
2532 "Carouge",
2533 "Cham",
2534 "Chiasso",
2535 "Chur",
2536 "Davos",
2537 "Del\u00e9mont",
2538 "Dietikon",
2539 "D\u00fcbendorf",
2540 "Emmen",
2541 "Freienbach-Pf\u00e4ffikon",
2542 "Fribourg",
2543 "Frauenfeld",
2544 "Gen\u00e8ve",
2545 "Glarus",
2546 "Gossau",
2547 "Grenchen",
2548 "Herisau",
2549 "Horgen",
2550 "Horw",
2551 "Illnau-Effretikon",
2552 "Ittigen",
2553 "Jona",
2554 "Kriens",
2555 "Kloten",
2556 "K\u00f6niz",
2557 "Kreuzlingen",
2558 "K\u00fcsnacht",
2559 "Agen",
2560 "Lancy",
2561 "La Chaux-de-Fonds",
2562 "Lenzburg",
2563 "Lugano",
2564 "Langenthal",
2565 "Littau",
2566 "Le Locle",
2567 "La Neuveville",
2568 "Locarno",
2569 "Liestal",
2570 "La Tour-de-Peilz",
2571 "Lausanne",
2572 "Lyss",
2573 "Luzern",
2574 "Martigny",
2575 "M\u00fcnchenstein",
2576 "Meyrin",
2577 "Montreux",
2578 "Monthey",
2579 "Morges",
2580 "Murten",
2581 "Moutier",
2582 "Muttenz",
2583 "Neuch\u00e2tel",
2584 "Neuhausen am Rheinfall",
2585 "Nyon",
2586 "Olten",
2587 "Onex",
2588 "Opfikon",
2589 "Ostermundigen",
2590 "Payerne",
2591 "Peseux",
2592 "Prilly",
2593 "Pully",
2594 "Rapperswil",
2595 "Richterswil",
2596 "Regensdorf",
2597 "Rheinfelden",
2598 "Riehen",
2599 "Renens",
2600 "Romanshorn",
2601 "Rorschach",
2602 "Stans",
2603 "Schaffhausen",
2604 "Steffisburg",
2605 "St. Gallen",
2606 "Schlieren",
2607 "Sierre",
2608 "Solothurn",
2609 "St. Moritz",
2610 "Sion",
2611 "Spiez",
2612 "St\u00e4fa",
2613 "Sursee",
2614 "Schwyz",
2615 "Thalwil",
2616 "Th\u00f4nex",
2617 "Thun",
2618 "Uster",
2619 "Uzwil",
2620 "Vernier",
2621 "Volketswil",
2622 "Versoix",
2623 "Vevey",
2624 "W\u00e4denswil",
2625 "Wettingen",
2626 "Wil",
2627 "Wallisellen",
2628 "Winterthur",
2629 "Wohlen",
2630 "Worb",
2631 "Wetzikon",
2632 "Yverdon-les-Bains",
2633 "Zollikon",
2634 "Zofingen",
2635 "Z\u00fcrich",
2636 "Zug",
2637};
2638
2639static const std::string_view _name_danish_1[] = {
2640 "Gamle ",
2641 "Lille ",
2642 "Nye ",
2643 "Store ",
2644 "Kirke ",
2645 "N\u00f8rre ",
2646 "Vester ",
2647 "S\u00f8nder ",
2648 "\u00d8ster ",
2649 "Hvide ",
2650 "H\u00f8je ",
2651 "Kongens ",
2652};
2653
2654static const std::string_view _name_danish_2[] = {
2655 "Ager",
2656 "Alle",
2657 "Aske",
2658 "Balle",
2659 "Bede",
2660 "Birke",
2661 "Bjerring",
2662 "Bj\u00e6ver",
2663 "Blommens",
2664 "Blok",
2665 "Bolder",
2666 "Bred",
2667 "Charlotten",
2668 "Christians",
2669 "Danne",
2670 "Diana",
2671 "Es",
2672 "Fredens",
2673 "Frederiks",
2674 "Fugle",
2675 "F\u00e5re",
2676 "Gille",
2677 "Gis",
2678 "Givs",
2679 "Glams",
2680 "Glo",
2681 "Guld",
2682 "Had",
2683 "Haralds",
2684 "Hassel",
2685 "Hede",
2686 "Helle",
2687 "Hessel",
2688 "Hjorts",
2689 "Hol",
2690 "Horn",
2691 "Humle",
2692 "H\u00f8j",
2693 "H\u00f8r",
2694 "Is",
2695 "Jyde",
2696 "J\u00e6gers",
2697 "Karls",
2698 "Klov",
2699 "Kokke",
2700 "Kvist",
2701 "Lang",
2702 "Lange",
2703 "Mari",
2704 "Nord",
2705 "Ny",
2706 "Oks",
2707 "Ring",
2708 "R\u00f8de",
2709 "Rung",
2710 "R\u00f8r",
2711 "Rud",
2712 "Saks",
2713 "Salt",
2714 "Skam",
2715 "Silke",
2716 "Skod",
2717 "Sk\u00e6l",
2718 "Sk\u00e6r",
2719 "Sol",
2720 "Svend",
2721 "Svine",
2722 "Strand",
2723 "Stubbe",
2724 "Ting",
2725 "Tj\u00e6re",
2726 "Tore",
2727 "Uger",
2728 "Ulf",
2729 "Val",
2730 "Vand",
2731 "Vej",
2732 "Vor",
2733 "V\u00e6r",
2734 "\u00d8r",
2735 "\u00c5l",
2736};
2737
2738static const std::string_view _name_danish_3[] = {
2739 "basse",
2740 "borg",
2741 "berg",
2742 "bro",
2743 "by",
2744 "havn",
2745 "strup",
2746 "holm",
2747 "hus",
2748 "k\u00f8bing",
2749 "lund",
2750 "lunde",
2751 "sund",
2752 "ovre",
2753 "h\u00f8j",
2754 "dal",
2755 "sted",
2756 "sten",
2757 "l\u00f8se",
2758 "r\u00f8d",
2759 "magle",
2760 "s\u00f8",
2761 "bjerg",
2762 "b\u00e6k",
2763 "drup",
2764 "lev",
2765 "bo",
2766 "lyst",
2767 "feld",
2768 "skov",
2769};
2770
2771static const std::string_view _name_turkish_prefix[] = {
2772 "Ak\u00e7a",
2773 "Alt\u0131n",
2774 "Bah\u00e7e",
2775 "Boz",
2776 "B\u00fcy\u00fck",
2777 "\u00c7ay",
2778 "Do\u011fu",
2779 "Eski",
2780 "G\u00fczel",
2781 "K\u0131z\u0131l",
2782 "K\u00fc\u00e7\u00fck",
2783 "Orta",
2784 "Sar\u0131",
2785 "Sultan",
2786 "Ulu",
2787 "Yeni",
2788};
2789
2790static const std::string_view _name_turkish_middle[] = {
2791 "aga\u00e7",
2792 "ayva",
2793 "\u00e7am",
2794 "elma",
2795 "kurt",
2796 "pazar",
2797 "yal\u0131",
2798};
2799
2800static const std::string_view _name_turkish_suffix[] = {
2801 "dere",
2802 "hisar",
2803 "kale",
2804 "kaya",
2805 "kent",
2806 "k\u00f6y",
2807 "ova",
2808 "\u00f6z\u00fc",
2809 "\u00f6ren",
2810 "pazar",
2811 "saray",
2812 "tepe",
2813 "yer",
2814 "yurt",
2815};
2816
2817static const std::string_view _name_turkish_real[] = {
2818 "Adana",
2819 "Ad\u0131yaman",
2820 "Afyon",
2821 "A\u011fr\u0131",
2822 "Amasya",
2823 "Antalya",
2824 "Artvin",
2825 "Bal\u0131kesir",
2826 "Bilecik",
2827 "Bitlis",
2828 "Bolu",
2829 "Burdur",
2830 "Bursa",
2831 "\u00c7anakkale",
2832 "\u00c7ank\u0131r\u0131",
2833 "Denizli",
2834 "Diyarbak\u0131r",
2835 "Edirne",
2836 "Elaz\u0131\u011f",
2837 "Erzurum",
2838 "Eski\u015fehir",
2839 "Giresun",
2840 "G\u00fcm\u00fc\u015fhane",
2841 "Hatay",
2842 "Isparta",
2843 "\u0130\u00e7el",
2844 "\u0130stanbul",
2845 "\u0130zmir",
2846 "Kars",
2847 "Kastamonu",
2848 "Kayseri",
2849 "Kirklareli",
2850 "Kocaeli",
2851 "Konya",
2852 "K\u00fctahya",
2853 "Malatya",
2854 "Manisa",
2855 "Kahramanmara\u015f",
2856 "Mardin",
2857 "Mu\u011fla",
2858 "Mu\u015f",
2859 "Nev\u015fehir",
2860 "Ni\u011fde",
2861 "Rize",
2862 "Sakarya",
2863 "Samsun",
2864 "Siirt",
2865 "Sinop",
2866 "Sivas",
2867 "Trabzon",
2868 "\u015eanl\u0131urfa",
2869 "Van",
2870 "Yozgat",
2871 "Zonguldak",
2872 "Aksaray",
2873 "Bayburt",
2874 "Karaman",
2875 "\u015e\u0131rnak",
2876 "Bart\u0131n",
2877 "Ardahan",
2878 "I\u011fd\u0131r",
2879 "Yalova",
2880 "Karab\u00fck",
2881 "Osmaniye",
2882 "D\u00fczce",
2883};
2884
2885static const std::string_view _name_italian_real[] = {
2886 "Roma",
2887 "Milano",
2888 "Napoli",
2889 "Torino",
2890 "Venezia",
2891 "Firenze",
2892 "Palermo",
2893 "Genova",
2894 "Parma",
2895 "Bologna",
2896 "Bari",
2897 "Cagliari",
2898 "Sassari",
2899 "Pisa",
2900 "Aosta",
2901 "Brescia",
2902 "Verona",
2903 "Bolzano",
2904 "Padova",
2905 "Udine",
2906 "Trieste",
2907 "Livorno",
2908 "Ancona",
2909 "Perugia",
2910 "Pescara",
2911 "L'Aquila",
2912 "Campobasso",
2913 "Potenza",
2914 "Cosenza",
2915 "Reggio Calabria",
2916 "Catania",
2917 "Caltanisetta",
2918 "Agrigento",
2919 "La Spezia",
2920 "Modena",
2921 "Vicenza",
2922 "Mantova",
2923 "Cremona",
2924 "Piacenza",
2925 "Reggio Emilia",
2926 "Foggia",
2927 "Benevento",
2928 "Salerno",
2929 "Catanzaro",
2930 "Lecce",
2931 "Como",
2932 "Lecco",
2933 "Sondrio",
2934 "Trento",
2935 "Desenzano",
2936 "Cuneo",
2937 "Asti",
2938 "Lodi",
2939 "Novara",
2940 "Biella",
2941 "Vercelli",
2942 "Rieti",
2943 "Nuoro",
2944 "Oristano",
2945 "Matera",
2946 "Taranto",
2947 "Varese",
2948 "Bergamo",
2949 "Pavia",
2950 "Caserta",
2951 "Frosinone",
2952 "Latina",
2953 "Enna",
2954 "Ragusa",
2955 "Siracusa",
2956 "Pordenone",
2957 "Imperia",
2958 "Verbania",
2959 "Alessandria",
2960 "Messina",
2961 "Siena",
2962 "Arezzo",
2963 "Grosseto",
2964};
2965
2966static const std::string_view _name_italian_pref[] = {
2967 "Alpe ",
2968 "Borgo ",
2969 "Cascina ",
2970 "Castel ",
2971 "Fonte ",
2972 "Forte ",
2973 "Malga ",
2974 "Pieve ",
2975 "Poggio ",
2976 "Rocca ",
2977 "Villa ",
2978 "Villar ",
2979};
2980
2981static const std::string_view _name_italian_1m[] = {
2982 "Bel",
2983 "Borgo",
2984 "Bosco",
2985 "Campo",
2986 "Capo",
2987 "Casal",
2988 "Castel",
2989 "Colle",
2990 "Fiume",
2991 "Fonte",
2992 "Lago",
2993 "Mezzo",
2994 "Monte",
2995 "Mon",
2996 "Orto",
2997 "Passo",
2998 "Prato",
2999 "Poggio",
3000 "Ponte",
3001 "Pozzo",
3002 "Sasso",
3003 "Tra",
3004 "Tre",
3005 "Ver",
3006 "Vico",
3007};
3008
3009static const std::string_view _name_italian_1f[] = {
3010 "Acqua",
3011 "Bra",
3012 "Cala",
3013 "Casa",
3014 "Chiesa",
3015 "Citta",
3016 "Civita",
3017 "Corte",
3018 "Costa",
3019 "Croce",
3020 "Fontana",
3021 "Grotta",
3022 "Guardia",
3023 "Mezza",
3024 "Palma",
3025 "Pietra",
3026 "Ripa",
3027 "Rocca",
3028 "Serra",
3029 "Torre",
3030 "Val",
3031 "Valle",
3032 "Villa",
3033};
3034
3035static const std::string_view _name_italian_2[] = {
3036 "bell",
3037 "bianc",
3038 "cald",
3039 "chiar",
3040 "cort",
3041 "ferrat",
3042 "fier",
3043 "fredd",
3044 "gioios",
3045 "grec",
3046 "guzz",
3047 "lung",
3048 "long",
3049 "migli",
3050 "negr",
3051 "ner",
3052 "nov",
3053 "nuov",
3054 "ross",
3055 "rotond",
3056 "scur",
3057 "secc",
3058 "sett",
3059 "vecchi",
3060 "ventos",
3061 "vers",
3062 "viv",
3063};
3064
3065static const std::string_view _name_italian_2i[] = {
3066 "",
3067 "breve",
3068 "brevi",
3069 "chiari",
3070 "ferro",
3071 "fieschi",
3072 "fiore",
3073 "fonte",
3074 "forte",
3075 "gate",
3076 "leone",
3077 "maggiore",
3078 "minore",
3079 "mole",
3080 "monte",
3081 "poli",
3082 "scuri",
3083 "terra",
3084 "te",
3085 "torrione",
3086 "vento",
3087 "verde",
3088 "versiere",
3089};
3090
3091
3092static const std::string_view _name_italian_3[] = {
3093 " Marittimo",
3094 " Marittima",
3095 " del Capo",
3096 " del Monte",
3097 " di Sopra",
3098 " di Sotto",
3099 " sui Monti",
3100 " dei Marmi",
3101 " dei Sassi",
3102 " delle Fonti",
3103 " sui Prati",
3104 " a Mare",
3105 " Superiore",
3106 " Inferiore",
3107 " Terme",
3108 " Alta",
3109 " Bassa",
3110 " Brianza",
3111 " Vesuviano",
3112 " Scrivia",
3113 " Ticino",
3114};
3115
3116static const std::string_view _name_italian_river1[] = {
3117 " del",
3118 " sul",
3119 " al",
3120 " nel",
3121};
3122
3123static const std::string_view _name_italian_river2[] = {
3124 "l'Adda",
3125 "l'Adige",
3126 "le Alpi",
3127 "l'Arno",
3128 " Bormida",
3129 " Brenta",
3130 "la Dora Baltea",
3131 " Lambro",
3132 " Mincio",
3133 " Naviglio",
3134 "l'Oglio",
3135 "l'Olona",
3136 "l'Ombrone",
3137 " Panaro",
3138 " Piave",
3139 " Po",
3140 " Reno",
3141 " Scrivia",
3142 " Secchia",
3143 " Serio",
3144 " Tagliamento",
3145 " Tanaro",
3146 " Taro",
3147 " Ticino",
3148 " Tevere",
3149};
3150
3151static const std::string_view _name_catalan_real[] = {
3152 "Barcelona",
3153 "L'Hospitalet de Llobregat",
3154 "Cerdanyola",
3155 "Martorell",
3156 "Badalona",
3157 "Tarragona",
3158 "Lleida",
3159 "Girona",
3160 "Sabadell",
3161 "Terrassa",
3162 "Reus",
3163 "Valls",
3164 "Vic",
3165 "Vielha e Mijaran",
3166 "Amposta",
3167 "Tortosa",
3168 "Berga",
3169 "Olot",
3170 "Mollerussa",
3171 "Banyoles",
3172 "Figueres",
3173 "Balaguer",
3174 "Vilafranca del Pened\u00e8s",
3175 "La Seu d'Urgell",
3176 "El Pont de Suert",
3177 "Igualada",
3178 "Manresa",
3179 "Solsona",
3180 "Les Borges Blanques",
3181 "Tremp",
3182 "Sort",
3183 "Colera",
3184 "Portbou",
3185 "El Vendrell",
3186 "Falset",
3187 "Ripoll",
3188 "Cervera",
3189 "Gandesa",
3190 "Matar\u00f3",
3191 "Montblanc",
3192 "Vilanova i la Geltr\u00fa",
3193 "T\u00e0rrega",
3194 "Camprodon",
3195 "Campdev\u00e0nol",
3196 "Cambrils",
3197 "Begur",
3198 "Setcases",
3199 "Palafrugell",
3200 "Begues",
3201 "El Bruc",
3202 "Cadaqu\u00e9s",
3203 "Collbat\u00f3",
3204 "Cervell\u00f3",
3205 "Esparreguera",
3206 "Abrera",
3207 "Alp",
3208 "Das",
3209 "Cercs",
3210 "Manlleu",
3211 "El Masnou",
3212 "Molins de Rei",
3213 "Monistrol",
3214 "Rocallaura",
3215 "Rub\u00ed",
3216 "Ripollet",
3217 "Sitges",
3218 "Roses",
3219};
3220
3221static const std::string_view _name_catalan_pref[] = {
3222 "El Pont de ",
3223 "Parets de ",
3224 "Canet de ",
3225 "Castellar de ",
3226 "Corbera de ",
3227 "Arenys de ",
3228 "Calella de ",
3229 "La Seu de ",
3230 "La Bisbal de ",
3231 "Torroella de ",
3232 "Port de ",
3233 "Vilafranca de ",
3234 "Vilanova de ",
3235 "Caldes de ",
3236 "La Conca de ",
3237 "Olesa de ",
3238 "La Roca de ",
3239 "Sant Esteve de ",
3240 "Sant Andreu de ",
3241 "Sant Jordi de ",
3242 "Sant Joan de ",
3243 "Sant Feliu de ",
3244 "Sant Quirze de ",
3245 "Sant Sadurn\u00ed de ",
3246 "Santa Coloma de ",
3247 "Santa Margarida de ",
3248 "Santa Maria de ",
3249 "Sant Mart\u00ed de ",
3250 "Sant Pere de ",
3251 "Sant Juli\u00e0 de ",
3252 "Sant Vicen\u00e7 de ",
3253
3254};
3255
3256static const std::string_view _name_catalan_1m[] = {
3257 "Torrent",
3258 "Cami",
3259 "Mont",
3260 "Bell",
3261 "Puig",
3262 "Riu",
3263};
3264
3265static const std::string_view _name_catalan_1f[] = {
3266 "Pala",
3267 "Selva",
3268 "Vall",
3269 "Serra",
3270 "Torre",
3271 "Riba",
3272 "Cova",
3273 "Terra",
3274};
3275
3276static const std::string_view _name_catalan_2m[] = {
3277 "alt",
3278 "baix",
3279 "fosc",
3280 "pelat",
3281 "vent\u00f3s",
3282 "negre",
3283 "roig",
3284 "gr\u00eds",
3285};
3286
3287static const std::string_view _name_catalan_2f[] = {
3288 "baixa",
3289 "alta",
3290 "fosca",
3291 "clara",
3292 "negra",
3293 "roja",
3294 "grisa",
3295 "freda",
3296};
3297
3298static const std::string_view _name_catalan_3[] = {
3299 " Desp\u00ed",
3300 " Desvern",
3301 " del Cam\u00ed",
3302 " de Mar",
3303 " de Dalt",
3304 " de Baix",
3305 " del Vall\u00e8s",
3306 " de Bergued\u00e0",
3307 " de Conflent",
3308 " de la Plana",
3309};
3310
3311static const std::string_view _name_catalan_river1[] = {
3312 " d'Anoia",
3313 " de Ter",
3314 " de Llobregat",
3315 " d'Ebre",
3316 " de Segre",
3317 " de Francol\u00ed",
3318};
Enum-as-bit-set wrapper.
Type (helpers) for enums.
@ Middle
Stop at the middle of the platform.
Definition order_type.h:100
static const std::string_view _name_czech_patmod[][3]
[CzechGender][CzechPattern] - suffixes for adjectives.
Definition townname.h:1719
CzechGender
Sing., pl.
Definition townname.h:1699
@ CZG_NFREE
Like CZG_FREE, but disallow CZG_SNEUT.
Definition townname.h:1709
@ CZG_FREE
Special for substantive stems - the ending chooses the gender.
Definition townname.h:1707
CzechAllowFlag
This way the substantive can choose only some adjectives/endings: At least one of these flags must be...
Definition townname.h:1732
static const CzechNameSubst _name_czech_subst_stem[]
Beginnings for Czech town names.
Definition townname.h:1841
static const CzechNameSubst _name_czech_subst_ending[]
Endings for Czech town names.
Definition townname.h:1894
static const CzechNameAdj _name_czech_adj[]
Adjectives for Czech town names.
Definition townname.h:1769
static const CzechNameSubst _name_czech_subst_full[]
Considered a stem for choose/allow matching purposes.
Definition townname.h:1821
EnumBitSet< CzechAllowFlag, uint8_t > CzechAllowFlags
Bitset of CzechAllowFlag elements.
Definition townname.h:1739
EnumBitSet< CzechChooseFlag, uint8_t > CzechChooseFlags
Bitset of CzechChooseFlag elements.
Definition townname.h:1751
CzechChooseFlag
All these flags must be satisfied (in the stem->others direction):
Definition townname.h:1744
@ NoPostfix
Matched if no postfix was inserted.
Definition townname.h:1747
@ Postfix
Matched if postfix was inserted.
Definition townname.h:1746
static const std::string_view _name_czech_subst_postfix[]
Optional postfix inserted between stem and ending.
Definition townname.h:1887