OpenTTD Source 20250205-master-gfd85ab1e2c
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 <http://www.gnu.org/licenses/>.
6 */
7
10#include "../core/enum_type.hpp"
11
12static const char * const _name_original_english_1[] = {
13 "Great ",
14 "Little ",
15 "New ",
16 "Fort ",
17};
18
19static const char * const _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 char * const _name_original_english_3[] = {
49 "ar",
50 "a",
51 "e",
52 "in",
53 "on",
54 "u",
55 "un",
56 "en",
57};
58
59static const char * const _name_original_english_4[] = {
60 "n",
61 "ning",
62 "ding",
63 "d",
64 "",
65 "t",
66 "fing",
67};
68
69static const char * const _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 char * const _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 char * const _name_additional_english_prefix[] = {
108 "Great ",
109 "Little ",
110 "New ",
111 "Fort ",
112 "St. ",
113 "Old ",
114};
115
116static const char * const _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 char * const _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 char * const _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 char * const _name_additional_english_1b3a[] = {
207 "n",
208 "d",
209 "",
210 "t",
211 "",
212 "",
213};
214
215static const char * const _name_additional_english_1b3b[] = {
216 "ning",
217 "ding",
218 "fing",
219};
220
221static const char * const _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 char * const _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 char * const _name_austrian_a1[] = {
301 "Bad ",
302 "Deutsch ",
303 "Gross ",
304 "Klein ",
305 "Markt ",
306 "Maria ",
307};
308
309static const char * const _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 char * const _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 char * const _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 char * const _name_austrian_a5[] = {
389 "St. ",
390 "Sankt ",
391};
392
393static const char * const _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 char * const _name_austrian_f1[] = {
417 " an der ",
418 " ob der ",
419};
420
421static const char * const _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 char * const _name_austrian_b1[] = {
438 " am ",
439};
440
441static const char * const _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 char * const _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 char * const _name_german_pre[] = {
479 "Bad ",
480 "Klein ",
481 "Neu ",
482};
483
484static const char * const _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 char * const _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 char * const _name_german_3_an_der[] = {
600 " an der ",
601};
602
603static const char * const _name_german_3_am[] = {
604 " am ",
605};
606
607static const char * const _name_german_4_an_der[] = {
608 "Oder",
609 "Spree",
610 "Donau",
611 "Saale",
612 "Elbe",
613};
614
615static const char * const _name_german_4_am[] = {
616 "Main",
617};
618
619static const char * const _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 char * const _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 char * const _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 char * const _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 char * const _name_swedish_1[] = {
891 "Gamla ",
892 "Lilla ",
893 "Nya ",
894 "Stora ",
895};
896
897static const char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _name_dutch_1[] = {
1060 "Nieuw ",
1061 "Oud ",
1062 "Groot ",
1063 "Zuid ",
1064 "Noord ",
1065 "Oost ",
1066 "West ",
1067 "Klein ",
1068};
1069
1070static const char * const _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 char * const _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 char * const _name_dutch_4[] = {
1150 "e",
1151 "er",
1152 "el",
1153 "en",
1154 "o",
1155 "s",
1156};
1157
1158static const char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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 char * const _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
1698/* Sing., pl. */
1699enum CzechGender : uint8_t {
1700 CZG_SMASC,
1701 CZG_SFEM,
1702 CZG_SNEUT,
1703 CZG_PMASC,
1704 CZG_PFEM,
1705 CZG_PNEUT,
1706 /* Special for substantive stems - the ending chooses the gender. */
1707 CZG_FREE,
1708 /* Like CZG_FREE, but disallow CZG_SNEUT. */
1709 CZG_NFREE
1710};
1711
1712enum CzechPattern : uint8_t {
1713 CZP_JARNI,
1714 CZP_MLADY,
1715 CZP_PRIVL
1716};
1717
1718/* [CzechGender][CzechPattern] - replaces the last character of the adjective
1719 * by this.
1720 * XXX: [CZG_SMASC][CZP_PRIVL] needs special handling: -ovX -> -uv. */
1721static const char * const _name_czech_patmod[][3] = {
1722 /* CZG_SMASC */ { "\u00ed", "\u00fd", "X" },
1723 /* CZG_SFEM */ { "\u00ed", "\u00e1", "a" },
1724 /* CZG_SNEUT */ { "\u00ed", "\u00e9", "o" },
1725 /* CZG_PMASC */ { "\u00ed", "\u00e9", "y" },
1726 /* CZG_PFEM */ { "\u00ed", "\u00e9", "y" },
1727 /* CZG_PNEUT */ { "\u00ed", "\u00e1", "a" }
1728};
1729
1730/* This way the substantive can choose only some adjectives/endings:
1731 * At least one of these flags must be satisfied: */
1732enum CzechAllow : uint8_t {
1733 CZA_SHORT = 1,
1734 CZA_MIDDLE = 2,
1735 CZA_LONG = 4,
1736 CZA_ALL = CZA_SHORT | CZA_MIDDLE | CZA_LONG,
1737};
1738
1739DECLARE_ENUM_AS_BIT_SET(CzechAllow)
1740
1741/* All these flags must be satisfied (in the stem->others direction): */
1742enum CzechChoose : uint8_t {
1743 CZC_NONE = 0, // No requirements.
1744 CZC_COLOR = 1,
1745 CZC_POSTFIX = 2, // Matched if postfix was inserted.
1746 CZC_NOPOSTFIX = 4, // Matched if no postfix was inserted.
1747 CZC_ANY = CZC_COLOR | CZC_POSTFIX | CZC_NOPOSTFIX,
1748};
1749
1750DECLARE_ENUM_AS_BIT_SET(CzechChoose)
1751
1753 CzechGender gender;
1754 CzechAllow allow;
1755 CzechChoose choose;
1756 const char *name;
1757};
1758
1760 CzechPattern pattern;
1761 CzechChoose choose;
1762 const char *name;
1763};
1764
1765/* Some of items which should be common are doubled. */
1766static const CzechNameAdj _name_czech_adj[] = {
1767 { CZP_JARNI, CZC_ANY, "Horn\u00ed" },
1768 { CZP_JARNI, CZC_ANY, "Horn\u00ed" },
1769 { CZP_JARNI, CZC_ANY, "Doln\u00ed" },
1770 { CZP_JARNI, CZC_ANY, "Doln\u00ed" },
1771 { CZP_JARNI, CZC_ANY, "P\u0159edn\u00ed" },
1772 { CZP_JARNI, CZC_ANY, "Zadn\u00ed" },
1773 { CZP_JARNI, CZC_ANY, "Kosteln\u00ed" },
1774 { CZP_JARNI, CZC_ANY, "Havran\u00ed" },
1775 { CZP_JARNI, CZC_ANY, "\u0158\u00ed\u010dn\u00ed" },
1776 { CZP_JARNI, CZC_ANY, "Jezern\u00ed" },
1777 { CZP_MLADY, CZC_ANY, "Velk\u00fd" },
1778 { CZP_MLADY, CZC_ANY, "Velk\u00fd" },
1779 { CZP_MLADY, CZC_ANY, "Mal\u00fd" },
1780 { CZP_MLADY, CZC_ANY, "Mal\u00fd" },
1781 { CZP_MLADY, CZC_ANY, "Vysok\u00fd" },
1782 { CZP_MLADY, CZC_ANY, "\u010cesk\u00fd" },
1783 { CZP_MLADY, CZC_ANY, "Moravsk\u00fd" },
1784 { CZP_MLADY, CZC_ANY, "Slov\u00e1ck\u00fd" },
1785 { CZP_MLADY, CZC_ANY, "Slezsk\u00fd" },
1786 { CZP_MLADY, CZC_ANY, "Uhersk\u00fd" },
1787 { CZP_MLADY, CZC_ANY, "Star\u00fd" },
1788 { CZP_MLADY, CZC_ANY, "Star\u00fd" },
1789 { CZP_MLADY, CZC_ANY, "Nov\u00fd" },
1790 { CZP_MLADY, CZC_ANY, "Nov\u00fd" },
1791 { CZP_MLADY, CZC_ANY, "Mlad\u00fd" },
1792 { CZP_MLADY, CZC_ANY, "Kr\u00e1lovsk\u00fd" },
1793 { CZP_MLADY, CZC_ANY, "Kamenn\u00fd" },
1794 { CZP_MLADY, CZC_ANY, "Cihlov\u00fd" },
1795 { CZP_MLADY, CZC_ANY, "Divn\u00fd" },
1796 { CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
1797 { CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
1798 { CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
1799 { CZP_MLADY, CZC_COLOR, "Zelen\u00e1" },
1800 { CZP_MLADY, CZC_COLOR, "\u017dlut\u00e1" },
1801 { CZP_MLADY, CZC_COLOR, "Siv\u00e1" },
1802 { CZP_MLADY, CZC_COLOR, "\u0160ed\u00e1" },
1803 { CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
1804 { CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
1805 { CZP_MLADY, CZC_COLOR, "Modr\u00e1" },
1806 { CZP_MLADY, CZC_COLOR, "R\u016f\u017eov\u00e1" },
1807 { CZP_MLADY, CZC_COLOR, "\u010cern\u00e1" },
1808 { CZP_PRIVL, CZC_ANY, "Kr\u00e1lova" },
1809 { CZP_PRIVL, CZC_ANY, "Janova" },
1810 { CZP_PRIVL, CZC_ANY, "Karlova" },
1811 { CZP_PRIVL, CZC_ANY, "Kry\u0161tofova" },
1812 { CZP_PRIVL, CZC_ANY, "Ji\u0159\u00edkova" },
1813 { CZP_PRIVL, CZC_ANY, "Petrova" },
1814 { CZP_PRIVL, CZC_ANY, "Sudovo" },
1815};
1816
1817/* Considered a stem for choose/allow matching purposes. */
1818static const CzechNameSubst _name_czech_subst_full[] = {
1819 { CZG_SMASC, CZA_ALL, CZC_COLOR, "Sedlec" },
1820 { CZG_SMASC, CZA_ALL, CZC_COLOR, "Brod" },
1821 { CZG_SMASC, CZA_ALL, CZC_COLOR, "Brod" },
1822 { CZG_SMASC, CZA_ALL, CZC_NONE, "\u00daval" },
1823 { CZG_SMASC, CZA_ALL, CZC_COLOR, "\u017d\u010f\u00e1r" },
1824 { CZG_SMASC, CZA_ALL, CZC_COLOR, "Smrk" },
1825 { CZG_SFEM, CZA_ALL, CZC_COLOR, "Hora" },
1826 { CZG_SFEM, CZA_ALL, CZC_COLOR, "Lhota" },
1827 { CZG_SFEM, CZA_ALL, CZC_COLOR, "Lhota" },
1828 { CZG_SFEM, CZA_ALL, CZC_COLOR, "Hlava" },
1829 { CZG_SFEM, CZA_ALL, CZC_COLOR, "L\u00edpa" },
1830 { CZG_SNEUT, CZA_ALL, CZC_COLOR, "Pole" },
1831 { CZG_SNEUT, CZA_ALL, CZC_COLOR, "\u00dadol\u00ed" },
1832 { CZG_PMASC, CZA_ALL, CZC_NONE, "\u00davaly" },
1833 { CZG_PFEM, CZA_ALL, CZC_COLOR, "Luka" },
1834 { CZG_PNEUT, CZA_ALL, CZC_COLOR, "Pole" },
1835};
1836
1837/* TODO: More stems needed. --pasky */
1838static const CzechNameSubst _name_czech_subst_stem[] = {
1839 { CZG_SMASC, CZA_MIDDLE, CZC_COLOR, "Kostel" },
1840 { CZG_SMASC, CZA_MIDDLE, CZC_COLOR, "Kl\u00e1\u0161ter" },
1841 { CZG_SMASC, CZA_SHORT, CZC_COLOR, "Lhot" },
1842 { CZG_SFEM, CZA_SHORT, CZC_COLOR, "Lhot" },
1843 { CZG_SFEM, CZA_SHORT, CZC_COLOR, "Hur" },
1844 { CZG_FREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Sedl" },
1845 { CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_COLOR, "Hrad" },
1846 { CZG_NFREE, CZA_MIDDLE, CZC_NONE, "Pras" },
1847 { CZG_NFREE, CZA_MIDDLE, CZC_NONE, "Ba\u017e" },
1848 { CZG_NFREE, CZA_MIDDLE, CZC_NONE, "Tes" },
1849 { CZG_NFREE, CZA_MIDDLE, CZC_NONE, "U\u017e" },
1850 { CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_POSTFIX, "B\u0159" },
1851 { CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Vod" },
1852 { CZG_NFREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Jan" },
1853 { CZG_NFREE, CZA_LONG, CZC_NONE, "Prach" },
1854 { CZG_NFREE, CZA_LONG, CZC_NONE, "Kunr" },
1855 { CZG_NFREE, CZA_LONG, CZC_NONE, "Strak" },
1856 { CZG_NFREE, CZA_LONG, CZC_NONE, "V\u00edt" },
1857 { CZG_NFREE, CZA_LONG, CZC_NONE, "Vy\u0161" },
1858 { CZG_NFREE, CZA_LONG, CZC_NONE, "\u017dat" },
1859 { CZG_NFREE, CZA_LONG, CZC_NONE, "\u017der" },
1860 { CZG_NFREE, CZA_LONG, CZC_NONE, "St\u0159ed" },
1861 { CZG_NFREE, CZA_LONG, CZC_NONE, "Harv" },
1862 { CZG_NFREE, CZA_LONG, CZC_NONE, "Pruh" },
1863 { CZG_NFREE, CZA_LONG, CZC_NONE, "Tach" },
1864 { CZG_NFREE, CZA_LONG, CZC_NONE, "P\u00edsn" },
1865 { CZG_NFREE, CZA_LONG, CZC_NONE, "Jin" },
1866 { CZG_NFREE, CZA_LONG, CZC_NONE, "Jes" },
1867 { CZG_NFREE, CZA_LONG, CZC_NONE, "Jar" },
1868 { CZG_NFREE, CZA_LONG, CZC_NONE, "Sok" },
1869 { CZG_NFREE, CZA_LONG, CZC_NONE, "Hod" },
1870 { CZG_NFREE, CZA_LONG, CZC_NONE, "Net" },
1871 { CZG_FREE, CZA_LONG, CZC_NONE, "Pra\u017e" },
1872 { CZG_FREE, CZA_LONG, CZC_NONE, "Nerat" },
1873 { CZG_FREE, CZA_LONG, CZC_NONE, "Kral" },
1874 { CZG_FREE, CZA_LONG, CZC_NONE, "Hut" },
1875 { CZG_FREE, CZA_LONG, CZC_NOPOSTFIX, "Pan" },
1876 { CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NOPOSTFIX, "Odst\u0159ed" },
1877 { CZG_FREE, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_COLOR, "Mrat" },
1878 { CZG_FREE, CZA_LONG, CZC_COLOR, "Hlav" },
1879 { CZG_FREE, CZA_SHORT | CZA_MIDDLE, CZC_NONE, "M\u011b\u0159" },
1880 { CZG_FREE, CZA_MIDDLE | CZA_LONG, CZC_NONE, "Lip" },
1881};
1882
1883/* Optional postfix inserted between stem and ending. */
1884static const char * const _name_czech_subst_postfix[] = {
1885 "av", "an", "at",
1886 "ov", "on", "ot",
1887 "ev", "en", "et",
1888};
1889
1890/* This array must have the both neutral genders at the end! */
1891static const CzechNameSubst _name_czech_subst_ending[] = {
1892 { CZG_SMASC, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "ec" },
1893 { CZG_SMASC, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "\u00edn" },
1894 { CZG_SMASC, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ov" },
1895 { CZG_SMASC, CZA_SHORT | CZA_LONG, CZC_ANY, "kov" },
1896 { CZG_SMASC, CZA_LONG, CZC_POSTFIX, "\u00edn" },
1897 { CZG_SMASC, CZA_LONG, CZC_POSTFIX, "n\u00edk" },
1898 { CZG_SMASC, CZA_LONG, CZC_ANY, "burk" },
1899 { CZG_SFEM, CZA_SHORT, CZC_ANY, "ka" },
1900 { CZG_SFEM, CZA_MIDDLE, CZC_ANY, "inka" },
1901 { CZG_SFEM, CZA_MIDDLE, CZC_ANY, "n\u00e1" },
1902 { CZG_SFEM, CZA_LONG, CZC_ANY, "ava" },
1903 { CZG_PMASC, CZA_LONG, CZC_POSTFIX, "\u00edky" },
1904 { CZG_PMASC, CZA_LONG, CZC_ANY, "upy" },
1905 { CZG_PMASC, CZA_LONG, CZC_ANY, "olupy" },
1906 { CZG_PFEM, CZA_LONG, CZC_ANY, "avy" },
1907 { CZG_PFEM, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ice" },
1908 { CZG_PFEM, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "i\u010dky" },
1909 { CZG_PNEUT, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "na" },
1910 { CZG_SNEUT, CZA_SHORT | CZA_MIDDLE, CZC_ANY, "no" },
1911 { CZG_SNEUT, CZA_LONG, CZC_ANY, "i\u0161t\u011b" },
1912};
1913
1914static const char * const _name_czech_suffix[] = {
1915 "nad Cidlinou",
1916 "nad Dyj\u00ed",
1917 "nad Jihlavou",
1918 "nad Labem",
1919 "nad Lesy",
1920 "nad Moravou",
1921 "nad Nisou",
1922 "nad Odrou",
1923 "nad Ostravic\u00ed",
1924 "nad S\u00e1zavou",
1925 "nad Vltavou",
1926 "pod Prad\u011bdem",
1927 "pod Radho\u0161t\u011bm",
1928 "pod \u0158\u00edpem",
1929 "pod Sn\u011b\u017ekou",
1930 "pod \u0160pi\u010d\u00e1kem",
1931 "pod Sedlem",
1932 "v \u010cech\u00e1ch",
1933 "na Morav\u011b",
1934};
1935
1936
1937
1938static const char * const _name_romanian_real[] = {
1939 "Adjud",
1940 "Alba Iulia",
1941 "Alexandria",
1942 "Babadag",
1943 "Bac\u0103u",
1944 "Baia Mare",
1945 "B\u0103ile Herculane",
1946 "B\u0103ile\u0219ti",
1947 "B\u00e2rlad",
1948 "Bicaz",
1949 "Bistri\u021ba",
1950 "Blaj",
1951 "Borsec",
1952 "Boto\u0219ani",
1953 "Br\u0103ila",
1954 "Bra\u0219ov",
1955 "Bucure\u0219ti",
1956 "Buftea",
1957 "Buz\u0103u",
1958 "C\u0103l\u0103ra\u0219i",
1959 "Caransebe\u0219",
1960 "Cernavod\u0103",
1961 "Cluj-Napoca",
1962 "Constan\u021ba",
1963 "Covasna",
1964 "Craiova",
1965 "Dej",
1966 "Deva",
1967 "Dorohoi",
1968 "Drobeta-Turnu Severin",
1969 "Dr\u0103g\u0103\u0219ani",
1970 "F\u0103g\u0103ra\u0219",
1971 "F\u0103lticeni",
1972 "Fete\u0219ti",
1973 "Foc\u0219ani",
1974 "Gala\u021bi",
1975 "Gheorgheni",
1976 "Giurgiu",
1977 "H\u00e2r\u0219ova",
1978 "Hunedoara",
1979 "Hu\u0219i",
1980 "Ia\u0219i",
1981 "Isaccea",
1982 "Lugoj",
1983 "M\u0103cin",
1984 "Mangalia",
1985 "Medgidia",
1986 "Media\u0219",
1987 "Miercurea Ciuc",
1988 "Mizil",
1989 "Motru",
1990 "N\u0103s\u0103ud",
1991 "N\u0103vodari",
1992 "Odobe\u0219ti",
1993 "Olteni\u021ba",
1994 "One\u0219ti",
1995 "Oradea",
1996 "Or\u0219ova",
1997 "Petro\u0219ani",
1998 "Piatra Neam\u021b",
1999 "Pite\u0219ti",
2000 "Ploie\u0219ti",
2001 "Predeal",
2002 "R\u00e2mnicu V\u00e2lcea",
2003 "Reghin",
2004 "Re\u0219i\u021ba",
2005 "Roman",
2006 "Ro\u0219iorii de Vede",
2007 "Satu Mare",
2008 "Sebe\u0219",
2009 "Sf\u00e2ntu Gheorghe",
2010 "Sibiu",
2011 "Sighi\u0219oara",
2012 "Sinaia",
2013 "Slatina",
2014 "Slobozia",
2015 "Sovata",
2016 "Suceava",
2017 "Sulina",
2018 "\u021a\u0103nd\u0103rei",
2019 "T\u00e2rgovi\u0219te",
2020 "T\u00e2rgu Jiu",
2021 "T\u00e2rgu Mure\u0219",
2022 "Tecuci",
2023 "Timi\u0219oara",
2024 "Tulcea",
2025 "Turda",
2026 "Turnu M\u0103gurele",
2027 "Urziceni",
2028 "Vaslui",
2029 "Vatra Dornei",
2030 "Victoria",
2031 "Videle",
2032 "Zal\u0103u",
2033};
2034
2035static const char * const _name_slovak_real[] = {
2036 "Bratislava",
2037 "B\u00e1novce nad Bebravou",
2038 "Bansk\u00e1 Bystrica",
2039 "Bansk\u00e1 \u0160tiavnica",
2040 "Bardejov",
2041 "Brezno",
2042 "Brezova pod Bradlom",
2043 "Byt\u010da",
2044 "\u010cadca",
2045 "\u010cierna nad Tisou",
2046 "Detva",
2047 "Pre\u0161ov",
2048 "Dolny Kubin",
2049 "Spi\u0161sk\u00e1 Nov\u00e1 Ves",
2050 "Dunajsk\u00e1 Streda",
2051 "Gab\u010d\u00edikovo",
2052 "Galanta",
2053 "Gbely",
2054 "Gelnica",
2055 "Handlov\u00e1",
2056 "Hlohovec",
2057 "Hol\u00ed\u010d",
2058 "Humenn\u00e9",
2059 "Hurbanovo",
2060 "Kezmarok",
2061 "Kom\u00e1rno",
2062 "Ko\u0161ice",
2063 "Kremnica",
2064 "Krompachy",
2065 "Kuty",
2066 "Leopoldov",
2067 "Levo\u010da",
2068 "Liptovsk\u00fd Mikul\u00e1\u0161",
2069 "Lu\u010denec",
2070 "Malacky",
2071 "Martin",
2072 "Medzilaborce",
2073 "Michalovce",
2074 "Modra",
2075 "Myjava",
2076 "N\u00e1mestovo",
2077 "Nitra",
2078 "Nov\u00e1 Ba\u0148a",
2079 "Nov\u00e9 Mesto nad V\u00e1hom",
2080 "Nov\u00e9 Z\u00e1mky",
2081 "Partiz\u00e1nske",
2082 "Pezinok",
2083 "Pie\u0161\u0165any",
2084 "Polt\u00e1r",
2085 "Poprad",
2086 "Pova\u017esk\u00e1 Bystrica",
2087 "Prievidza",
2088 "P\u00fachov",
2089 "Rev\u00faca",
2090 "Rimavsk\u00e1 Sobota",
2091 "Ro\u017e\u0148ava",
2092 "Ru\u017eomberok",
2093 "Sabinov",
2094 "\u0160a\u013ea",
2095 "Senec",
2096 "Senica",
2097 "Sere\u010f",
2098 "Skalica",
2099 "Sl\u00e1dkovi\u00cdovo",
2100 "Smolenice",
2101 "Snina",
2102 "Star\u00e1 \u013dubov\u0148a",
2103 "Star\u00e1 Tur\u00e1",
2104 "Str\u00e1\u017eske",
2105 "Stropkov",
2106 "Stupava",
2107 "\u0160t\u00farovo",
2108 "\u0120ulekovo",
2109 "Topo\u013e\u010dany",
2110 "Trebi\u0161ov",
2111 "Tren\u010d\u00edn",
2112 "Trnava",
2113 "Tur\u010dianske Teplice",
2114 "Tvrdo\u0161\u00edn",
2115 "Vr\u00e1ble",
2116 "Vranov nad Top\u013eou",
2117 "Z\u00e1horsk\u00e1 Bystrica",
2118 "\u017ddiar",
2119 "\u013diar nad Hronom",
2120 "\u017dilina",
2121 "Zlat\u00e9 Moravce",
2122 "Zvolen",
2123};
2124
2125static const char * const _name_norwegian_1[] = {
2126 "Arna",
2127 "Aust",
2128 "Bj\u00f8rk",
2129 "Bj\u00f8rn",
2130 "Brand",
2131 "B\u00f8ver",
2132 "Drag",
2133 "Dr\u00f8",
2134 "Eids",
2135 "Egge",
2136 "Fager",
2137 "Finns",
2138 "Flat",
2139 "Foll",
2140 "Foss",
2141 "Fugle",
2142 "Furu",
2143 "Gaus",
2144 "Galte",
2145 "Geir",
2146 "Gl\u00f8s",
2147 "Gran",
2148 "Grind",
2149 "Grims",
2150 "Gr\u00f8n",
2151 "Gr\u00f8t",
2152 "Gulle",
2153 "Haka",
2154 "Hammer",
2155 "Haug",
2156 "Hol",
2157 "Hon",
2158 "Hop",
2159 "Hov",
2160 "Jess",
2161 "Kabel",
2162 "Kjerns",
2163 "Kjerring",
2164 "Knatte",
2165 "Krok",
2166 "K\u00f8y",
2167 "Lang",
2168 "Lauv",
2169 "Leir",
2170 "Lund",
2171 "Logn",
2172 "Lo",
2173 "Lyng",
2174 "L\u00f8n",
2175 "Mesna",
2176 "Mel",
2177 "Mo",
2178 "Nar",
2179 "Nitte",
2180 "Nord",
2181 "Odd",
2182 "Ola",
2183 "Otte",
2184 "Ran",
2185 "Rev",
2186 "Rog",
2187 "Roms",
2188 "Rosen",
2189 "Sand",
2190 "Sau",
2191 "Sel",
2192 "Sol",
2193 "Sjur",
2194 "Sk\u00e5r",
2195 "Sl\u00e5tt",
2196 "Stj\u00f8r",
2197 "Stor",
2198 "Svart",
2199 "Svens",
2200 "Svin",
2201 "Sylte",
2202 "Syn",
2203 "Tran",
2204 "Vass",
2205 "Ved",
2206 "Vest",
2207 "Vesle",
2208 "Vik",
2209 "V\u00e5g",
2210};
2211
2212static const char * const _name_norwegian_2[] = {
2213 "aker",
2214 "anger",
2215 "bakken",
2216 "bekk",
2217 "berg",
2218 "botn",
2219 "breen",
2220 "bu",
2221 "bugen",
2222 "by",
2223 "bygd",
2224 "b\u00f8",
2225 "dal",
2226 "egga",
2227 "eid",
2228 "elv",
2229 "enga",
2230 "foss",
2231 "fjell",
2232 "fjord",
2233 "foten",
2234 "gard",
2235 "grend",
2236 "hammer",
2237 "haug",
2238 "havn",
2239 "heim",
2240 "hella",
2241 "hovda",
2242 "h\u00f8a",
2243 "h\u00f8gda",
2244 "kampen",
2245 "kj\u00f8len",
2246 "kollen",
2247 "kroken",
2248 "land",
2249 "lia",
2250 "mark",
2251 "moen",
2252 "myr",
2253 "nes",
2254 "nuten",
2255 "osen",
2256 "rike",
2257 "rud",
2258 "sand",
2259 "set",
2260 "sj\u00f8en",
2261 "skogen",
2262 "slette",
2263 "snipa",
2264 "stad",
2265 "stua",
2266 "stulen",
2267 "sund",
2268 "svingen",
2269 "s\u00e6tra",
2270 "tinden",
2271 "tun",
2272 "vang",
2273 "vatn",
2274 "veid",
2275 "vik",
2276 "voll",
2277 "v\u00e5g",
2278 "um",
2279 "\u00e5sen",
2280};
2281
2282static const char * const _name_norwegian_real[] = {
2283 "Alta",
2284 "Arendal",
2285 "Askim",
2286 "Bergen",
2287 "Bod\u00f8",
2288 "Brevik",
2289 "Bryne",
2290 "Br\u00f8nn\u00f8ysund",
2291 "Drammen",
2292 "Dr\u00f8bak",
2293 "Egersund",
2294 "Elverum",
2295 "Farsund",
2296 "Fauske",
2297 "Finnsnes",
2298 "Flekkefjord",
2299 "Flora",
2300 "Fosnav\u00e5g",
2301 "Fredrikstad",
2302 "F\u00f8rde",
2303 "Gj\u00f8vik",
2304 "Grimstad",
2305 "Halden",
2306 "Hamar",
2307 "Hammerfest",
2308 "Harstad",
2309 "Haugesund",
2310 "Holmestrand",
2311 "Horten",
2312 "J\u00f8rpeland",
2313 "Kirkenes",
2314 "Kolvereid",
2315 "Kongsberg",
2316 "Kongsvinger",
2317 "Kopervik",
2318 "Krager\u00f8",
2319 "Kristiansand",
2320 "Kristiansund",
2321 "Langesund",
2322 "Larvik",
2323 "Leirvik",
2324 "Leknes",
2325 "Levanger",
2326 "Lillehammer",
2327 "Lillesand",
2328 "Lillestr\u00f8m",
2329 "Lyngdal",
2330 "L\u00f8renskog",
2331 "Mandal",
2332 "Mo i Rana",
2333 "Molde",
2334 "Mosj\u00f8en",
2335 "Moss",
2336 "Mysen",
2337 "M\u00e5l\u00f8y",
2338 "Namsos",
2339 "Narvik",
2340 "Notodden",
2341 "Odda",
2342 "Oslo",
2343 "Otta",
2344 "Porsgrunn",
2345 "Ringerike",
2346 "Ris\u00f8r",
2347 "Rjukan",
2348 "Sandefjord",
2349 "Sandnes",
2350 "Sandnessj\u00f8en",
2351 "Sandvika",
2352 "Sarpsborg",
2353 "Sauda",
2354 "Ski",
2355 "Skien",
2356 "Skudeneshavn",
2357 "Sortland",
2358 "Stathelle",
2359 "Stavanger",
2360 "Steinkjer",
2361 "Stj\u00f8rdal",
2362 "Stokmarknes",
2363 "Stord",
2364 "Svelvik",
2365 "Svolv\u00e6r",
2366 "Troms\u00f8",
2367 "Trondheim",
2368 "Tvedestrand",
2369 "T\u00f8nsberg",
2370 "Ulsteinvik",
2371 "Vads\u00f8",
2372 "Vard\u00f8",
2373 "Verdals\u00f8ra",
2374 "\u00c5krehamn",
2375 "\u00c5lesund",
2376 "\u00c5ndalsnes",
2377};
2378
2379static const char * const _name_hungarian_1[] = {
2380 "Nagy-",
2381 "Kis-",
2382 "Fels\u0151-",
2383 "Als\u00f3-",
2384 "\u00daj-",
2385};
2386
2387static const char * const _name_hungarian_2[] = {
2388 "Bodrog",
2389 "Dr\u00e1va",
2390 "Duna",
2391 "Hej\u0151",
2392 "Hern\u00e1d",
2393 "R\u00e1ba",
2394 "Saj\u00f3",
2395 "Szamos",
2396 "Tisza",
2397 "Zala",
2398 "Balaton",
2399 "Fert\u0151",
2400 "Bakony",
2401 "Cserh\u00e1t",
2402 "Bihar",
2403 "Hajd\u00fa",
2404 "J\u00e1sz",
2405 "Kun",
2406 "Magyar",
2407 "N\u00f3gr\u00e1d",
2408 "Ny\u00edr",
2409 "Somogy",
2410 "Sz\u00e9kely",
2411 "Buda",
2412 "Gy\u0151r",
2413 "Pest",
2414 "Feh\u00e9r",
2415 "Cser\u00e9p",
2416 "Erd\u0151",
2417 "Hegy",
2418 "Homok",
2419 "Mez\u0151",
2420 "Puszta",
2421 "S\u00e1r",
2422 "Cs\u00e1sz\u00e1r",
2423 "Herceg",
2424 "Kir\u00e1ly",
2425 "Nemes",
2426 "P\u00fcsp\u00f6k",
2427 "Szent",
2428 "Alm\u00e1s",
2429 "Szilv\u00e1s",
2430 "Agg",
2431 "Aranyos",
2432 "B\u00e9k\u00e9s",
2433 "Egyh\u00e1zas",
2434 "Gagy",
2435 "Heves",
2436 "Kapos",
2437 "T\u00e1pi\u00f3",
2438 "Torna",
2439 "Vas",
2440 "V\u00e1mos",
2441 "V\u00e1s\u00e1ros",
2442};
2443
2444static const char * const _name_hungarian_3[] = {
2445 "ap\u00e1ti",
2446 "b\u00e1ba",
2447 "bikk",
2448 "dob",
2449 "fa",
2450 "f\u00f6ld",
2451 "hegyes",
2452 "kak",
2453 "kereszt",
2454 "k\u00fcrt",
2455 "lad\u00e1ny",
2456 "m\u00e9rges",
2457 "szalonta",
2458 "telek",
2459 "vas",
2460 "v\u00f6lgy",
2461};
2462
2463static const char * const _name_hungarian_4[] = {
2464 "alja",
2465 "egyh\u00e1za",
2466 "h\u00e1za",
2467 "\u00far",
2468 "v\u00e1r",
2469};
2470
2471static const char * const _name_hungarian_real[] = {
2472 "Ajka",
2473 "Asz\u00f3d",
2474 "Badacsony",
2475 "Baja",
2476 "Budapest",
2477 "Debrecen",
2478 "Eger",
2479 "Fony\u00f3d",
2480 "G\u00f6d\u00f6ll\u0151",
2481 "Gy\u0151r",
2482 "Gyula",
2483 "Karcag",
2484 "Kecskem\u00e9t",
2485 "Keszthely",
2486 "Kisk\u00f6re",
2487 "Kocsord",
2488 "Kom\u00e1rom",
2489 "K\u0151szeg",
2490 "Mak\u00f3",
2491 "Moh\u00e1cs",
2492 "Miskolc",
2493 "\u00d3zd",
2494 "Paks",
2495 "P\u00e1pa",
2496 "P\u00e9cs",
2497 "Polg\u00e1r",
2498 "Sarkad",
2499 "Si\u00f3fok",
2500 "Szeged",
2501 "Szentes",
2502 "Szolnok",
2503 "Tihany",
2504 "Tokaj",
2505 "V\u00e1c",
2506 "Z\u00e1hony",
2507 "Zirc",
2508};
2509
2510static const char * const _name_swiss_real[] = {
2511 "Aarau",
2512 "Aesch",
2513 "Altdorf",
2514 "Arosa",
2515 "Appenzell",
2516 "Arbon",
2517 "Altst\u00e4tten",
2518 "Baar",
2519 "Baden",
2520 "Bellinzona",
2521 "Brig-Glis",
2522 "Bienne",
2523 "Bulle",
2524 "Binningen",
2525 "Burgdorf",
2526 "Bern",
2527 "Basel",
2528 "B\u00fclach",
2529 "Carouge",
2530 "Cham",
2531 "Chiasso",
2532 "Chur",
2533 "Davos",
2534 "Del\u00e9mont",
2535 "Dietikon",
2536 "D\u00fcbendorf",
2537 "Emmen",
2538 "Freienbach-Pf\u00e4ffikon",
2539 "Fribourg",
2540 "Frauenfeld",
2541 "Gen\u00e8ve",
2542 "Glarus",
2543 "Gossau",
2544 "Grenchen",
2545 "Herisau",
2546 "Horgen",
2547 "Horw",
2548 "Illnau-Effretikon",
2549 "Ittigen",
2550 "Jona",
2551 "Kriens",
2552 "Kloten",
2553 "K\u00f6niz",
2554 "Kreuzlingen",
2555 "K\u00fcsnacht",
2556 "Agen",
2557 "Lancy",
2558 "La Chaux-de-Fonds",
2559 "Lenzburg",
2560 "Lugano",
2561 "Langenthal",
2562 "Littau",
2563 "Le Locle",
2564 "La Neuveville",
2565 "Locarno",
2566 "Liestal",
2567 "La Tour-de-Peilz",
2568 "Lausanne",
2569 "Lyss",
2570 "Luzern",
2571 "Martigny",
2572 "M\u00fcnchenstein",
2573 "Meyrin",
2574 "Montreux",
2575 "Monthey",
2576 "Morges",
2577 "Murten",
2578 "Moutier",
2579 "Muttenz",
2580 "Neuch\u00e2tel",
2581 "Neuhausen am Rheinfall",
2582 "Nyon",
2583 "Olten",
2584 "Onex",
2585 "Opfikon",
2586 "Ostermundigen",
2587 "Payerne",
2588 "Peseux",
2589 "Prilly",
2590 "Pully",
2591 "Rapperswil",
2592 "Richterswil",
2593 "Regensdorf",
2594 "Rheinfelden",
2595 "Riehen",
2596 "Renens",
2597 "Romanshorn",
2598 "Rorschach",
2599 "Stans",
2600 "Schaffhausen",
2601 "Steffisburg",
2602 "St. Gallen",
2603 "Schlieren",
2604 "Sierre",
2605 "Solothurn",
2606 "St. Moritz",
2607 "Sion",
2608 "Spiez",
2609 "St\u00e4fa",
2610 "Sursee",
2611 "Schwyz",
2612 "Thalwil",
2613 "Th\u00f4nex",
2614 "Thun",
2615 "Uster",
2616 "Uzwil",
2617 "Vernier",
2618 "Volketswil",
2619 "Versoix",
2620 "Vevey",
2621 "W\u00e4denswil",
2622 "Wettingen",
2623 "Wil",
2624 "Wallisellen",
2625 "Winterthur",
2626 "Wohlen",
2627 "Worb",
2628 "Wetzikon",
2629 "Yverdon-les-Bains",
2630 "Zollikon",
2631 "Zofingen",
2632 "Z\u00fcrich",
2633 "Zug",
2634};
2635
2636static const char * const _name_danish_1[] = {
2637 "Gamle ",
2638 "Lille ",
2639 "Nye ",
2640 "Store ",
2641 "Kirke ",
2642 "N\u00f8rre ",
2643 "Vester ",
2644 "S\u00f8nder ",
2645 "\u00d8ster ",
2646 "Hvide ",
2647 "H\u00f8je ",
2648 "Kongens ",
2649};
2650
2651static const char * const _name_danish_2[] = {
2652 "Ager",
2653 "Alle",
2654 "Aske",
2655 "Balle",
2656 "Bede",
2657 "Birke",
2658 "Bjerring",
2659 "Bj\u00e6ver",
2660 "Blommens",
2661 "Blok",
2662 "Bolder",
2663 "Bred",
2664 "Charlotten",
2665 "Christians",
2666 "Danne",
2667 "Diana",
2668 "Es",
2669 "Fredens",
2670 "Frederiks",
2671 "Fugle",
2672 "F\u00e5re",
2673 "Gille",
2674 "Gis",
2675 "Givs",
2676 "Glams",
2677 "Glo",
2678 "Guld",
2679 "Had",
2680 "Haralds",
2681 "Hassel",
2682 "Hede",
2683 "Helle",
2684 "Hessel",
2685 "Hjorts",
2686 "Hol",
2687 "Horn",
2688 "Humle",
2689 "H\u00f8j",
2690 "H\u00f8r",
2691 "Is",
2692 "Jyde",
2693 "J\u00e6gers",
2694 "Karls",
2695 "Klov",
2696 "Kokke",
2697 "Kvist",
2698 "Lang",
2699 "Lange",
2700 "Mari",
2701 "Nord",
2702 "Ny",
2703 "Oks",
2704 "Ring",
2705 "R\u00f8de",
2706 "Rung",
2707 "R\u00f8r",
2708 "Rud",
2709 "Saks",
2710 "Salt",
2711 "Skam",
2712 "Silke",
2713 "Skod",
2714 "Sk\u00e6l",
2715 "Sk\u00e6r",
2716 "Sol",
2717 "Svend",
2718 "Svine",
2719 "Strand",
2720 "Stubbe",
2721 "Ting",
2722 "Tj\u00e6re",
2723 "Tore",
2724 "Uger",
2725 "Ulf",
2726 "Val",
2727 "Vand",
2728 "Vej",
2729 "Vor",
2730 "V\u00e6r",
2731 "\u00d8r",
2732 "\u00c5l",
2733};
2734
2735static const char * const _name_danish_3[] = {
2736 "basse",
2737 "borg",
2738 "berg",
2739 "bro",
2740 "by",
2741 "havn",
2742 "strup",
2743 "holm",
2744 "hus",
2745 "k\u00f8bing",
2746 "lund",
2747 "lunde",
2748 "sund",
2749 "ovre",
2750 "h\u00f8j",
2751 "dal",
2752 "sted",
2753 "sten",
2754 "l\u00f8se",
2755 "r\u00f8d",
2756 "magle",
2757 "s\u00f8",
2758 "bjerg",
2759 "b\u00e6k",
2760 "drup",
2761 "lev",
2762 "bo",
2763 "lyst",
2764 "feld",
2765 "skov",
2766};
2767
2768static const char * const _name_turkish_prefix[] = {
2769 "Ak\u00e7a",
2770 "Alt\u0131n",
2771 "Bah\u00e7e",
2772 "Boz",
2773 "B\u00fcy\u00fck",
2774 "\u00c7ay",
2775 "Do\u011fu",
2776 "Eski",
2777 "G\u00fczel",
2778 "K\u0131z\u0131l",
2779 "K\u00fc\u00e7\u00fck",
2780 "Orta",
2781 "Sar\u0131",
2782 "Sultan",
2783 "Ulu",
2784 "Yeni",
2785};
2786
2787static const char * const _name_turkish_middle[] = {
2788 "aga\u00e7",
2789 "ayva",
2790 "\u00e7am",
2791 "elma",
2792 "kurt",
2793 "pazar",
2794 "yal\u0131",
2795};
2796
2797static const char * const _name_turkish_suffix[] = {
2798 "dere",
2799 "hisar",
2800 "kale",
2801 "kaya",
2802 "kent",
2803 "k\u00f6y",
2804 "ova",
2805 "\u00f6z\u00fc",
2806 "\u00f6ren",
2807 "pazar",
2808 "saray",
2809 "tepe",
2810 "yer",
2811 "yurt",
2812};
2813
2814static const char * const _name_turkish_real[] = {
2815 "Adana",
2816 "Ad\u0131yaman",
2817 "Afyon",
2818 "A\u011fr\u0131",
2819 "Amasya",
2820 "Antalya",
2821 "Artvin",
2822 "Bal\u0131kesir",
2823 "Bilecik",
2824 "Bitlis",
2825 "Bolu",
2826 "Burdur",
2827 "Bursa",
2828 "\u00c7anakkale",
2829 "\u00c7ank\u0131r\u0131",
2830 "Denizli",
2831 "Diyarbak\u0131r",
2832 "Edirne",
2833 "Elaz\u0131\u011f",
2834 "Erzurum",
2835 "Eski\u015fehir",
2836 "Giresun",
2837 "G\u00fcm\u00fc\u015fhane",
2838 "Hatay",
2839 "Isparta",
2840 "\u0130\u00e7el",
2841 "\u0130stanbul",
2842 "\u0130zmir",
2843 "Kars",
2844 "Kastamonu",
2845 "Kayseri",
2846 "Kirklareli",
2847 "Kocaeli",
2848 "Konya",
2849 "K\u00fctahya",
2850 "Malatya",
2851 "Manisa",
2852 "Kahramanmara\u015f",
2853 "Mardin",
2854 "Mu\u011fla",
2855 "Mu\u015f",
2856 "Nev\u015fehir",
2857 "Ni\u011fde",
2858 "Rize",
2859 "Sakarya",
2860 "Samsun",
2861 "Siirt",
2862 "Sinop",
2863 "Sivas",
2864 "Trabzon",
2865 "\u015eanl\u0131urfa",
2866 "Van",
2867 "Yozgat",
2868 "Zonguldak",
2869 "Aksaray",
2870 "Bayburt",
2871 "Karaman",
2872 "\u015e\u0131rnak",
2873 "Bart\u0131n",
2874 "Ardahan",
2875 "I\u011fd\u0131r",
2876 "Yalova",
2877 "Karab\u00fck",
2878 "Osmaniye",
2879 "D\u00fczce",
2880};
2881
2882static const char * const _name_italian_real[] = {
2883 "Roma",
2884 "Milano",
2885 "Napoli",
2886 "Torino",
2887 "Venezia",
2888 "Firenze",
2889 "Palermo",
2890 "Genova",
2891 "Parma",
2892 "Bologna",
2893 "Bari",
2894 "Cagliari",
2895 "Sassari",
2896 "Pisa",
2897 "Aosta",
2898 "Brescia",
2899 "Verona",
2900 "Bolzano",
2901 "Padova",
2902 "Udine",
2903 "Trieste",
2904 "Livorno",
2905 "Ancona",
2906 "Perugia",
2907 "Pescara",
2908 "L'Aquila",
2909 "Campobasso",
2910 "Potenza",
2911 "Cosenza",
2912 "Reggio Calabria",
2913 "Catania",
2914 "Caltanisetta",
2915 "Agrigento",
2916 "La Spezia",
2917 "Modena",
2918 "Vicenza",
2919 "Mantova",
2920 "Cremona",
2921 "Piacenza",
2922 "Reggio Emilia",
2923 "Foggia",
2924 "Benevento",
2925 "Salerno",
2926 "Catanzaro",
2927 "Lecce",
2928 "Como",
2929 "Lecco",
2930 "Sondrio",
2931 "Trento",
2932 "Desenzano",
2933 "Cuneo",
2934 "Asti",
2935 "Lodi",
2936 "Novara",
2937 "Biella",
2938 "Vercelli",
2939 "Rieti",
2940 "Nuoro",
2941 "Oristano",
2942 "Matera",
2943 "Taranto",
2944 "Varese",
2945 "Bergamo",
2946 "Pavia",
2947 "Caserta",
2948 "Frosinone",
2949 "Latina",
2950 "Enna",
2951 "Ragusa",
2952 "Siracusa",
2953 "Pordenone",
2954 "Imperia",
2955 "Verbania",
2956 "Alessandria",
2957 "Messina",
2958 "Siena",
2959 "Arezzo",
2960 "Grosseto",
2961};
2962
2963static const char * const _name_italian_pref[] = {
2964 "Alpe ",
2965 "Borgo ",
2966 "Cascina ",
2967 "Castel ",
2968 "Fonte ",
2969 "Forte ",
2970 "Malga ",
2971 "Pieve ",
2972 "Poggio ",
2973 "Rocca ",
2974 "Villa ",
2975 "Villar ",
2976};
2977
2978static const char * const _name_italian_1m[] = {
2979 "Bel",
2980 "Borgo",
2981 "Bosco",
2982 "Campo",
2983 "Capo",
2984 "Casal",
2985 "Castel",
2986 "Colle",
2987 "Fiume",
2988 "Fonte",
2989 "Lago",
2990 "Mezzo",
2991 "Monte",
2992 "Mon",
2993 "Orto",
2994 "Passo",
2995 "Prato",
2996 "Poggio",
2997 "Ponte",
2998 "Pozzo",
2999 "Sasso",
3000 "Tra",
3001 "Tre",
3002 "Ver",
3003 "Vico",
3004};
3005
3006static const char * const _name_italian_1f[] = {
3007 "Acqua",
3008 "Bra",
3009 "Cala",
3010 "Casa",
3011 "Chiesa",
3012 "Citta",
3013 "Civita",
3014 "Corte",
3015 "Costa",
3016 "Croce",
3017 "Fontana",
3018 "Grotta",
3019 "Guardia",
3020 "Mezza",
3021 "Palma",
3022 "Pietra",
3023 "Ripa",
3024 "Rocca",
3025 "Serra",
3026 "Torre",
3027 "Val",
3028 "Valle",
3029 "Villa",
3030};
3031
3032static const char * const _name_italian_2[] = {
3033 "bell",
3034 "bianc",
3035 "cald",
3036 "chiar",
3037 "cort",
3038 "ferrat",
3039 "fier",
3040 "fredd",
3041 "gioios",
3042 "grec",
3043 "guzz",
3044 "lung",
3045 "long",
3046 "migli",
3047 "negr",
3048 "ner",
3049 "nov",
3050 "nuov",
3051 "ross",
3052 "rotond",
3053 "scur",
3054 "secc",
3055 "sett",
3056 "vecchi",
3057 "ventos",
3058 "vers",
3059 "viv",
3060};
3061
3062static const char * const _name_italian_2i[] = {
3063 "",
3064 "breve",
3065 "brevi",
3066 "chiari",
3067 "ferro",
3068 "fieschi",
3069 "fiore",
3070 "fonte",
3071 "forte",
3072 "gate",
3073 "leone",
3074 "maggiore",
3075 "minore",
3076 "mole",
3077 "monte",
3078 "poli",
3079 "scuri",
3080 "terra",
3081 "te",
3082 "torrione",
3083 "vento",
3084 "verde",
3085 "versiere",
3086};
3087
3088
3089static const char * const _name_italian_3[] = {
3090 " Marittimo",
3091 " Marittima",
3092 " del Capo",
3093 " del Monte",
3094 " di Sopra",
3095 " di Sotto",
3096 " sui Monti",
3097 " dei Marmi",
3098 " dei Sassi",
3099 " delle Fonti",
3100 " sui Prati",
3101 " a Mare",
3102 " Superiore",
3103 " Inferiore",
3104 " Terme",
3105 " Alta",
3106 " Bassa",
3107 " Brianza",
3108 " Vesuviano",
3109 " Scrivia",
3110 " Ticino",
3111};
3112
3113static const char * const _name_italian_river1[] = {
3114 " del",
3115 " sul",
3116 " al",
3117 " nel",
3118};
3119
3120static const char * const _name_italian_river2[] = {
3121 "l'Adda",
3122 "l'Adige",
3123 "le Alpi",
3124 "l'Arno",
3125 " Bormida",
3126 " Brenta",
3127 "la Dora Baltea",
3128 " Lambro",
3129 " Mincio",
3130 " Naviglio",
3131 "l'Oglio",
3132 "l'Olona",
3133 "l'Ombrone",
3134 " Panaro",
3135 " Piave",
3136 " Po",
3137 " Reno",
3138 " Scrivia",
3139 " Secchia",
3140 " Serio",
3141 " Tagliamento",
3142 " Tanaro",
3143 " Taro",
3144 " Ticino",
3145 " Tevere",
3146};
3147
3148static const char * const _name_catalan_real[] = {
3149 "Barcelona",
3150 "L'Hospitalet de Llobregat",
3151 "Cerdanyola",
3152 "Martorell",
3153 "Badalona",
3154 "Tarragona",
3155 "Lleida",
3156 "Girona",
3157 "Sabadell",
3158 "Terrassa",
3159 "Reus",
3160 "Valls",
3161 "Vic",
3162 "Vielha e Mijaran",
3163 "Amposta",
3164 "Tortosa",
3165 "Berga",
3166 "Olot",
3167 "Mollerussa",
3168 "Banyoles",
3169 "Figueres",
3170 "Balaguer",
3171 "Vilafranca del Pened\u00e8s",
3172 "La Seu d'Urgell",
3173 "El Pont de Suert",
3174 "Igualada",
3175 "Manresa",
3176 "Solsona",
3177 "Les Borges Blanques",
3178 "Tremp",
3179 "Sort",
3180 "Colera",
3181 "Portbou",
3182 "El Vendrell",
3183 "Falset",
3184 "Ripoll",
3185 "Cervera",
3186 "Gandesa",
3187 "Matar\u00f3",
3188 "Montblanc",
3189 "Vilanova i la Geltr\u00fa",
3190 "T\u00e0rrega",
3191 "Camprodon",
3192 "Campdev\u00e0nol",
3193 "Cambrils",
3194 "Begur",
3195 "Setcases",
3196 "Palafrugell",
3197 "Begues",
3198 "El Bruc",
3199 "Cadaqu\u00e9s",
3200 "Collbat\u00f3",
3201 "Cervell\u00f3",
3202 "Esparreguera",
3203 "Abrera",
3204 "Alp",
3205 "Das",
3206 "Cercs",
3207 "Manlleu",
3208 "El Masnou",
3209 "Molins de Rei",
3210 "Monistrol",
3211 "Rocallaura",
3212 "Rub\u00ed",
3213 "Ripollet",
3214 "Sitges",
3215 "Roses",
3216};
3217
3218static const char * const _name_catalan_pref[] = {
3219 "El Pont de ",
3220 "Parets de ",
3221 "Canet de ",
3222 "Castellar de ",
3223 "Corbera de ",
3224 "Arenys de ",
3225 "Calella de ",
3226 "La Seu de ",
3227 "La Bisbal de ",
3228 "Torroella de ",
3229 "Port de ",
3230 "Vilafranca de ",
3231 "Vilanova de ",
3232 "Caldes de ",
3233 "La Conca de ",
3234 "Olesa de ",
3235 "La Roca de ",
3236 "Sant Esteve de ",
3237 "Sant Andreu de ",
3238 "Sant Jordi de ",
3239 "Sant Joan de ",
3240 "Sant Feliu de ",
3241 "Sant Quirze de ",
3242 "Sant Sadurn\u00ed de ",
3243 "Santa Coloma de ",
3244 "Santa Margarida de ",
3245 "Santa Maria de ",
3246 "Sant Mart\u00ed de ",
3247 "Sant Pere de ",
3248 "Sant Juli\u00e0 de ",
3249 "Sant Vicen\u00e7 de ",
3250
3251};
3252
3253static const char * const _name_catalan_1m[] = {
3254 "Torrent",
3255 "Cami",
3256 "Mont",
3257 "Bell",
3258 "Puig",
3259 "Riu",
3260};
3261
3262static const char * const _name_catalan_1f[] = {
3263 "Pala",
3264 "Selva",
3265 "Vall",
3266 "Serra",
3267 "Torre",
3268 "Riba",
3269 "Cova",
3270 "Terra",
3271};
3272
3273static const char * const _name_catalan_2m[] = {
3274 "alt",
3275 "baix",
3276 "fosc",
3277 "pelat",
3278 "vent\u00f3s",
3279 "negre",
3280 "roig",
3281 "gr\u00eds",
3282};
3283
3284static const char * const _name_catalan_2f[] = {
3285 "baixa",
3286 "alta",
3287 "fosca",
3288 "clara",
3289 "negra",
3290 "roja",
3291 "grisa",
3292 "freda",
3293};
3294
3295static const char * const _name_catalan_3[] = {
3296 " Desp\u00ed",
3297 " Desvern",
3298 " del Cam\u00ed",
3299 " de Mar",
3300 " de Dalt",
3301 " de Baix",
3302 " del Vall\u00e8s",
3303 " de Bergued\u00e0",
3304 " de Conflent",
3305 " de la Plana",
3306};
3307
3308static const char * const _name_catalan_river1[] = {
3309 " d'Anoia",
3310 " de Ter",
3311 " de Llobregat",
3312 " d'Ebre",
3313 " de Segre",
3314 " de Francol\u00ed",
3315};
#define DECLARE_ENUM_AS_BIT_SET(enum_type)
Operators to allow to work with enum as with type safe bit set in C++.
Definition enum_type.hpp:68