Changeset - r28482:c71e869ee35b
[Not reviewed]
master
0 7 0
Patric Stout - 11 months ago 2024-01-16 21:33:53
truebrain@openttd.org
Codechange: remove all u8 prefix in favour of compile-time option (#11807)
7 files changed with 693 insertions and 686 deletions:
0 comments (0 inline, 0 general)
cmake/CompileFlags.cmake
Show inline comments
 
@@ -13,12 +13,19 @@ macro(compile_flags)
 
                /MP # Enable multi-threaded compilation.
 
                /FC # Display the full path of source code files passed to the compiler in diagnostics.
 
            )
 
        endif()
 
    endif()
 

	
 
    # Our strings are UTF-8.
 
    if(MSVC)
 
        add_compile_options(/utf-8)
 
    else()
 
        add_compile_options(-finput-charset=utf-8)
 
    endif()
 

	
 
    # Add some -D flags for Debug builds. We cannot use add_definitions(), because
 
    # it does not appear to support the $<> tags.
 
    add_compile_options(
 
        "$<$<CONFIG:Debug>:-D_DEBUG>"
 
        "$<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=2>" # FORTIFY_SOURCE should only be used in non-debug builds (requires -O1+)
 
    )
src/currency.cpp
Show inline comments
 
@@ -24,55 +24,55 @@
 
	/*   exchange rate    prefix                             code
 
	 *   |  separator        |           postfix              |  symbol_pos
 
	 *   |   |   Euro year   |              |                 |     | name
 
	 *   |   |    |          |              |                 |     |  | */
 
/** The original currency specifications. */
 
static const CurrencySpec origin_currency_specs[CURRENCY_END] = {
 
	{    1, "", CF_NOEURO, u8"\u00a3",     "",               "GBP", 0, STR_GAME_OPTIONS_CURRENCY_GBP    }, ///< british pound
 
	{    2, "", CF_NOEURO, "$",            "",               "USD", 0, STR_GAME_OPTIONS_CURRENCY_USD    }, ///< american dollar
 
	{    2, "", CF_ISEURO, u8"\u20ac",     "",               "EUR", 0, STR_GAME_OPTIONS_CURRENCY_EUR    }, ///< euro
 
	{  220, "", CF_NOEURO, u8"\u00a5",     "",               "JPY", 0, STR_GAME_OPTIONS_CURRENCY_JPY    }, ///< japanese yen
 
	{   27, "", 2002,      "",             NBSP "S.",        "ATS", 1, STR_GAME_OPTIONS_CURRENCY_ATS    }, ///< austrian schilling
 
	{   81, "", 2002,      "BEF" NBSP,     "",               "BEF", 0, STR_GAME_OPTIONS_CURRENCY_BEF    }, ///< belgian franc
 
	{    2, "", CF_NOEURO, "CHF" NBSP,     "",               "CHF", 0, STR_GAME_OPTIONS_CURRENCY_CHF    }, ///< swiss franc
 
	{   41, "", CF_NOEURO, "",             NBSP u8"K\u010d", "CZK", 1, STR_GAME_OPTIONS_CURRENCY_CZK    }, ///< czech koruna
 
	{    4, "", 2002,      "DM" NBSP,      "",               "DEM", 0, STR_GAME_OPTIONS_CURRENCY_DEM    }, ///< deutsche mark
 
	{   11, "", CF_NOEURO, "",             NBSP "kr",        "DKK", 1, STR_GAME_OPTIONS_CURRENCY_DKK    }, ///< danish krone
 
	{  333, "", 2002,      "Pts" NBSP,     "",               "ESP", 0, STR_GAME_OPTIONS_CURRENCY_ESP    }, ///< spanish peseta
 
	{   12, "", 2002,      "",             NBSP "mk",        "FIM", 1, STR_GAME_OPTIONS_CURRENCY_FIM    }, ///< finnish markka
 
	{   13, "", 2002,      "FF" NBSP,      "",               "FRF", 0, STR_GAME_OPTIONS_CURRENCY_FRF    }, ///< french franc
 
	{  681, "", 2002,      "",             "Dr.",            "GRD", 1, STR_GAME_OPTIONS_CURRENCY_GRD    }, ///< greek drachma
 
	{  378, "", CF_NOEURO, "",             NBSP "Ft",        "HUF", 1, STR_GAME_OPTIONS_CURRENCY_HUF    }, ///< hungarian forint
 
	{  130, "", CF_NOEURO, "",             NBSP "Kr",        "ISK", 1, STR_GAME_OPTIONS_CURRENCY_ISK    }, ///< icelandic krona
 
	{ 3873, "", 2002,      "",             NBSP "L.",        "ITL", 1, STR_GAME_OPTIONS_CURRENCY_ITL    }, ///< italian lira
 
	{    4, "", 2002,      "NLG" NBSP,     "",               "NLG", 0, STR_GAME_OPTIONS_CURRENCY_NLG    }, ///< dutch gulden
 
	{   12, "", CF_NOEURO, "",             NBSP "Kr",        "NOK", 1, STR_GAME_OPTIONS_CURRENCY_NOK    }, ///< norwegian krone
 
	{    6, "", CF_NOEURO, "",             NBSP u8"z\u0142", "PLN", 1, STR_GAME_OPTIONS_CURRENCY_PLN    }, ///< polish zloty
 
	{    5, "", CF_NOEURO, "",             NBSP "Lei",       "RON", 1, STR_GAME_OPTIONS_CURRENCY_RON    }, ///< romanian leu
 
	{   50, "", CF_NOEURO, "",             NBSP "p",         "RUR", 1, STR_GAME_OPTIONS_CURRENCY_RUR    }, ///< russian rouble
 
	{  479, "", 2007,      "",             NBSP "SIT",       "SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT    }, ///< slovenian tolar
 
	{   13, "", CF_NOEURO, "",             NBSP "Kr",        "SEK", 1, STR_GAME_OPTIONS_CURRENCY_SEK    }, ///< swedish krona
 
	{    3, "", CF_NOEURO, "",             NBSP "TL",        "TRY", 1, STR_GAME_OPTIONS_CURRENCY_TRY    }, ///< turkish lira
 
	{   60, "", 2009,      "",             NBSP "Sk",        "SKK", 1, STR_GAME_OPTIONS_CURRENCY_SKK    }, ///< slovak koruna
 
	{    4, "", CF_NOEURO, "R$" NBSP,      "",               "BRL", 0, STR_GAME_OPTIONS_CURRENCY_BRL    }, ///< brazil real
 
	{   31, "", 2011,      "",             NBSP "EEK",       "EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK    }, ///< estonian krooni
 
	{    4, "", 2015,      "",             NBSP "Lt",        "LTL", 1, STR_GAME_OPTIONS_CURRENCY_LTL    }, ///< lithuanian litas
 
	{ 1850, "", CF_NOEURO, u8"\u20a9",     "",               "KRW", 0, STR_GAME_OPTIONS_CURRENCY_KRW    }, ///< south korean won
 
	{   13, "", CF_NOEURO, "R" NBSP,       "",               "ZAR", 0, STR_GAME_OPTIONS_CURRENCY_ZAR    }, ///< south african rand
 
	{    1, "", CF_NOEURO, "",             "",               "",    2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency (add further languages below)
 
	{    3, "", CF_NOEURO, "",             NBSP "GEL",       "GEL", 1, STR_GAME_OPTIONS_CURRENCY_GEL    }, ///< Georgian Lari
 
	{ 4901, "", CF_NOEURO, "",             NBSP "Rls",       "IRR", 1, STR_GAME_OPTIONS_CURRENCY_IRR    }, ///< Iranian Rial
 
	{   80, "", CF_NOEURO, "",             NBSP "rub",       "RUB", 1, STR_GAME_OPTIONS_CURRENCY_RUB    }, ///< New Russian Ruble
 
	{   24, "", CF_NOEURO, "$",            "",               "MXN", 0, STR_GAME_OPTIONS_CURRENCY_MXN    }, ///< Mexican peso
 
	{   40, "", CF_NOEURO, "NTD" NBSP,     "",               "NTD", 0, STR_GAME_OPTIONS_CURRENCY_NTD    }, ///< new taiwan dollar
 
	{    8, "", CF_NOEURO, u8"\u00a5",     "",               "CNY", 0, STR_GAME_OPTIONS_CURRENCY_CNY    }, ///< chinese renminbi
 
	{   10, "", CF_NOEURO, "HKD" NBSP,     "",               "HKD", 0, STR_GAME_OPTIONS_CURRENCY_HKD    }, ///< hong kong dollar
 
	{   90, "", CF_NOEURO, u8"\u20b9",     "",               "INR", 0, STR_GAME_OPTIONS_CURRENCY_INR    }, ///< Indian Rupee
 
	{   19, "", CF_NOEURO, "Rp",           "",               "IDR", 0, STR_GAME_OPTIONS_CURRENCY_IDR    }, ///< Indonesian Rupiah
 
	{    5, "", CF_NOEURO, "RM",           "",               "MYR", 0, STR_GAME_OPTIONS_CURRENCY_MYR    }, ///< Malaysian Ringgit
 
	{    1, "", 2014,      "",             NBSP "Ls",        "LVL", 1, STR_GAME_OPTIONS_CURRENCY_LVL    }, ///< latvian lats
 
	{    1, "", CF_NOEURO, "\u00a3",   "",             "GBP", 0, STR_GAME_OPTIONS_CURRENCY_GBP    }, ///< british pound
 
	{    2, "", CF_NOEURO, "$",        "",             "USD", 0, STR_GAME_OPTIONS_CURRENCY_USD    }, ///< american dollar
 
	{    2, "", CF_ISEURO, "\u20ac",   "",             "EUR", 0, STR_GAME_OPTIONS_CURRENCY_EUR    }, ///< euro
 
	{  220, "", CF_NOEURO, "\u00a5",   "",             "JPY", 0, STR_GAME_OPTIONS_CURRENCY_JPY    }, ///< japanese yen
 
	{   27, "", 2002,      "",         NBSP "S.",      "ATS", 1, STR_GAME_OPTIONS_CURRENCY_ATS    }, ///< austrian schilling
 
	{   81, "", 2002,      "BEF" NBSP, "",             "BEF", 0, STR_GAME_OPTIONS_CURRENCY_BEF    }, ///< belgian franc
 
	{    2, "", CF_NOEURO, "CHF" NBSP, "",             "CHF", 0, STR_GAME_OPTIONS_CURRENCY_CHF    }, ///< swiss franc
 
	{   41, "", CF_NOEURO, "",         NBSP "K\u010d", "CZK", 1, STR_GAME_OPTIONS_CURRENCY_CZK    }, ///< czech koruna
 
	{    4, "", 2002,      "DM" NBSP,  "",             "DEM", 0, STR_GAME_OPTIONS_CURRENCY_DEM    }, ///< deutsche mark
 
	{   11, "", CF_NOEURO, "",         NBSP "kr",      "DKK", 1, STR_GAME_OPTIONS_CURRENCY_DKK    }, ///< danish krone
 
	{  333, "", 2002,      "Pts" NBSP, "",             "ESP", 0, STR_GAME_OPTIONS_CURRENCY_ESP    }, ///< spanish peseta
 
	{   12, "", 2002,      "",         NBSP "mk",      "FIM", 1, STR_GAME_OPTIONS_CURRENCY_FIM    }, ///< finnish markka
 
	{   13, "", 2002,      "FF" NBSP,  "",             "FRF", 0, STR_GAME_OPTIONS_CURRENCY_FRF    }, ///< french franc
 
	{  681, "", 2002,      "",         "Dr.",          "GRD", 1, STR_GAME_OPTIONS_CURRENCY_GRD    }, ///< greek drachma
 
	{  378, "", CF_NOEURO, "",         NBSP "Ft",      "HUF", 1, STR_GAME_OPTIONS_CURRENCY_HUF    }, ///< hungarian forint
 
	{  130, "", CF_NOEURO, "",         NBSP "Kr",      "ISK", 1, STR_GAME_OPTIONS_CURRENCY_ISK    }, ///< icelandic krona
 
	{ 3873, "", 2002,      "",         NBSP "L.",      "ITL", 1, STR_GAME_OPTIONS_CURRENCY_ITL    }, ///< italian lira
 
	{    4, "", 2002,      "NLG" NBSP, "",             "NLG", 0, STR_GAME_OPTIONS_CURRENCY_NLG    }, ///< dutch gulden
 
	{   12, "", CF_NOEURO, "",         NBSP "Kr",      "NOK", 1, STR_GAME_OPTIONS_CURRENCY_NOK    }, ///< norwegian krone
 
	{    6, "", CF_NOEURO, "",         NBSP "z\u0142", "PLN", 1, STR_GAME_OPTIONS_CURRENCY_PLN    }, ///< polish zloty
 
	{    5, "", CF_NOEURO, "",         NBSP "Lei",     "RON", 1, STR_GAME_OPTIONS_CURRENCY_RON    }, ///< romanian leu
 
	{   50, "", CF_NOEURO, "",         NBSP "p",       "RUR", 1, STR_GAME_OPTIONS_CURRENCY_RUR    }, ///< russian rouble
 
	{  479, "", 2007,      "",         NBSP "SIT",     "SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT    }, ///< slovenian tolar
 
	{   13, "", CF_NOEURO, "",         NBSP "Kr",      "SEK", 1, STR_GAME_OPTIONS_CURRENCY_SEK    }, ///< swedish krona
 
	{    3, "", CF_NOEURO, "",         NBSP "TL",      "TRY", 1, STR_GAME_OPTIONS_CURRENCY_TRY    }, ///< turkish lira
 
	{   60, "", 2009,      "",         NBSP "Sk",      "SKK", 1, STR_GAME_OPTIONS_CURRENCY_SKK    }, ///< slovak koruna
 
	{    4, "", CF_NOEURO, "R$" NBSP,  "",             "BRL", 0, STR_GAME_OPTIONS_CURRENCY_BRL    }, ///< brazil real
 
	{   31, "", 2011,      "",         NBSP "EEK",     "EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK    }, ///< estonian krooni
 
	{    4, "", 2015,      "",         NBSP "Lt",      "LTL", 1, STR_GAME_OPTIONS_CURRENCY_LTL    }, ///< lithuanian litas
 
	{ 1850, "", CF_NOEURO, "\u20a9",   "",             "KRW", 0, STR_GAME_OPTIONS_CURRENCY_KRW    }, ///< south korean won
 
	{   13, "", CF_NOEURO, "R" NBSP,   "",             "ZAR", 0, STR_GAME_OPTIONS_CURRENCY_ZAR    }, ///< south african rand
 
	{    1, "", CF_NOEURO, "",         "",             "",    2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency (add further languages below)
 
	{    3, "", CF_NOEURO, "",         NBSP "GEL",     "GEL", 1, STR_GAME_OPTIONS_CURRENCY_GEL    }, ///< Georgian Lari
 
	{ 4901, "", CF_NOEURO, "",         NBSP "Rls",     "IRR", 1, STR_GAME_OPTIONS_CURRENCY_IRR    }, ///< Iranian Rial
 
	{   80, "", CF_NOEURO, "",         NBSP "rub",     "RUB", 1, STR_GAME_OPTIONS_CURRENCY_RUB    }, ///< New Russian Ruble
 
	{   24, "", CF_NOEURO, "$",        "",             "MXN", 0, STR_GAME_OPTIONS_CURRENCY_MXN    }, ///< Mexican peso
 
	{   40, "", CF_NOEURO, "NTD" NBSP, "",             "NTD", 0, STR_GAME_OPTIONS_CURRENCY_NTD    }, ///< new taiwan dollar
 
	{    8, "", CF_NOEURO, "\u00a5",   "",             "CNY", 0, STR_GAME_OPTIONS_CURRENCY_CNY    }, ///< chinese renminbi
 
	{   10, "", CF_NOEURO, "HKD" NBSP, "",             "HKD", 0, STR_GAME_OPTIONS_CURRENCY_HKD    }, ///< hong kong dollar
 
	{   90, "", CF_NOEURO, "\u20b9",   "",             "INR", 0, STR_GAME_OPTIONS_CURRENCY_INR    }, ///< Indian Rupee
 
	{   19, "", CF_NOEURO, "Rp",       "",             "IDR", 0, STR_GAME_OPTIONS_CURRENCY_IDR    }, ///< Indonesian Rupiah
 
	{    5, "", CF_NOEURO, "RM",       "",             "MYR", 0, STR_GAME_OPTIONS_CURRENCY_MYR    }, ///< Malaysian Ringgit
 
	{    1, "", 2014,      "",         NBSP "Ls",      "LVL", 1, STR_GAME_OPTIONS_CURRENCY_LVL    }, ///< latvian lats
 
};
 

	
 
/** Array of currencies used by the system */
 
CurrencySpec _currency_specs[CURRENCY_END];
 

	
 
/**
src/misc_gui.cpp
Show inline comments
 
@@ -398,75 +398,75 @@ static WindowDesc _about_desc(__FILE__, 
 
	WC_GAME_OPTIONS, WC_NONE,
 
	0,
 
	std::begin(_nested_about_widgets), std::end(_nested_about_widgets)
 
);
 

	
 
static const char * const _credits[] = {
 
	u8"Original design by Chris Sawyer",
 
	u8"Original graphics by Simon Foster",
 
	u8"",
 
	u8"The OpenTTD team (in alphabetical order):",
 
	u8"  Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)",
 
	u8"  Christoph Elsenhans (frosch) - General coding (since 0.6)",
 
	u8"  Lo\u00efc Guilloux (glx) - General / Windows Expert (since 0.4.5)",
 
	u8"  Charles Pigott (LordAro) - General / Correctness police (since 1.9)",
 
	u8"  Michael Lutz (michi_cc) - Path based signals (since 0.7)",
 
	u8"  Niels Martin Hansen (nielsm) - Music system, general coding (since 1.9)",
 
	u8"  Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)",
 
	u8"  Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods (since 0.4.5)",
 
	u8"  Remko Bijker (Rubidium) - Coder and way more (since 0.4.5)",
 
	u8"  Patric Stout (TrueBrain) - NoProgrammer (since 0.3), sys op",
 
	u8"  Tyler Trahan (2TallTyler) - General coding (since 13)",
 
	u8"",
 
	u8"Inactive Developers:",
 
	u8"  Grzegorz Duczy\u0144ski (adf88) - General coding (1.7 - 1.8)",
 
	u8"  Albert Hofkamp (Alberth) - GUI expert (0.7 - 1.9)",
 
	u8"  Jean-Fran\u00e7ois Claeys (Belugas) - GUI, NewGRF and more (0.4.5 - 1.0)",
 
	u8"  Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)",
 
	u8"  Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)",
 
	u8"  Ulf Hermann (fonsinchen) - Cargo Distribution (1.3 - 1.6)",
 
	u8"  Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)",
 
	u8"  Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)",
 
	u8"  Attila B\u00e1n (MiHaMiX) - Developer WebTranslator 1 and 2 (0.3 - 0.5)",
 
	u8"  Ingo von Borstel (planetmaker) - General coding, Support (1.1 - 1.9)",
 
	u8"  Zden\u011bk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)",
 
	u8"  Jos\u00e9 Soler (Terkhen) - General coding (1.0 - 1.4)",
 
	u8"  Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)",
 
	u8"  Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)",
 
	u8"  Leif Linse (Zuu) - AI/Game Script (1.2 - 1.6)",
 
	u8"",
 
	u8"Retired Developers:",
 
	u8"  Tam\u00e1s Farag\u00f3 (Darkvater) - Ex-Lead coder (0.3 - 0.5)",
 
	u8"  Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)",
 
	u8"  Emil Djupfeld (egladil) - MacOSX (0.4.5 - 0.6)",
 
	u8"  Simon Sasburg (HackyKid) - Many bugfixes (0.4 - 0.4.5)",
 
	u8"  Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)",
 
	u8"  Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)",
 
	u8"  Petr Baudi\u0161 (pasky) - Many patches, NewGRF support (0.3 - 0.3)",
 
	u8"  Benedikt Br\u00fcggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)",
 
	u8"  Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)",
 
	u8"",
 
	u8"Special thanks go out to:",
 
	u8"  Josef Drexler - For his great work on TTDPatch",
 
	u8"  Marcin Grzegorczyk - Track foundations and for describing TTD internals",
 
	u8"  Stefan Mei\u00dfner (sign_de) - For his work on the console",
 
	u8"  Mike Ragsdale - OpenTTD installer",
 
	u8"  Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
 
	u8"  Richard Kempton (richK) - additional airports, initial TGP implementation",
 
	u8"  Alberto Demichelis - Squirrel scripting language \u00a9 2003-2008",
 
	u8"  L. Peter Deutsch - MD5 implementation \u00a9 1999, 2000, 2002",
 
	u8"  Michael Blunck - Pre-signals and semaphores \u00a9 2003",
 
	u8"  George - Canal/Lock graphics \u00a9 2003-2004",
 
	u8"  Andrew Parkhouse (andythenorth) - River graphics",
 
	u8"  David Dallaston (Pikka) - Tram tracks",
 
	u8"  All Translators - Who made OpenTTD a truly international game",
 
	u8"  Bug Reporters - Without whom OpenTTD would still be full of bugs!",
 
	u8"",
 
	u8"",
 
	u8"And last but not least:",
 
	u8"  Chris Sawyer - For an amazing game!"
 
	"Original design by Chris Sawyer",
 
	"Original graphics by Simon Foster",
 
	"",
 
	"The OpenTTD team (in alphabetical order):",
 
	"  Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)",
 
	"  Christoph Elsenhans (frosch) - General coding (since 0.6)",
 
	"  Lo\u00efc Guilloux (glx) - General / Windows Expert (since 0.4.5)",
 
	"  Charles Pigott (LordAro) - General / Correctness police (since 1.9)",
 
	"  Michael Lutz (michi_cc) - Path based signals (since 0.7)",
 
	"  Niels Martin Hansen (nielsm) - Music system, general coding (since 1.9)",
 
	"  Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)",
 
	"  Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods (since 0.4.5)",
 
	"  Remko Bijker (Rubidium) - Coder and way more (since 0.4.5)",
 
	"  Patric Stout (TrueBrain) - NoProgrammer (since 0.3), sys op",
 
	"  Tyler Trahan (2TallTyler) - General coding (since 13)",
 
	"",
 
	"Inactive Developers:",
 
	"  Grzegorz Duczy\u0144ski (adf88) - General coding (1.7 - 1.8)",
 
	"  Albert Hofkamp (Alberth) - GUI expert (0.7 - 1.9)",
 
	"  Jean-Fran\u00e7ois Claeys (Belugas) - GUI, NewGRF and more (0.4.5 - 1.0)",
 
	"  Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)",
 
	"  Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)",
 
	"  Ulf Hermann (fonsinchen) - Cargo Distribution (1.3 - 1.6)",
 
	"  Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)",
 
	"  Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)",
 
	"  Attila B\u00e1n (MiHaMiX) - Developer WebTranslator 1 and 2 (0.3 - 0.5)",
 
	"  Ingo von Borstel (planetmaker) - General coding, Support (1.1 - 1.9)",
 
	"  Zden\u011bk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)",
 
	"  Jos\u00e9 Soler (Terkhen) - General coding (1.0 - 1.4)",
 
	"  Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)",
 
	"  Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)",
 
	"  Leif Linse (Zuu) - AI/Game Script (1.2 - 1.6)",
 
	"",
 
	"Retired Developers:",
 
	"  Tam\u00e1s Farag\u00f3 (Darkvater) - Ex-Lead coder (0.3 - 0.5)",
 
	"  Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)",
 
	"  Emil Djupfeld (egladil) - MacOSX (0.4.5 - 0.6)",
 
	"  Simon Sasburg (HackyKid) - Many bugfixes (0.4 - 0.4.5)",
 
	"  Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)",
 
	"  Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)",
 
	"  Petr Baudi\u0161 (pasky) - Many patches, NewGRF support (0.3 - 0.3)",
 
	"  Benedikt Br\u00fcggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)",
 
	"  Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)",
 
	"",
 
	"Special thanks go out to:",
 
	"  Josef Drexler - For his great work on TTDPatch",
 
	"  Marcin Grzegorczyk - Track foundations and for describing TTD internals",
 
	"  Stefan Mei\u00dfner (sign_de) - For his work on the console",
 
	"  Mike Ragsdale - OpenTTD installer",
 
	"  Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
 
	"  Richard Kempton (richK) - additional airports, initial TGP implementation",
 
	"  Alberto Demichelis - Squirrel scripting language \u00a9 2003-2008",
 
	"  L. Peter Deutsch - MD5 implementation \u00a9 1999, 2000, 2002",
 
	"  Michael Blunck - Pre-signals and semaphores \u00a9 2003",
 
	"  George - Canal/Lock graphics \u00a9 2003-2004",
 
	"  Andrew Parkhouse (andythenorth) - River graphics",
 
	"  David Dallaston (Pikka) - Tram tracks",
 
	"  All Translators - Who made OpenTTD a truly international game",
 
	"  Bug Reporters - Without whom OpenTTD would still be full of bugs!",
 
	"",
 
	"",
 
	"And last but not least:",
 
	"  Chris Sawyer - For an amazing game!"
 
};
 

	
 
struct AboutWindow : public Window {
 
	int text_position;                       ///< The top of the scrolling text
 
	int line_height;                         ///< The height of a single line
 
	static const int num_visible_lines = 19; ///< The number of lines visible simultaneously
src/string_type.h
Show inline comments
 
@@ -10,16 +10,16 @@
 
#ifndef STRING_TYPE_H
 
#define STRING_TYPE_H
 

	
 
#include "core/enum_type.hpp"
 

	
 
/** A non-breaking space. */
 
#define NBSP u8"\u00a0"
 
#define NBSP "\u00a0"
 

	
 
/** A left-to-right marker, marks the next character as left-to-right. */
 
#define LRM u8"\u200e"
 
#define LRM "\u200e"
 

	
 
/**
 
 * Valid filter types for IsValidChar.
 
 */
 
enum CharSetFilter {
 
	CS_ALPHANUMERAL,      ///< Both numeric and alphabetic and spaces and stuff
src/table/townname.h
Show inline comments
 
@@ -307,13 +307,13 @@ static const char * const _name_austrian
 
};
 

	
 
static const char * const _name_austrian_a2[] = {
 
	"Aus",
 
	"Alten",
 
	"Braun",
 
	u8"V\u00f6sl",
 
	"V\u00f6sl",
 
	"Mittern",
 
	"Nuss",
 
	"Neu",
 
	"Walters",
 
	"Breiten",
 
	"Eisen",
 
@@ -329,27 +329,27 @@ static const char * const _name_austrian
 
	"Eber",
 
	"Eggen",
 
	"Enzers",
 
	"Frauen",
 
	"Herren",
 
	"Hof",
 
	u8"H\u00fctt",
 
	"H\u00fctt",
 
	"Kaisers",
 
	u8"K\u00f6nigs",
 
	"K\u00f6nigs",
 
	"Knittel",
 
	"Lang",
 
	"Ober",
 
	"Ollers",
 
	"Pfaffen",
 
	"Potten",
 
	"Salz",
 
	"Schwarz",
 
	"Stocker",
 
	"Unter",
 
	"Utten",
 
	u8"V\u00f6sen",
 
	"V\u00f6sen",
 
	"Vill",
 
	"Weissen",
 
};
 

	
 
static const char * const _name_austrian_a3[] = {
 
	"see",
 
@@ -389,26 +389,26 @@ static const char * const _name_austrian
 
	"St. ",
 
	"Sankt ",
 
};
 

	
 
static const char * const _name_austrian_a6[] = {
 
	"Aegyd",
 
	u8"Andr\u00e4",
 
	"Andr\u00e4",
 
	"Georgen",
 
	"Jakob",
 
	"Johann",
 
	"Leonhard",
 
	"Marein",
 
	"Lorenzen",
 
	"Margarethen",
 
	"Martin",
 
	"Michael",
 
	"Nikolai",
 
	"Oswald",
 
	"Peter",
 
	u8"P\u00f6lten",
 
	"P\u00f6lten",
 
	"Stefan",
 
	"Stephan",
 
	"Thomas",
 
	"Veit",
 
	"Wolfgang",
 
};
 
@@ -463,16 +463,16 @@ static const char * const _name_german_r
 
	"Erlangen",
 
	"Essen",
 
	"Fulda",
 
	"Gera",
 
	"Kassel",
 
	"Kiel",
 
	u8"K\u00f6ln",
 
	u8"L\u00fcbeck",
 
	"K\u00f6ln",
 
	"L\u00fcbeck",
 
	"Magdeburg",
 
	u8"M\u00fcnchen",
 
	"M\u00fcnchen",
 
	"Potsdam",
 
	"Stuttgart",
 
	"Wiesbaden",
 
};
 

	
 
static const char * const _name_german_pre[] = {
 
@@ -489,13 +489,13 @@ static const char * const _name_german_1
 
	"Bruns",
 
	"Bam",
 
	"Biele",
 
	"Cloppen",
 
	"Co",
 
	"Duis",
 
	u8"D\u00fcssel",
 
	"D\u00fcssel",
 
	"Dannen",
 
	"Elb",
 
	"Els",
 
	"Elster",
 
	"Eichen",
 
	"Ems",
 
@@ -503,13 +503,13 @@ static const char * const _name_german_1
 
	"Falken",
 
	"Flens",
 
	"Frank",
 
	"Frei",
 
	"Freuden",
 
	"Fried",
 
	u8"F\u00fcrsten",
 
	"F\u00fcrsten",
 
	"Hahn",
 
	"Ham",
 
	"Harz",
 
	"Heidel",
 
	"Hers",
 
	"Herz",
 
@@ -524,24 +524,24 @@ static const char * const _name_german_1
 
	"Kor",
 
	"Kreuz",
 
	"Kulm",
 
	"Langen",
 
	"Lim",
 
	"Lohr",
 
	u8"L\u00fcne",
 
	"L\u00fcne",
 
	"Mel",
 
	"Michels",
 
	u8"M\u00fchl",
 
	"M\u00fchl",
 
	"Naum",
 
	"Nest",
 
	"Nord",
 
	"Nort",
 
	"Nien",
 
	"Nidda",
 
	"Nieder",
 
	u8"N\u00fcrn",
 
	"N\u00fcrn",
 
	"Ober",
 
	"Offen",
 
	"Osna",
 
	"Olden",
 
	"Ols",
 
	"Oranien",
 
@@ -549,52 +549,52 @@ static const char * const _name_german_1
 
	"Quedlin",
 
	"Quer",
 
	"Ravens",
 
	"Regens",
 
	"Rott",
 
	"Ros",
 
	u8"R\u00fcssels",
 
	"R\u00fcssels",
 
	"Saal",
 
	"Saar",
 
	"Salz",
 
	u8"Sch\u00f6ne",
 
	"Sch\u00f6ne",
 
	"Schwein",
 
	"Sonder",
 
	"Sonnen",
 
	"Stein",
 
	"Strals",
 
	"Straus",
 
	u8"S\u00fcd",
 
	"S\u00fcd",
 
	"Ton",
 
	"Unter",
 
	"Ur",
 
	"Vor",
 
	"Wald",
 
	"War",
 
	"Wert",
 
	"Wester",
 
	"Witten",
 
	"Wolfs",
 
	u8"W\u00fcrz",
 
	"W\u00fcrz",
 
};
 

	
 
static const char * const _name_german_2[] = {
 
	"bach",
 
	"berg",
 
	u8"br\u00fcck",
 
	u8"br\u00fccken",
 
	"br\u00fcck",
 
	"br\u00fccken",
 
	"burg",
 
	"dorf",
 
	"feld",
 
	"furt",
 
	"hausen",
 
	"haven",
 
	"heim",
 
	"horst",
 
	"mund",
 
	u8"m\u00fcnster",
 
	"m\u00fcnster",
 
	"stadt",
 
	"wald",
 
};
 

	
 
static const char * const _name_german_3_an_der[] = {
 
	" an der ",
 
@@ -622,75 +622,75 @@ static const char * const _name_spanish_
 
	"Maracaibo",
 
	"Valencia",
 
	"El Dorado",
 
	"Morrocoy",
 
	"Cata",
 
	"Cataito",
 
	u8"Ciudad Bol\u00edvar",
 
	"Ciudad Bol\u00edvar",
 
	"Barquisimeto",
 
	u8"M\u00e9rida",
 
	"M\u00e9rida",
 
	"Puerto Ordaz",
 
	"Santa Elena",
 
	"San Juan",
 
	"San Luis",
 
	"San Rafael",
 
	"Santiago",
 
	"Barcelona",
 
	"Barinas",
 
	u8"San Crist\u00f3bal",
 
	"San Crist\u00f3bal",
 
	"San Francisco",
 
	u8"San Mart\u00edn",
 
	"San Mart\u00edn",
 
	"Guayana",
 
	"San Carlos",
 
	u8"El Lim\u00f3n",
 
	"El Lim\u00f3n",
 
	"Coro",
 
	"Coro Coro",
 
	"Puerto Ayacucho",
 
	"Elorza",
 
	"Arismendi",
 
	"Trujillo",
 
	u8"Car\u00fapano",
 
	"Car\u00fapano",
 
	"Anaco",
 
	"Lima",
 
	"Cuzco",
 
	"Iquitos",
 
	"Callao",
 
	"Huacho",
 
	u8"Caman\u00e1",
 
	"Caman\u00e1",
 
	"Puerto Chala",
 
	"Santa Cruz",
 
	"Quito",
 
	"Cuenca",
 
	u8"Medell\u00edn",
 
	u8"Tulc\u00e1n",
 
	"Medell\u00edn",
 
	"Tulc\u00e1n",
 
	"Esmeraldas",
 
	"Ibarra",
 
	"San Lorenzo",
 
	"Macas",
 
	u8"Mora\u00f1a",
 
	"Mora\u00f1a",
 
	"Machala",
 
	"Zamora",
 
	"Latacunga",
 
	"Tena",
 
	"Cochabamba",
 
	u8"Ascensi\u00f3n",
 
	"Ascensi\u00f3n",
 
	"Magdalena",
 
	"Santa Ana",
 
	"Manoa",
 
	"Sucre",
 
	"Oruro",
 
	"Uyuni",
 
	u8"Potos\u00ed",
 
	"Potos\u00ed",
 
	"Tupiza",
 
	"La Quiaca",
 
	u8"Yacu\u00edba",
 
	"Yacu\u00edba",
 
	"San Borja",
 
	"Fuerte Olimpo",
 
	u8"Fort\u00edn Esteros",
 
	"Fort\u00edn Esteros",
 
	"Campo Grande",
 
	u8"Bogot\u00e1",
 
	"Bogot\u00e1",
 
	"El Banco",
 
	"Zaragoza",
 
	"Neiva",
 
	"Mariano",
 
	"Cali",
 
	"La Palma",
 
@@ -712,55 +712,55 @@ static const char * const _name_french_r
 
	"Aubusson",
 
	"Rodez",
 
	"Bergerac",
 
	"Bordeaux",
 
	"Bayonne",
 
	"Montpellier",
 
	u8"Mont\u00e9limar",
 
	"Mont\u00e9limar",
 
	"Valence",
 
	"Digne",
 
	"Nice",
 
	"Cannes",
 
	"St. Tropez",
 
	"Marseille",
 
	"Narbonne",
 
	u8"S\u00e8te",
 
	"S\u00e8te",
 
	"Aurillac",
 
	u8"Gu\u00e9ret",
 
	"Gu\u00e9ret",
 
	"Le Creusot",
 
	"Nevers",
 
	"Auxerre",
 
	"Versailles",
 
	"Meaux",
 
	u8"Ch\u00e2lons",
 
	u8"Compi\u00e8gne",
 
	"Ch\u00e2lons",
 
	"Compi\u00e8gne",
 
	"Metz",
 
	"Chaumont",
 
	"Langres",
 
	"Bourg",
 
	"Lyon",
 
	"Vienne",
 
	"Grenoble",
 
	"Toulon",
 
	"Rennes",
 
	"Le Mans",
 
	"Angers",
 
	"Nantes",
 
	u8"Ch\u00e2teauroux",
 
	u8"Orl\u00e9ans",
 
	"Ch\u00e2teauroux",
 
	"Orl\u00e9ans",
 
	"Lisieux",
 
	"Cherbourg",
 
	"Morlaix",
 
	"Cognac",
 
	"Agen",
 
	"Tulle",
 
	"Blois",
 
	"Troyes",
 
	"Charolles",
 
	"Toulouse",
 
	u8"Chamb\u00e9ry",
 
	"Chamb\u00e9ry",
 
	"Tours",
 
	"St. Brieuc",
 
	"St. Malo",
 
	"La Rochelle",
 
	"St. Flour",
 
	"Le Puy",
 
@@ -768,17 +768,17 @@ static const char * const _name_french_r
 
	"St. Valery",
 
	"Beaujolais",
 
	"Reims",
 
	"Albi",
 
	"Paris",
 
	"Biarritz",
 
	u8"B\u00e9ziers",
 
	u8"N\u00eemes",
 
	"B\u00e9ziers",
 
	"N\u00eemes",
 
	"Chamonix",
 
	u8"Angoul\u00e8me",
 
	u8"Alen\u00e7on",
 
	"Angoul\u00e8me",
 
	"Alen\u00e7on",
 
};
 

	
 
static const char * const _name_silly_1[] = {
 
	"Binky",
 
	"Blubber",
 
	"Bumble",
 
@@ -900,13 +900,13 @@ static const char * const _name_swedish_
 
	"Ed",
 
	"En",
 
	"Erik",
 
	"Es",
 
	"Fin",
 
	"Fisk",
 
	u8"Gr\u00f6n",
 
	"Gr\u00f6n",
 
	"Hag",
 
	"Halm",
 
	"Karl",
 
	"Kram",
 
	"Kung",
 
	"Land",
 
@@ -919,23 +919,23 @@ static const char * const _name_swedish_
 
	"Norr",
 
	"Oskar",
 
	"Sand",
 
	"Skog",
 
	"Stock",
 
	"Stor",
 
	u8"Str\u00f6m",
 
	"Str\u00f6m",
 
	"Sund",
 
	u8"S\u00f6der",
 
	"S\u00f6der",
 
	"Tall",
 
	"Tratt",
 
	"Troll",
 
	"Upp",
 
	"Var",
 
	u8"V\u00e4ster",
 
	u8"\u00c4ngel",
 
	u8"\u00d6ster",
 
	"V\u00e4ster",
 
	"\u00c4ngel",
 
	"\u00d6ster",
 
};
 

	
 
static const char * const _name_swedish_2a[] = {
 
	"B",
 
	"Br",
 
	"D",
 
@@ -984,15 +984,15 @@ static const char * const _name_swedish_
 
	"a",
 
	"e",
 
	"i",
 
	"o",
 
	"u",
 
	"y",
 
	u8"\u00e5",
 
	u8"\u00e4",
 
	u8"\u00f6",
 
	"\u00e5",
 
	"\u00e4",
 
	"\u00f6",
 
};
 

	
 
static const char * const _name_swedish_2c[] = {
 
	"ck",
 
	"d",
 
	"dd",
 
@@ -1032,31 +1032,31 @@ static const char * const _name_swedish_
 
	"byn",
 
	"fors",
 
	"hammar",
 
	"hamn",
 
	"holm",
 
	"hus",
 
	u8"h\u00e4ttan",
 
	"h\u00e4ttan",
 
	"kulle",
 
	u8"k\u00f6ping",
 
	"k\u00f6ping",
 
	"lund",
 
	u8"l\u00f6v",
 
	"l\u00f6v",
 
	"sala",
 
	"skrona",
 
	u8"sl\u00e4tt",
 
	u8"sp\u00e5ng",
 
	"sl\u00e4tt",
 
	"sp\u00e5ng",
 
	"stad",
 
	"sund",
 
	"svall",
 
	"svik",
 
	u8"s\u00e5ker",
 
	"s\u00e5ker",
 
	"udde",
 
	"valla",
 
	"viken",
 
	u8"\u00e4lv",
 
	u8"\u00e5s",
 
	"\u00e4lv",
 
	"\u00e5s",
 
};
 

	
 
static const char * const _name_dutch_1[] = {
 
	"Nieuw ",
 
	"Oud ",
 
	"Groot ",
 
@@ -1217,13 +1217,13 @@ static const char * const _name_dutch_5[
 
static const char * const _name_finnish_real[] = {
 
	"Aijala",
 
	"Kisko",
 
	"Espoo",
 
	"Helsinki",
 
	"Tapiola",
 
	u8"J\u00e4rvel\u00e4",
 
	"J\u00e4rvel\u00e4",
 
	"Lahti",
 
	"Kotka",
 
	"Hamina",
 
	"Loviisa",
 
	"Kouvola",
 
	"Tampere",
 
@@ -1252,183 +1252,183 @@ static const char * const _name_finnish_
 
	"Hiekka",
 
	"Haapa",
 
	"Mylly",
 
	"Sauna",
 
	"Uusi",
 
	"Vanha",
 
	u8"Kes\u00e4",
 
	"Kes\u00e4",
 
	"Kuusi",
 
	"Pelto",
 
	"Tuomi",
 
	"Terva",
 
	"Olki",
 
	u8"Hein\u00e4",
 
	u8"Sein\u00e4",
 
	"Hein\u00e4",
 
	"Sein\u00e4",
 
	"Rova",
 
	"Koivu",
 
	"Kokko",
 
	u8"M\u00e4nty",
 
	"M\u00e4nty",
 
	"Pihlaja",
 
	u8"Pet\u00e4j\u00e4",
 
	"Pet\u00e4j\u00e4",
 
	"Kielo",
 
	"Kauha",
 
	"Viita",
 
	"Kivi",
 
	"Riihi",
 
	u8"\u00c4\u00e4ne",
 
	"\u00c4\u00e4ne",
 
	"Niini",
 
};
 

	
 
static const char * const _name_finnish_2[] = {
 
	"Lappeen",
 
	"Lohjan",
 
	"Savon",
 
	"Lapin",
 
	u8"Pit\u00e4j\u00e4n",
 
	"Pit\u00e4j\u00e4n",
 
	"Martin",
 
	"Kuusan",
 
	"Kemi",
 
	"Keri",
 
	u8"H\u00e4meen",
 
	"H\u00e4meen",
 
	"Kangas",
 
};
 

	
 
static const char * const _name_finnish_3[] = {
 
	"harju",
 
	"linna",
 
	u8"j\u00e4rvi",
 
	"j\u00e4rvi",
 
	"kallio",
 
	u8"m\u00e4ki",
 
	"m\u00e4ki",
 
	"nummi",
 
	"joki",
 
	u8"kyl\u00e4",
 
	"kyl\u00e4",
 
	"lampi",
 
	"lahti",
 
	u8"mets\u00e4",
 
	"mets\u00e4",
 
	"suo",
 
	"laakso",
 
	"niitty",
 
	"luoto",
 
	"hovi",
 
	"ranta",
 
	"koski",
 
	"salo",
 
};
 

	
 
static const char * const _name_polish_1_m[] = {
 
	"Wielki ",
 
	u8"Ma\u0142y ",
 
	u8"Z\u0142y ",
 
	"Ma\u0142y ",
 
	"Z\u0142y ",
 
	"Dobry ",
 
	"Nowy ",
 
	"Stary ",
 
	u8"Z\u0142oty ",
 
	"Z\u0142oty ",
 
	"Zielony ",
 
	u8"Bia\u0142y ",
 
	"Bia\u0142y ",
 
	"Modry ",
 
	u8"D\u0119bowy ",
 
	"D\u0119bowy ",
 
};
 

	
 
static const char * const _name_polish_1_f[] = {
 
	"Wielka ",
 
	u8"Ma\u0142a ",
 
	u8"Z\u0142a ",
 
	"Ma\u0142a ",
 
	"Z\u0142a ",
 
	"Dobra ",
 
	"Nowa ",
 
	"Stara ",
 
	u8"Z\u0142ota ",
 
	"Z\u0142ota ",
 
	"Zielona ",
 
	u8"Bia\u0142a ",
 
	"Bia\u0142a ",
 
	"Modra ",
 
	u8"D\u0119bowa ",
 
	"D\u0119bowa ",
 
};
 

	
 
static const char * const _name_polish_1_n[] = {
 
	"Wielkie ",
 
	u8"Ma\u0142e ",
 
	u8"Z\u0142e ",
 
	"Ma\u0142e ",
 
	"Z\u0142e ",
 
	"Dobre ",
 
	"Nowe ",
 
	"Stare ",
 
	u8"Z\u0142ote ",
 
	"Z\u0142ote ",
 
	"Zielone ",
 
	u8"Bia\u0142e ",
 
	"Bia\u0142e ",
 
	"Modre ",
 
	u8"D\u0119bowe ",
 
	"D\u0119bowe ",
 
};
 

	
 
static const char * const _name_polish_2_o[] = {
 
	"Frombork",
 
	"Gniezno",
 
	"Olsztyn",
 
	u8"Toru\u0144",
 
	"Toru\u0144",
 
	"Bydgoszcz",
 
	"Terespol",
 
	u8"Krak\u00f3w",
 
	u8"Pozna\u0144",
 
	u8"Wroc\u0142aw",
 
	"Krak\u00f3w",
 
	"Pozna\u0144",
 
	"Wroc\u0142aw",
 
	"Katowice",
 
	"Cieszyn",
 
	"Bytom",
 
	"Frombork",
 
	"Hel",
 
	"Konin",
 
	"Lublin",
 
	"Malbork",
 
	"Sopot",
 
	"Sosnowiec",
 
	u8"Gda\u0144sk",
 
	"Gda\u0144sk",
 
	"Gdynia",
 
	"Sieradz",
 
	"Sandomierz",
 
	"Szczyrk",
 
	"Szczytno",
 
	"Szczecin",
 
	"Zakopane",
 
	u8"Szklarska Por\u0119ba",
 
	"Szklarska Por\u0119ba",
 
	"Bochnia",
 
	u8"Golub-Dobrzy\u0144",
 
	"Golub-Dobrzy\u0144",
 
	"Chojnice",
 
	"Ostrowiec",
 
	"Otwock",
 
	"Wolsztyn",
 
};
 

	
 
static const char * const _name_polish_2_m[] = {
 
	"Jarocin",
 
	"Gogolin",
 
	u8"Tomasz\u00f3w",
 
	u8"Piotrk\u00f3w",
 
	"Tomasz\u00f3w",
 
	"Piotrk\u00f3w",
 
	"Lidzbark",
 
	"Rypin",
 
	"Radzymin",
 
	u8"Wo\u0142omin",
 
	u8"Pruszk\u00f3w",
 
	"Wo\u0142omin",
 
	"Pruszk\u00f3w",
 
	"Olsztynek",
 
	"Rypin",
 
	"Cisek",
 
	"Krotoszyn",
 
	"Stoczek",
 
	"Lubin",
 
	"Lubicz",
 
	"Milicz",
 
	"Targ",
 
	u8"Ostr\u00f3w",
 
	"Ostr\u00f3w",
 
	"Ozimek",
 
	"Puck",
 
	"Rzepin",
 
	"Siewierz",
 
	"Stargard",
 
	"Starogard",
 
	"Turek",
 
	"Tymbark",
 
	"Wolsztyn",
 
	"Strzepcz",
 
	"Strzebielin",
 
	"Sochaczew",
 
	u8"Gr\u0119bocin",
 
	"Gr\u0119bocin",
 
	"Gniew",
 
	"Lubliniec",
 
	"Lubasz",
 
	"Lutomiersk",
 
	"Niemodlin",
 
	"Przeworsk",
 
@@ -1444,13 +1444,13 @@ static const char * const _name_polish_2
 
	"Garwolin",
 
};
 

	
 
static const char * const _name_polish_2_f[] = {
 
	"Szprotawa",
 
	"Pogorzelica",
 
	u8"Mot\u0142awa",
 
	"Mot\u0142awa",
 
	"Lubawa",
 
	"Nidzica",
 
	"Kruszwica",
 
	"Bierawa",
 
	"Brodnica",
 
	"Chojna",
 
@@ -1498,197 +1498,197 @@ static const char * const _name_polish_2
 
	"Robakowo",
 
	"Kosakowo",
 
	"Borne",
 
	"Braniewo",
 
	"Sulinowo",
 
	"Chmielno",
 
	u8"Jastrz\u0119bie",
 
	"Jastrz\u0119bie",
 
	"Gryfino",
 
	"Koronowo",
 
	"Lubichowo",
 
	"Opoczno",
 
};
 

	
 
static const char * const _name_polish_3_m[] = {
 
	" Wybudowanie",
 
	u8" \u015awi\u0119tokrzyski",
 
	u8" G\u00f3rski",
 
	" \u015awi\u0119tokrzyski",
 
	" G\u00f3rski",
 
	" Morski",
 
	u8" Zdr\u00f3j",
 
	" Zdr\u00f3j",
 
	" Wody",
 
	" Bajoro",
 
	u8" Kraje\u0144ski",
 
	u8" \u015al\u0105ski",
 
	" Kraje\u0144ski",
 
	" \u015al\u0105ski",
 
	" Mazowiecki",
 
	" Pomorski",
 
	" Wielki",
 
	" Maly",
 
	u8" Warmi\u0144ski",
 
	" Warmi\u0144ski",
 
	" Mazurski",
 
	" Mniejszy",
 
	u8" Wi\u0119kszy",
 
	u8" G\u00f3rny",
 
	" Wi\u0119kszy",
 
	" G\u00f3rny",
 
	" Dolny",
 
	" Wielki",
 
	" Stary",
 
	" Nowy",
 
	" Wielkopolski",
 
	u8" Wzg\u00f3rze",
 
	" Wzg\u00f3rze",
 
	" Mosty",
 
	" Kujawski",
 
	u8" Ma\u0142opolski",
 
	" Ma\u0142opolski",
 
	" Podlaski",
 
	" Lesny",
 
};
 

	
 
static const char * const _name_polish_3_f[] = {
 
	" Wybudowanie",
 
	u8" \u015awi\u0119tokrzyska",
 
	u8" G\u00f3rska",
 
	" \u015awi\u0119tokrzyska",
 
	" G\u00f3rska",
 
	" Morska",
 
	u8" Zdr\u00f3j",
 
	" Zdr\u00f3j",
 
	" Woda",
 
	" Bajoro",
 
	u8" Kraje\u0144ska",
 
	u8" \u015al\u0105ska",
 
	" Kraje\u0144ska",
 
	" \u015al\u0105ska",
 
	" Mazowiecka",
 
	" Pomorska",
 
	" Wielka",
 
	u8" Ma\u0142a",
 
	u8" Warmi\u0144ska",
 
	" Ma\u0142a",
 
	" Warmi\u0144ska",
 
	" Mazurska",
 
	" Mniejsza",
 
	u8" Wi\u0119ksza",
 
	u8" G\u00f3rna",
 
	" Wi\u0119ksza",
 
	" G\u00f3rna",
 
	" Dolna",
 
	" Wielka",
 
	" Stara",
 
	" Nowa",
 
	" Wielkopolska",
 
	u8" Wzg\u00f3rza",
 
	" Wzg\u00f3rza",
 
	" Mosty",
 
	" Kujawska",
 
	" Malopolska",
 
	" Podlaska",
 
	u8" Le\u015bna",
 
	" Le\u015bna",
 
};
 

	
 
static const char * const _name_polish_3_n[] = {
 
	" Wybudowanie",
 
	u8" \u015awietokrzyskie",
 
	u8" G\u00f3rskie",
 
	" \u015awietokrzyskie",
 
	" G\u00f3rskie",
 
	" Morskie",
 
	u8" Zdr\u00f3j",
 
	" Zdr\u00f3j",
 
	" Wody",
 
	" Bajoro",
 
	u8" Kraje\u0144skie",
 
	u8" \u015al\u0105skie",
 
	" Kraje\u0144skie",
 
	" \u015al\u0105skie",
 
	" Mazowieckie",
 
	" Pomorskie",
 
	" Wielkie",
 
	u8" Ma\u0142e",
 
	u8" Warmi\u0144skie ",
 
	" Ma\u0142e",
 
	" Warmi\u0144skie ",
 
	" Mazurskie ",
 
	" Mniejsze",
 
	u8" Wi\u0119ksze",
 
	u8" G\u00f3rne",
 
	" Wi\u0119ksze",
 
	" G\u00f3rne",
 
	" Dolne",
 
	" Wielkie",
 
	" Stare",
 
	" Nowe",
 
	" Wielkopolskie",
 
	u8" Wzg\u00f3rze",
 
	" Wzg\u00f3rze",
 
	" Mosty",
 
	" Kujawskie",
 
	u8" Ma\u0142opolskie",
 
	" Ma\u0142opolskie",
 
	" Podlaskie",
 
	u8" Le\u015bne",
 
	" Le\u015bne",
 
};
 

	
 
static const char * const _name_czech_real[] = {
 
	u8"A\u0161",
 
	u8"Bene\u0161ov",
 
	"A\u0161",
 
	"Bene\u0161ov",
 
	"Beroun",
 
	u8"Bezdru\u017eice",
 
	"Bezdru\u017eice",
 
	"Blansko",
 
	u8"B\u0159eclav",
 
	"B\u0159eclav",
 
	"Brno",
 
	u8"Brunt\u00e1l",
 
	u8"\u010cesk\u00e1 L\u00edpa",
 
	u8"\u010cesk\u00e9 Bud\u011bjovice",
 
	u8"\u010cesk\u00fd Krumlov",
 
	u8"D\u011b\u010d\u00edn",
 
	u8"Doma\u017elice",
 
	u8"Dub\u00ed",
 
	u8"Fr\u00fddek-M\u00edstek",
 
	u8"Havl\u00ed\u010dk\u016fv Brod",
 
	u8"Hodon\u00edn",
 
	u8"Hradec Kr\u00e1lov\u00e9",
 
	"Brunt\u00e1l",
 
	"\u010cesk\u00e1 L\u00edpa",
 
	"\u010cesk\u00e9 Bud\u011bjovice",
 
	"\u010cesk\u00fd Krumlov",
 
	"D\u011b\u010d\u00edn",
 
	"Doma\u017elice",
 
	"Dub\u00ed",
 
	"Fr\u00fddek-M\u00edstek",
 
	"Havl\u00ed\u010dk\u016fv Brod",
 
	"Hodon\u00edn",
 
	"Hradec Kr\u00e1lov\u00e9",
 
	"Humpolec",
 
	"Cheb",
 
	"Chomutov",
 
	"Chrudim",
 
	"Jablonec nad Nisou",
 
	u8"Jesen\u00edk",
 
	u8"Ji\u010d\u00edn",
 
	"Jesen\u00edk",
 
	"Ji\u010d\u00edn",
 
	"Jihlava",
 
	u8"Jind\u0159ich\u016fv Hradec",
 
	"Jind\u0159ich\u016fv Hradec",
 
	"Karlovy Vary",
 
	u8"Karvin\u00e1",
 
	"Karvin\u00e1",
 
	"Kladno",
 
	"Klatovy",
 
	u8"Kol\u00edn",
 
	"Kol\u00edn",
 
	"Kosmonosy",
 
	u8"Krom\u011b\u0159\u00ed\u017e",
 
	u8"Kutn\u00e1 Hora",
 
	"Krom\u011b\u0159\u00ed\u017e",
 
	"Kutn\u00e1 Hora",
 
	"Liberec",
 
	u8"Litom\u011b\u0159ice",
 
	"Litom\u011b\u0159ice",
 
	"Louny",
 
	u8"Man\u011bt\u00edn",
 
	u8"M\u011bln\u00edk",
 
	u8"Mlad\u00e1 Boleslav",
 
	"Man\u011bt\u00edn",
 
	"M\u011bln\u00edk",
 
	"Mlad\u00e1 Boleslav",
 
	"Most",
 
	u8"N\u00e1chod",
 
	u8"Nov\u00fd Ji\u010d\u00edn",
 
	"N\u00e1chod",
 
	"Nov\u00fd Ji\u010d\u00edn",
 
	"Nymburk",
 
	"Olomouc",
 
	"Opava",
 
	u8"Or\u00e1\u010dov",
 
	"Or\u00e1\u010dov",
 
	"Ostrava",
 
	"Pardubice",
 
	u8"Pelh\u0159imov",
 
	u8"Pol\u017eice",
 
	u8"P\u00edsek",
 
	u8"Plze\u0148",
 
	"Pelh\u0159imov",
 
	"Pol\u017eice",
 
	"P\u00edsek",
 
	"Plze\u0148",
 
	"Praha",
 
	"Prachatice",
 
	u8"P\u0159erov",
 
	u8"P\u0159\u00edbram",
 
	u8"Prost\u011bjov",
 
	u8"Rakovn\u00edk",
 
	"P\u0159erov",
 
	"P\u0159\u00edbram",
 
	"Prost\u011bjov",
 
	"Rakovn\u00edk",
 
	"Rokycany",
 
	u8"Rudn\u00e1",
 
	u8"Rychnov nad Kn\u011b\u017enou",
 
	"Rudn\u00e1",
 
	"Rychnov nad Kn\u011b\u017enou",
 
	"Semily",
 
	"Sokolov",
 
	"Strakonice",
 
	u8"St\u0159edokluky",
 
	u8"\u0160umperk",
 
	"St\u0159edokluky",
 
	"\u0160umperk",
 
	"Svitavy",
 
	u8"T\u00e1bor",
 
	"T\u00e1bor",
 
	"Tachov",
 
	"Teplice",
 
	u8"T\u0159eb\u00ed\u010d",
 
	"T\u0159eb\u00ed\u010d",
 
	"Trutnov",
 
	u8"Uhersk\u00e9 Hradi\u0161t\u011b",
 
	u8"\u00dast\u00ed nad Labem",
 
	u8"\u00dast\u00ed nad Orlic\u00ed",
 
	u8"Vset\u00edn",
 
	u8"Vy\u0161kov",
 
	u8"\u017d\u010f\u00e1r nad S\u00e1zavou",
 
	u8"Zl\u00edn",
 
	"Uhersk\u00e9 Hradi\u0161t\u011b",
 
	"\u00dast\u00ed nad Labem",
 
	"\u00dast\u00ed nad Orlic\u00ed",
 
	"Vset\u00edn",
 
	"Vy\u0161kov",
 
	"\u017d\u010f\u00e1r nad S\u00e1zavou",
 
	"Zl\u00edn",
 
	"Znojmo",
 
};
 

	
 

	
 
/* The advanced hyperintelligent Czech town names generator!
 
 * The tables and MakeCzechTownName() is (c) Petr Baudis 2005 (GPL'd)
 
@@ -1716,18 +1716,18 @@ enum CzechPattern {
 
};
 

	
 
/* [CzechGender][CzechPattern] - replaces the last character of the adjective
 
 * by this.
 
 * XXX: [CZG_SMASC][CZP_PRIVL] needs special handling: -ovX -> -uv. */
 
static const char * const _name_czech_patmod[][3] = {
 
	/* CZG_SMASC */ { u8"\u00ed", u8"\u00fd", "X" },
 
	/* CZG_SFEM */  { u8"\u00ed", u8"\u00e1", "a" },
 
	/* CZG_SNEUT */ { u8"\u00ed", u8"\u00e9", "o" },
 
	/* CZG_PMASC */ { u8"\u00ed", u8"\u00e9", "y" },
 
	/* CZG_PFEM */  { u8"\u00ed", u8"\u00e9", "y" },
 
	/* CZG_PNEUT */ { u8"\u00ed", u8"\u00e1", "a" }
 
	/* CZG_SMASC */ { "\u00ed", "\u00fd", "X" },
 
	/* CZG_SFEM */  { "\u00ed", "\u00e1", "a" },
 
	/* CZG_SNEUT */ { "\u00ed", "\u00e9", "o" },
 
	/* CZG_PMASC */ { "\u00ed", "\u00e9", "y" },
 
	/* CZG_PFEM */  { "\u00ed", "\u00e9", "y" },
 
	/* CZG_PNEUT */ { "\u00ed", "\u00e1", "a" }
 
};
 

	
 
/* This way the substantive can choose only some adjectives/endings:
 
 * At least one of these flags must be satisfied: */
 
enum CzechAllow {
 
	CZA_SHORT = 1,
 
@@ -1761,125 +1761,125 @@ struct CzechNameAdj {
 
	CzechChoose choose;
 
	const char *name;
 
};
 

	
 
/* Some of items which should be common are doubled. */
 
static const CzechNameAdj _name_czech_adj[] = {
 
	{ CZP_JARNI, CZC_ANY, u8"Horn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Horn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Doln\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Doln\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"P\u0159edn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Zadn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Kosteln\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Havran\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"\u0158\u00ed\u010dn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, u8"Jezern\u00ed" },
 
	{ CZP_MLADY, CZC_ANY, u8"Velk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Velk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Mal\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Mal\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Vysok\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"\u010cesk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Moravsk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Slov\u00e1ck\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Slezsk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Uhersk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Star\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Star\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Nov\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Nov\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Mlad\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Kr\u00e1lovsk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Kamenn\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Cihlov\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, u8"Divn\u00fd" },
 
	{ CZP_MLADY, CZC_COLOR, u8"\u010cerven\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"\u010cerven\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"\u010cerven\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"Zelen\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"\u017dlut\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"Siv\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"\u0160ed\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"B\u00edl\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"B\u00edl\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"Modr\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"R\u016f\u017eov\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, u8"\u010cern\u00e1" },
 
	{ CZP_PRIVL, CZC_ANY, u8"Kr\u00e1lova" },
 
	{ CZP_JARNI, CZC_ANY, "Horn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Horn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Doln\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Doln\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "P\u0159edn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Zadn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Kosteln\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Havran\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "\u0158\u00ed\u010dn\u00ed" },
 
	{ CZP_JARNI, CZC_ANY, "Jezern\u00ed" },
 
	{ CZP_MLADY, CZC_ANY, "Velk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Velk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Mal\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Mal\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Vysok\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "\u010cesk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Moravsk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Slov\u00e1ck\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Slezsk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Uhersk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Star\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Star\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Nov\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Nov\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Mlad\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Kr\u00e1lovsk\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Kamenn\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Cihlov\u00fd" },
 
	{ CZP_MLADY, CZC_ANY, "Divn\u00fd" },
 
	{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "\u010cerven\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "Zelen\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "\u017dlut\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "Siv\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "\u0160ed\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "B\u00edl\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "Modr\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "R\u016f\u017eov\u00e1" },
 
	{ CZP_MLADY, CZC_COLOR, "\u010cern\u00e1" },
 
	{ CZP_PRIVL, CZC_ANY, "Kr\u00e1lova" },
 
	{ CZP_PRIVL, CZC_ANY, "Janova" },
 
	{ CZP_PRIVL, CZC_ANY, "Karlova" },
 
	{ CZP_PRIVL, CZC_ANY, u8"Kry\u0161tofova" },
 
	{ CZP_PRIVL, CZC_ANY, u8"Ji\u0159\u00edkova" },
 
	{ CZP_PRIVL, CZC_ANY, "Kry\u0161tofova" },
 
	{ CZP_PRIVL, CZC_ANY, "Ji\u0159\u00edkova" },
 
	{ CZP_PRIVL, CZC_ANY, "Petrova" },
 
	{ CZP_PRIVL, CZC_ANY, "Sudovo" },
 
};
 

	
 
/* Considered a stem for choose/allow matching purposes. */
 
static const CzechNameSubst _name_czech_subst_full[] = {
 
	{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Sedlec" },
 
	{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Brod" },
 
	{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Brod" },
 
	{ CZG_SMASC, CZA_ALL, CZC_NONE, u8"\u00daval" },
 
	{ CZG_SMASC, CZA_ALL, CZC_COLOR, u8"\u017d\u010f\u00e1r" },
 
	{ CZG_SMASC, CZA_ALL, CZC_NONE, "\u00daval" },
 
	{ CZG_SMASC, CZA_ALL, CZC_COLOR, "\u017d\u010f\u00e1r" },
 
	{ CZG_SMASC, CZA_ALL, CZC_COLOR, "Smrk" },
 
	{ CZG_SFEM,  CZA_ALL, CZC_COLOR, "Hora" },
 
	{ CZG_SFEM,  CZA_ALL, CZC_COLOR, "Lhota" },
 
	{ CZG_SFEM,  CZA_ALL, CZC_COLOR, "Lhota" },
 
	{ CZG_SFEM,  CZA_ALL, CZC_COLOR, "Hlava" },
 
	{ CZG_SFEM,  CZA_ALL, CZC_COLOR, u8"L\u00edpa" },
 
	{ CZG_SFEM,  CZA_ALL, CZC_COLOR, "L\u00edpa" },
 
	{ CZG_SNEUT, CZA_ALL, CZC_COLOR, "Pole" },
 
	{ CZG_SNEUT, CZA_ALL, CZC_COLOR, u8"\u00dadol\u00ed" },
 
	{ CZG_PMASC, CZA_ALL, CZC_NONE, u8"\u00davaly" },
 
	{ CZG_SNEUT, CZA_ALL, CZC_COLOR, "\u00dadol\u00ed" },
 
	{ CZG_PMASC, CZA_ALL, CZC_NONE, "\u00davaly" },
 
	{ CZG_PFEM,  CZA_ALL, CZC_COLOR, "Luka" },
 
	{ CZG_PNEUT, CZA_ALL, CZC_COLOR, "Pole" },
 
};
 

	
 
/* TODO: More stems needed. --pasky */
 
static const CzechNameSubst _name_czech_subst_stem[] = {
 
	{ CZG_SMASC,             CZA_MIDDLE,            CZC_COLOR, "Kostel" },
 
	{ CZG_SMASC,             CZA_MIDDLE,            CZC_COLOR, u8"Kl\u00e1\u0161ter" },
 
	{ CZG_SMASC,             CZA_MIDDLE,            CZC_COLOR, "Kl\u00e1\u0161ter" },
 
	{ CZG_SMASC, CZA_SHORT,                         CZC_COLOR, "Lhot" },
 
	{ CZG_SFEM,  CZA_SHORT,                         CZC_COLOR, "Lhot" },
 
	{ CZG_SFEM,  CZA_SHORT,                         CZC_COLOR, "Hur" },
 
	{ CZG_FREE,              CZA_MIDDLE | CZA_LONG, CZC_NONE, "Sedl" },
 
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_COLOR, "Hrad" },
 
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NONE, "Pras" },
 
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NONE, u8"Ba\u017e" },
 
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NONE, "Ba\u017e" },
 
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NONE, "Tes" },
 
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NONE, u8"U\u017e" },
 
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_POSTFIX, u8"B\u0159" },
 
	{ CZG_NFREE,             CZA_MIDDLE,            CZC_NONE, "U\u017e" },
 
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_POSTFIX, "B\u0159" },
 
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_NONE, "Vod" },
 
	{ CZG_NFREE,             CZA_MIDDLE | CZA_LONG, CZC_NONE, "Jan" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Prach" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Kunr" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Strak" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, u8"V\u00edt" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, u8"Vy\u0161" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, u8"\u017dat" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, u8"\u017der" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, u8"St\u0159ed" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "V\u00edt" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Vy\u0161" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "\u017dat" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "\u017der" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "St\u0159ed" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Harv" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Pruh" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Tach" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, u8"P\u00edsn" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "P\u00edsn" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Jin" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Jes" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Jar" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Sok" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Hod" },
 
	{ CZG_NFREE,                          CZA_LONG, CZC_NONE, "Net" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_NONE, u8"Pra\u017e" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_NONE, "Pra\u017e" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_NONE, "Nerat" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_NONE, "Kral" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_NONE, "Hut" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_NOPOSTFIX, "Pan" },
 
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NOPOSTFIX, u8"Odst\u0159ed" },
 
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_NOPOSTFIX, "Odst\u0159ed" },
 
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_COLOR, "Mrat" },
 
	{ CZG_FREE,                           CZA_LONG, CZC_COLOR, "Hlav" },
 
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE,            CZC_NONE, u8"M\u011b\u0159" },
 
	{ CZG_FREE,  CZA_SHORT | CZA_MIDDLE,            CZC_NONE, "M\u011b\u0159" },
 
	{ CZG_FREE,              CZA_MIDDLE | CZA_LONG, CZC_NONE, "Lip" },
 
};
 

	
 
/* Optional postfix inserted between stem and ending. */
 
static const char * const _name_czech_subst_postfix[] = {
 
	"av", "an", "at",
 
@@ -1887,271 +1887,271 @@ static const char * const _name_czech_su
 
	"ev", "en", "et",
 
};
 

	
 
/* This array must have the both neutral genders at the end! */
 
static const CzechNameSubst _name_czech_subst_ending[] = {
 
	{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "ec" },
 
	{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, u8"\u00edn" },
 
	{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "\u00edn" },
 
	{ CZG_SMASC, CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ov" },
 
	{ CZG_SMASC, CZA_SHORT       |        CZA_LONG, CZC_ANY, "kov" },
 
	{ CZG_SMASC,                          CZA_LONG, CZC_POSTFIX, u8"\u00edn" },
 
	{ CZG_SMASC,                          CZA_LONG, CZC_POSTFIX, u8"n\u00edk" },
 
	{ CZG_SMASC,                          CZA_LONG, CZC_POSTFIX, "\u00edn" },
 
	{ CZG_SMASC,                          CZA_LONG, CZC_POSTFIX, "n\u00edk" },
 
	{ CZG_SMASC,                          CZA_LONG, CZC_ANY, "burk" },
 
	{ CZG_SFEM,  CZA_SHORT,                         CZC_ANY, "ka" },
 
	{ CZG_SFEM,              CZA_MIDDLE,            CZC_ANY, "inka" },
 
	{ CZG_SFEM,              CZA_MIDDLE,            CZC_ANY, u8"n\u00e1" },
 
	{ CZG_SFEM,              CZA_MIDDLE,            CZC_ANY, "n\u00e1" },
 
	{ CZG_SFEM,                           CZA_LONG, CZC_ANY, "ava" },
 
	{ CZG_PMASC,                          CZA_LONG, CZC_POSTFIX, u8"\u00edky" },
 
	{ CZG_PMASC,                          CZA_LONG, CZC_POSTFIX, "\u00edky" },
 
	{ CZG_PMASC,                          CZA_LONG, CZC_ANY, "upy" },
 
	{ CZG_PMASC,                          CZA_LONG, CZC_ANY, "olupy" },
 
	{ CZG_PFEM,                           CZA_LONG, CZC_ANY, "avy" },
 
	{ CZG_PFEM,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "ice" },
 
	{ CZG_PFEM,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, u8"i\u010dky" },
 
	{ CZG_PFEM,  CZA_SHORT | CZA_MIDDLE | CZA_LONG, CZC_ANY, "i\u010dky" },
 
	{ CZG_PNEUT, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "na" },
 
	{ CZG_SNEUT, CZA_SHORT | CZA_MIDDLE,            CZC_ANY, "no" },
 
	{ CZG_SNEUT,                          CZA_LONG, CZC_ANY, u8"i\u0161t\u011b" },
 
	{ CZG_SNEUT,                          CZA_LONG, CZC_ANY, "i\u0161t\u011b" },
 
};
 

	
 
static const char * const _name_czech_suffix[] = {
 
	"nad Cidlinou",
 
	u8"nad Dyj\u00ed",
 
	"nad Dyj\u00ed",
 
	"nad Jihlavou",
 
	"nad Labem",
 
	"nad Lesy",
 
	"nad Moravou",
 
	"nad Nisou",
 
	"nad Odrou",
 
	u8"nad Ostravic\u00ed",
 
	u8"nad S\u00e1zavou",
 
	"nad Ostravic\u00ed",
 
	"nad S\u00e1zavou",
 
	"nad Vltavou",
 
	u8"pod Prad\u011bdem",
 
	u8"pod Radho\u0161t\u011bm",
 
	u8"pod \u0158\u00edpem",
 
	u8"pod Sn\u011b\u017ekou",
 
	u8"pod \u0160pi\u010d\u00e1kem",
 
	"pod Prad\u011bdem",
 
	"pod Radho\u0161t\u011bm",
 
	"pod \u0158\u00edpem",
 
	"pod Sn\u011b\u017ekou",
 
	"pod \u0160pi\u010d\u00e1kem",
 
	"pod Sedlem",
 
	u8"v \u010cech\u00e1ch",
 
	u8"na Morav\u011b",
 
	"v \u010cech\u00e1ch",
 
	"na Morav\u011b",
 
};
 

	
 

	
 

	
 
static const char * const _name_romanian_real[] = {
 
	"Adjud",
 
	"Alba Iulia",
 
	"Alexandria",
 
	"Babadag",
 
	u8"Bac\u0103u",
 
	"Bac\u0103u",
 
	"Baia Mare",
 
	u8"B\u0103ile Herculane",
 
	u8"B\u0103ile\u0219ti",
 
	u8"B\u00e2rlad",
 
	"B\u0103ile Herculane",
 
	"B\u0103ile\u0219ti",
 
	"B\u00e2rlad",
 
	"Bicaz",
 
	u8"Bistri\u021ba",
 
	"Bistri\u021ba",
 
	"Blaj",
 
	"Borsec",
 
	u8"Boto\u0219ani",
 
	u8"Br\u0103ila",
 
	u8"Bra\u0219ov",
 
	u8"Bucure\u0219ti",
 
	"Boto\u0219ani",
 
	"Br\u0103ila",
 
	"Bra\u0219ov",
 
	"Bucure\u0219ti",
 
	"Buftea",
 
	u8"Buz\u0103u",
 
	u8"C\u0103l\u0103ra\u0219i",
 
	u8"Caransebe\u0219",
 
	u8"Cernavod\u0103",
 
	"Buz\u0103u",
 
	"C\u0103l\u0103ra\u0219i",
 
	"Caransebe\u0219",
 
	"Cernavod\u0103",
 
	"Cluj-Napoca",
 
	u8"Constan\u021ba",
 
	"Constan\u021ba",
 
	"Covasna",
 
	"Craiova",
 
	"Dej",
 
	"Deva",
 
	"Dorohoi",
 
	"Drobeta-Turnu Severin",
 
	u8"Dr\u0103g\u0103\u0219ani",
 
	u8"F\u0103g\u0103ra\u0219",
 
	u8"F\u0103lticeni",
 
	u8"Fete\u0219ti",
 
	u8"Foc\u0219ani",
 
	u8"Gala\u021bi",
 
	"Dr\u0103g\u0103\u0219ani",
 
	"F\u0103g\u0103ra\u0219",
 
	"F\u0103lticeni",
 
	"Fete\u0219ti",
 
	"Foc\u0219ani",
 
	"Gala\u021bi",
 
	"Gheorgheni",
 
	"Giurgiu",
 
	u8"H\u00e2r\u0219ova",
 
	"H\u00e2r\u0219ova",
 
	"Hunedoara",
 
	u8"Hu\u0219i",
 
	u8"Ia\u0219i",
 
	"Hu\u0219i",
 
	"Ia\u0219i",
 
	"Isaccea",
 
	"Lugoj",
 
	u8"M\u0103cin",
 
	"M\u0103cin",
 
	"Mangalia",
 
	"Medgidia",
 
	u8"Media\u0219",
 
	"Media\u0219",
 
	"Miercurea Ciuc",
 
	"Mizil",
 
	"Motru",
 
	u8"N\u0103s\u0103ud",
 
	u8"N\u0103vodari",
 
	u8"Odobe\u0219ti",
 
	u8"Olteni\u021ba",
 
	u8"One\u0219ti",
 
	"N\u0103s\u0103ud",
 
	"N\u0103vodari",
 
	"Odobe\u0219ti",
 
	"Olteni\u021ba",
 
	"One\u0219ti",
 
	"Oradea",
 
	u8"Or\u0219ova",
 
	u8"Petro\u0219ani",
 
	u8"Piatra Neam\u021b",
 
	u8"Pite\u0219ti",
 
	u8"Ploie\u0219ti",
 
	"Or\u0219ova",
 
	"Petro\u0219ani",
 
	"Piatra Neam\u021b",
 
	"Pite\u0219ti",
 
	"Ploie\u0219ti",
 
	"Predeal",
 
	u8"R\u00e2mnicu V\u00e2lcea",
 
	"R\u00e2mnicu V\u00e2lcea",
 
	"Reghin",
 
	u8"Re\u0219i\u021ba",
 
	"Re\u0219i\u021ba",
 
	"Roman",
 
	u8"Ro\u0219iorii de Vede",
 
	"Ro\u0219iorii de Vede",
 
	"Satu Mare",
 
	u8"Sebe\u0219",
 
	u8"Sf\u00e2ntu Gheorghe",
 
	"Sebe\u0219",
 
	"Sf\u00e2ntu Gheorghe",
 
	"Sibiu",
 
	u8"Sighi\u0219oara",
 
	"Sighi\u0219oara",
 
	"Sinaia",
 
	"Slatina",
 
	"Slobozia",
 
	"Sovata",
 
	"Suceava",
 
	"Sulina",
 
	u8"\u021a\u0103nd\u0103rei",
 
	u8"T\u00e2rgovi\u0219te",
 
	u8"T\u00e2rgu Jiu",
 
	u8"T\u00e2rgu Mure\u0219",
 
	"\u021a\u0103nd\u0103rei",
 
	"T\u00e2rgovi\u0219te",
 
	"T\u00e2rgu Jiu",
 
	"T\u00e2rgu Mure\u0219",
 
	"Tecuci",
 
	u8"Timi\u0219oara",
 
	"Timi\u0219oara",
 
	"Tulcea",
 
	"Turda",
 
	u8"Turnu M\u0103gurele",
 
	"Turnu M\u0103gurele",
 
	"Urziceni",
 
	"Vaslui",
 
	"Vatra Dornei",
 
	"Victoria",
 
	"Videle",
 
	u8"Zal\u0103u",
 
	"Zal\u0103u",
 
};
 

	
 
static const char * const _name_slovak_real[] = {
 
	"Bratislava",
 
	u8"B\u00e1novce nad Bebravou",
 
	u8"Bansk\u00e1 Bystrica",
 
	u8"Bansk\u00e1 \u0160tiavnica",
 
	"B\u00e1novce nad Bebravou",
 
	"Bansk\u00e1 Bystrica",
 
	"Bansk\u00e1 \u0160tiavnica",
 
	"Bardejov",
 
	"Brezno",
 
	"Brezova pod Bradlom",
 
	u8"Byt\u010da",
 
	u8"\u010cadca",
 
	u8"\u010cierna nad Tisou",
 
	"Byt\u010da",
 
	"\u010cadca",
 
	"\u010cierna nad Tisou",
 
	"Detva",
 
	u8"Pre\u0161ov",
 
	"Pre\u0161ov",
 
	"Dolny Kubin",
 
	u8"Spi\u0161sk\u00e1 Nov\u00e1 Ves",
 
	u8"Dunajsk\u00e1 Streda",
 
	u8"Gab\u010d\u00edikovo",
 
	"Spi\u0161sk\u00e1 Nov\u00e1 Ves",
 
	"Dunajsk\u00e1 Streda",
 
	"Gab\u010d\u00edikovo",
 
	"Galanta",
 
	"Gbely",
 
	"Gelnica",
 
	u8"Handlov\u00e1",
 
	"Handlov\u00e1",
 
	"Hlohovec",
 
	u8"Hol\u00ed\u010d",
 
	u8"Humenn\u00e9",
 
	"Hol\u00ed\u010d",
 
	"Humenn\u00e9",
 
	"Hurbanovo",
 
	"Kezmarok",
 
	u8"Kom\u00e1rno",
 
	u8"Ko\u0161ice",
 
	"Kom\u00e1rno",
 
	"Ko\u0161ice",
 
	"Kremnica",
 
	"Krompachy",
 
	"Kuty",
 
	"Leopoldov",
 
	u8"Levo\u010da",
 
	u8"Liptovsk\u00fd Mikul\u00e1\u0161",
 
	u8"Lu\u010denec",
 
	"Levo\u010da",
 
	"Liptovsk\u00fd Mikul\u00e1\u0161",
 
	"Lu\u010denec",
 
	"Malacky",
 
	"Martin",
 
	"Medzilaborce",
 
	"Michalovce",
 
	"Modra",
 
	"Myjava",
 
	u8"N\u00e1mestovo",
 
	"N\u00e1mestovo",
 
	"Nitra",
 
	u8"Nov\u00e1 Ba\u0148a",
 
	u8"Nov\u00e9 Mesto nad V\u00e1hom",
 
	u8"Nov\u00e9 Z\u00e1mky",
 
	u8"Partiz\u00e1nske",
 
	"Nov\u00e1 Ba\u0148a",
 
	"Nov\u00e9 Mesto nad V\u00e1hom",
 
	"Nov\u00e9 Z\u00e1mky",
 
	"Partiz\u00e1nske",
 
	"Pezinok",
 
	u8"Pie\u0161\u0165any",
 
	u8"Polt\u00e1r",
 
	"Pie\u0161\u0165any",
 
	"Polt\u00e1r",
 
	"Poprad",
 
	u8"Pova\u017esk\u00e1 Bystrica",
 
	"Pova\u017esk\u00e1 Bystrica",
 
	"Prievidza",
 
	u8"P\u00fachov",
 
	u8"Rev\u00faca",
 
	u8"Rimavsk\u00e1 Sobota",
 
	u8"Ro\u017e\u0148ava",
 
	u8"Ru\u017eomberok",
 
	"P\u00fachov",
 
	"Rev\u00faca",
 
	"Rimavsk\u00e1 Sobota",
 
	"Ro\u017e\u0148ava",
 
	"Ru\u017eomberok",
 
	"Sabinov",
 
	u8"\u0160a\u013ea",
 
	"\u0160a\u013ea",
 
	"Senec",
 
	"Senica",
 
	u8"Sere\u010f",
 
	"Sere\u010f",
 
	"Skalica",
 
	u8"Sl\u00e1dkovi\u00cdovo",
 
	"Sl\u00e1dkovi\u00cdovo",
 
	"Smolenice",
 
	"Snina",
 
	u8"Star\u00e1 \u013dubov\u0148a",
 
	u8"Star\u00e1 Tur\u00e1",
 
	u8"Str\u00e1\u017eske",
 
	"Star\u00e1 \u013dubov\u0148a",
 
	"Star\u00e1 Tur\u00e1",
 
	"Str\u00e1\u017eske",
 
	"Stropkov",
 
	"Stupava",
 
	u8"\u0160t\u00farovo",
 
	u8"\u0120ulekovo",
 
	u8"Topo\u013e\u010dany",
 
	u8"Trebi\u0161ov",
 
	u8"Tren\u010d\u00edn",
 
	"\u0160t\u00farovo",
 
	"\u0120ulekovo",
 
	"Topo\u013e\u010dany",
 
	"Trebi\u0161ov",
 
	"Tren\u010d\u00edn",
 
	"Trnava",
 
	u8"Tur\u010dianske Teplice",
 
	u8"Tvrdo\u0161\u00edn",
 
	u8"Vr\u00e1ble",
 
	u8"Vranov nad Top\u013eou",
 
	u8"Z\u00e1horsk\u00e1 Bystrica",
 
	u8"\u017ddiar",
 
	u8"\u013diar nad Hronom",
 
	u8"\u017dilina",
 
	u8"Zlat\u00e9 Moravce",
 
	"Tur\u010dianske Teplice",
 
	"Tvrdo\u0161\u00edn",
 
	"Vr\u00e1ble",
 
	"Vranov nad Top\u013eou",
 
	"Z\u00e1horsk\u00e1 Bystrica",
 
	"\u017ddiar",
 
	"\u013diar nad Hronom",
 
	"\u017dilina",
 
	"Zlat\u00e9 Moravce",
 
	"Zvolen",
 
};
 

	
 
static const char * const _name_norwegian_1[] = {
 
	"Arna",
 
	"Aust",
 
	u8"Bj\u00f8rk",
 
	u8"Bj\u00f8rn",
 
	"Bj\u00f8rk",
 
	"Bj\u00f8rn",
 
	"Brand",
 
	u8"B\u00f8ver",
 
	"B\u00f8ver",
 
	"Drag",
 
	u8"Dr\u00f8",
 
	"Dr\u00f8",
 
	"Eids",
 
	"Egge",
 
	"Fager",
 
	"Finns",
 
	"Flat",
 
	"Foll",
 
	"Foss",
 
	"Fugle",
 
	"Furu",
 
	"Gaus",
 
	"Galte",
 
	"Geir",
 
	u8"Gl\u00f8s",
 
	"Gl\u00f8s",
 
	"Gran",
 
	"Grind",
 
	"Grims",
 
	u8"Gr\u00f8n",
 
	u8"Gr\u00f8t",
 
	"Gr\u00f8n",
 
	"Gr\u00f8t",
 
	"Gulle",
 
	"Haka",
 
	"Hammer",
 
	"Haug",
 
	"Hol",
 
	"Hon",
 
@@ -2160,21 +2160,21 @@ static const char * const _name_norwegia
 
	"Jess",
 
	"Kabel",
 
	"Kjerns",
 
	"Kjerring",
 
	"Knatte",
 
	"Krok",
 
	u8"K\u00f8y",
 
	"K\u00f8y",
 
	"Lang",
 
	"Lauv",
 
	"Leir",
 
	"Lund",
 
	"Logn",
 
	"Lo",
 
	"Lyng",
 
	u8"L\u00f8n",
 
	"L\u00f8n",
 
	"Mesna",
 
	"Mel",
 
	"Mo",
 
	"Nar",
 
	"Nitte",
 
	"Nord",
 
@@ -2188,28 +2188,28 @@ static const char * const _name_norwegia
 
	"Rosen",
 
	"Sand",
 
	"Sau",
 
	"Sel",
 
	"Sol",
 
	"Sjur",
 
	u8"Sk\u00e5r",
 
	u8"Sl\u00e5tt",
 
	u8"Stj\u00f8r",
 
	"Sk\u00e5r",
 
	"Sl\u00e5tt",
 
	"Stj\u00f8r",
 
	"Stor",
 
	"Svart",
 
	"Svens",
 
	"Svin",
 
	"Sylte",
 
	"Syn",
 
	"Tran",
 
	"Vass",
 
	"Ved",
 
	"Vest",
 
	"Vesle",
 
	"Vik",
 
	u8"V\u00e5g",
 
	"V\u00e5g",
 
};
 

	
 
static const char * const _name_norwegian_2[] = {
 
	"aker",
 
	"anger",
 
	"bakken",
 
@@ -2218,13 +2218,13 @@ static const char * const _name_norwegia
 
	"botn",
 
	"breen",
 
	"bu",
 
	"bugen",
 
	"by",
 
	"bygd",
 
	u8"b\u00f8",
 
	"b\u00f8",
 
	"dal",
 
	"egga",
 
	"eid",
 
	"elv",
 
	"enga",
 
	"foss",
 
@@ -2236,16 +2236,16 @@ static const char * const _name_norwegia
 
	"hammer",
 
	"haug",
 
	"havn",
 
	"heim",
 
	"hella",
 
	"hovda",
 
	u8"h\u00f8a",
 
	u8"h\u00f8gda",
 
	"h\u00f8a",
 
	"h\u00f8gda",
 
	"kampen",
 
	u8"kj\u00f8len",
 
	"kj\u00f8len",
 
	"kollen",
 
	"kroken",
 
	"land",
 
	"lia",
 
	"mark",
 
	"moen",
 
@@ -2254,308 +2254,308 @@ static const char * const _name_norwegia
 
	"nuten",
 
	"osen",
 
	"rike",
 
	"rud",
 
	"sand",
 
	"set",
 
	u8"sj\u00f8en",
 
	"sj\u00f8en",
 
	"skogen",
 
	"slette",
 
	"snipa",
 
	"stad",
 
	"stua",
 
	"stulen",
 
	"sund",
 
	"svingen",
 
	u8"s\u00e6tra",
 
	"s\u00e6tra",
 
	"tinden",
 
	"tun",
 
	"vang",
 
	"vatn",
 
	"veid",
 
	"vik",
 
	"voll",
 
	u8"v\u00e5g",
 
	"v\u00e5g",
 
	"um",
 
	u8"\u00e5sen",
 
	"\u00e5sen",
 
};
 

	
 
static const char * const _name_norwegian_real[] = {
 
	"Alta",
 
	"Arendal",
 
	"Askim",
 
	"Bergen",
 
	u8"Bod\u00f8",
 
	"Bod\u00f8",
 
	"Brevik",
 
	"Bryne",
 
	u8"Br\u00f8nn\u00f8ysund",
 
	"Br\u00f8nn\u00f8ysund",
 
	"Drammen",
 
	u8"Dr\u00f8bak",
 
	"Dr\u00f8bak",
 
	"Egersund",
 
	"Elverum",
 
	"Farsund",
 
	"Fauske",
 
	"Finnsnes",
 
	"Flekkefjord",
 
	"Flora",
 
	u8"Fosnav\u00e5g",
 
	"Fosnav\u00e5g",
 
	"Fredrikstad",
 
	u8"F\u00f8rde",
 
	u8"Gj\u00f8vik",
 
	"F\u00f8rde",
 
	"Gj\u00f8vik",
 
	"Grimstad",
 
	"Halden",
 
	"Hamar",
 
	"Hammerfest",
 
	"Harstad",
 
	"Haugesund",
 
	"Holmestrand",
 
	"Horten",
 
	u8"J\u00f8rpeland",
 
	"J\u00f8rpeland",
 
	"Kirkenes",
 
	"Kolvereid",
 
	"Kongsberg",
 
	"Kongsvinger",
 
	"Kopervik",
 
	u8"Krager\u00f8",
 
	"Krager\u00f8",
 
	"Kristiansand",
 
	"Kristiansund",
 
	"Langesund",
 
	"Larvik",
 
	"Leirvik",
 
	"Leknes",
 
	"Levanger",
 
	"Lillehammer",
 
	"Lillesand",
 
	u8"Lillestr\u00f8m",
 
	"Lillestr\u00f8m",
 
	"Lyngdal",
 
	u8"L\u00f8renskog",
 
	"L\u00f8renskog",
 
	"Mandal",
 
	"Mo i Rana",
 
	"Molde",
 
	u8"Mosj\u00f8en",
 
	"Mosj\u00f8en",
 
	"Moss",
 
	"Mysen",
 
	u8"M\u00e5l\u00f8y",
 
	"M\u00e5l\u00f8y",
 
	"Namsos",
 
	"Narvik",
 
	"Notodden",
 
	"Odda",
 
	"Oslo",
 
	"Otta",
 
	"Porsgrunn",
 
	"Ringerike",
 
	u8"Ris\u00f8r",
 
	"Ris\u00f8r",
 
	"Rjukan",
 
	"Sandefjord",
 
	"Sandnes",
 
	u8"Sandnessj\u00f8en",
 
	"Sandnessj\u00f8en",
 
	"Sandvika",
 
	"Sarpsborg",
 
	"Sauda",
 
	"Ski",
 
	"Skien",
 
	"Skudeneshavn",
 
	"Sortland",
 
	"Stathelle",
 
	"Stavanger",
 
	"Steinkjer",
 
	u8"Stj\u00f8rdal",
 
	"Stj\u00f8rdal",
 
	"Stokmarknes",
 
	"Stord",
 
	"Svelvik",
 
	u8"Svolv\u00e6r",
 
	u8"Troms\u00f8",
 
	"Svolv\u00e6r",
 
	"Troms\u00f8",
 
	"Trondheim",
 
	"Tvedestrand",
 
	u8"T\u00f8nsberg",
 
	"T\u00f8nsberg",
 
	"Ulsteinvik",
 
	u8"Vads\u00f8",
 
	u8"Vard\u00f8",
 
	u8"Verdals\u00f8ra",
 
	u8"\u00c5krehamn",
 
	u8"\u00c5lesund",
 
	u8"\u00c5ndalsnes",
 
	"Vads\u00f8",
 
	"Vard\u00f8",
 
	"Verdals\u00f8ra",
 
	"\u00c5krehamn",
 
	"\u00c5lesund",
 
	"\u00c5ndalsnes",
 
};
 

	
 
static const char * const _name_hungarian_1[] = {
 
	"Nagy-",
 
	"Kis-",
 
	u8"Fels\u0151-",
 
	u8"Als\u00f3-",
 
	u8"\u00daj-",
 
	"Fels\u0151-",
 
	"Als\u00f3-",
 
	"\u00daj-",
 
};
 

	
 
static const char * const _name_hungarian_2[] = {
 
	"Bodrog",
 
	u8"Dr\u00e1va",
 
	"Dr\u00e1va",
 
	"Duna",
 
	u8"Hej\u0151",
 
	u8"Hern\u00e1d",
 
	u8"R\u00e1ba",
 
	u8"Saj\u00f3",
 
	"Hej\u0151",
 
	"Hern\u00e1d",
 
	"R\u00e1ba",
 
	"Saj\u00f3",
 
	"Szamos",
 
	"Tisza",
 
	"Zala",
 
	"Balaton",
 
	u8"Fert\u0151",
 
	"Fert\u0151",
 
	"Bakony",
 
	u8"Cserh\u00e1t",
 
	"Cserh\u00e1t",
 
	"Bihar",
 
	u8"Hajd\u00fa",
 
	u8"J\u00e1sz",
 
	"Hajd\u00fa",
 
	"J\u00e1sz",
 
	"Kun",
 
	"Magyar",
 
	u8"N\u00f3gr\u00e1d",
 
	u8"Ny\u00edr",
 
	"N\u00f3gr\u00e1d",
 
	"Ny\u00edr",
 
	"Somogy",
 
	u8"Sz\u00e9kely",
 
	"Sz\u00e9kely",
 
	"Buda",
 
	u8"Gy\u0151r",
 
	"Gy\u0151r",
 
	"Pest",
 
	u8"Feh\u00e9r",
 
	u8"Cser\u00e9p",
 
	u8"Erd\u0151",
 
	"Feh\u00e9r",
 
	"Cser\u00e9p",
 
	"Erd\u0151",
 
	"Hegy",
 
	"Homok",
 
	u8"Mez\u0151",
 
	"Mez\u0151",
 
	"Puszta",
 
	u8"S\u00e1r",
 
	u8"Cs\u00e1sz\u00e1r",
 
	"S\u00e1r",
 
	"Cs\u00e1sz\u00e1r",
 
	"Herceg",
 
	u8"Kir\u00e1ly",
 
	"Kir\u00e1ly",
 
	"Nemes",
 
	u8"P\u00fcsp\u00f6k",
 
	"P\u00fcsp\u00f6k",
 
	"Szent",
 
	u8"Alm\u00e1s",
 
	u8"Szilv\u00e1s",
 
	"Alm\u00e1s",
 
	"Szilv\u00e1s",
 
	"Agg",
 
	"Aranyos",
 
	u8"B\u00e9k\u00e9s",
 
	u8"Egyh\u00e1zas",
 
	"B\u00e9k\u00e9s",
 
	"Egyh\u00e1zas",
 
	"Gagy",
 
	"Heves",
 
	"Kapos",
 
	u8"T\u00e1pi\u00f3",
 
	"T\u00e1pi\u00f3",
 
	"Torna",
 
	"Vas",
 
	u8"V\u00e1mos",
 
	u8"V\u00e1s\u00e1ros",
 
	"V\u00e1mos",
 
	"V\u00e1s\u00e1ros",
 
};
 

	
 
static const char * const _name_hungarian_3[] = {
 
	u8"ap\u00e1ti",
 
	u8"b\u00e1ba",
 
	"ap\u00e1ti",
 
	"b\u00e1ba",
 
	"bikk",
 
	"dob",
 
	"fa",
 
	u8"f\u00f6ld",
 
	"f\u00f6ld",
 
	"hegyes",
 
	"kak",
 
	"kereszt",
 
	u8"k\u00fcrt",
 
	u8"lad\u00e1ny",
 
	u8"m\u00e9rges",
 
	"k\u00fcrt",
 
	"lad\u00e1ny",
 
	"m\u00e9rges",
 
	"szalonta",
 
	"telek",
 
	"vas",
 
	u8"v\u00f6lgy",
 
	"v\u00f6lgy",
 
};
 

	
 
static const char * const _name_hungarian_4[] = {
 
	"alja",
 
	u8"egyh\u00e1za",
 
	u8"h\u00e1za",
 
	u8"\u00far",
 
	u8"v\u00e1r",
 
	"egyh\u00e1za",
 
	"h\u00e1za",
 
	"\u00far",
 
	"v\u00e1r",
 
};
 

	
 
static const char * const _name_hungarian_real[] = {
 
	"Ajka",
 
	u8"Asz\u00f3d",
 
	"Asz\u00f3d",
 
	"Badacsony",
 
	"Baja",
 
	"Budapest",
 
	"Debrecen",
 
	"Eger",
 
	u8"Fony\u00f3d",
 
	u8"G\u00f6d\u00f6ll\u0151",
 
	u8"Gy\u0151r",
 
	"Fony\u00f3d",
 
	"G\u00f6d\u00f6ll\u0151",
 
	"Gy\u0151r",
 
	"Gyula",
 
	"Karcag",
 
	u8"Kecskem\u00e9t",
 
	"Kecskem\u00e9t",
 
	"Keszthely",
 
	u8"Kisk\u00f6re",
 
	"Kisk\u00f6re",
 
	"Kocsord",
 
	u8"Kom\u00e1rom",
 
	u8"K\u0151szeg",
 
	u8"Mak\u00f3",
 
	u8"Moh\u00e1cs",
 
	"Kom\u00e1rom",
 
	"K\u0151szeg",
 
	"Mak\u00f3",
 
	"Moh\u00e1cs",
 
	"Miskolc",
 
	u8"\u00d3zd",
 
	"\u00d3zd",
 
	"Paks",
 
	u8"P\u00e1pa",
 
	u8"P\u00e9cs",
 
	u8"Polg\u00e1r",
 
	"P\u00e1pa",
 
	"P\u00e9cs",
 
	"Polg\u00e1r",
 
	"Sarkad",
 
	u8"Si\u00f3fok",
 
	"Si\u00f3fok",
 
	"Szeged",
 
	"Szentes",
 
	"Szolnok",
 
	"Tihany",
 
	"Tokaj",
 
	u8"V\u00e1c",
 
	u8"Z\u00e1hony",
 
	"V\u00e1c",
 
	"Z\u00e1hony",
 
	"Zirc",
 
};
 

	
 
static const char * const _name_swiss_real[] = {
 
	"Aarau",
 
	"Aesch",
 
	"Altdorf",
 
	"Arosa",
 
	"Appenzell",
 
	"Arbon",
 
	u8"Altst\u00e4tten",
 
	"Altst\u00e4tten",
 
	"Baar",
 
	"Baden",
 
	"Bellinzona",
 
	"Brig-Glis",
 
	"Bienne",
 
	"Bulle",
 
	"Binningen",
 
	"Burgdorf",
 
	"Bern",
 
	"Basel",
 
	u8"B\u00fclach",
 
	"B\u00fclach",
 
	"Carouge",
 
	"Cham",
 
	"Chiasso",
 
	"Chur",
 
	"Davos",
 
	u8"Del\u00e9mont",
 
	"Del\u00e9mont",
 
	"Dietikon",
 
	u8"D\u00fcbendorf",
 
	"D\u00fcbendorf",
 
	"Emmen",
 
	u8"Freienbach-Pf\u00e4ffikon",
 
	"Freienbach-Pf\u00e4ffikon",
 
	"Fribourg",
 
	"Frauenfeld",
 
	u8"Gen\u00e8ve",
 
	"Gen\u00e8ve",
 
	"Glarus",
 
	"Gossau",
 
	"Grenchen",
 
	"Herisau",
 
	"Horgen",
 
	"Horw",
 
	"Illnau-Effretikon",
 
	"Ittigen",
 
	"Jona",
 
	"Kriens",
 
	"Kloten",
 
	u8"K\u00f6niz",
 
	"K\u00f6niz",
 
	"Kreuzlingen",
 
	u8"K\u00fcsnacht",
 
	"K\u00fcsnacht",
 
	"Agen",
 
	"Lancy",
 
	"La Chaux-de-Fonds",
 
	"Lenzburg",
 
	"Lugano",
 
	"Langenthal",
 
@@ -2566,21 +2566,21 @@ static const char * const _name_swiss_re
 
	"Liestal",
 
	"La Tour-de-Peilz",
 
	"Lausanne",
 
	"Lyss",
 
	"Luzern",
 
	"Martigny",
 
	u8"M\u00fcnchenstein",
 
	"M\u00fcnchenstein",
 
	"Meyrin",
 
	"Montreux",
 
	"Monthey",
 
	"Morges",
 
	"Murten",
 
	"Moutier",
 
	"Muttenz",
 
	u8"Neuch\u00e2tel",
 
	"Neuch\u00e2tel",
 
	"Neuhausen am Rheinfall",
 
	"Nyon",
 
	"Olten",
 
	"Onex",
 
	"Opfikon",
 
	"Ostermundigen",
 
@@ -2603,76 +2603,76 @@ static const char * const _name_swiss_re
 
	"Schlieren",
 
	"Sierre",
 
	"Solothurn",
 
	"St. Moritz",
 
	"Sion",
 
	"Spiez",
 
	u8"St\u00e4fa",
 
	"St\u00e4fa",
 
	"Sursee",
 
	"Schwyz",
 
	"Thalwil",
 
	u8"Th\u00f4nex",
 
	"Th\u00f4nex",
 
	"Thun",
 
	"Uster",
 
	"Uzwil",
 
	"Vernier",
 
	"Volketswil",
 
	"Versoix",
 
	"Vevey",
 
	u8"W\u00e4denswil",
 
	"W\u00e4denswil",
 
	"Wettingen",
 
	"Wil",
 
	"Wallisellen",
 
	"Winterthur",
 
	"Wohlen",
 
	"Worb",
 
	"Wetzikon",
 
	"Yverdon-les-Bains",
 
	"Zollikon",
 
	"Zofingen",
 
	u8"Z\u00fcrich",
 
	"Z\u00fcrich",
 
	"Zug",
 
};
 

	
 
static const char * const _name_danish_1[] = {
 
	"Gamle ",
 
	"Lille ",
 
	"Nye ",
 
	"Store ",
 
	"Kirke ",
 
	u8"N\u00f8rre ",
 
	"N\u00f8rre ",
 
	"Vester ",
 
	u8"S\u00f8nder ",
 
	u8"\u00d8ster ",
 
	"S\u00f8nder ",
 
	"\u00d8ster ",
 
	"Hvide ",
 
	u8"H\u00f8je ",
 
	"H\u00f8je ",
 
	"Kongens ",
 
};
 

	
 
static const char * const _name_danish_2[] = {
 
	"Ager",
 
	"Alle",
 
	"Aske",
 
	"Balle",
 
	"Bede",
 
	"Birke",
 
	"Bjerring",
 
	u8"Bj\u00e6ver",
 
	"Bj\u00e6ver",
 
	"Blommens",
 
	"Blok",
 
	"Bolder",
 
	"Bred",
 
	"Charlotten",
 
	"Christians",
 
	"Danne",
 
	"Diana",
 
	"Es",
 
	"Fredens",
 
	"Frederiks",
 
	"Fugle",
 
	u8"F\u00e5re",
 
	"F\u00e5re",
 
	"Gille",
 
	"Gis",
 
	"Givs",
 
	"Glams",
 
	"Glo",
 
	"Guld",
 
@@ -2683,203 +2683,203 @@ static const char * const _name_danish_2
 
	"Helle",
 
	"Hessel",
 
	"Hjorts",
 
	"Hol",
 
	"Horn",
 
	"Humle",
 
	u8"H\u00f8j",
 
	u8"H\u00f8r",
 
	"H\u00f8j",
 
	"H\u00f8r",
 
	"Is",
 
	"Jyde",
 
	u8"J\u00e6gers",
 
	"J\u00e6gers",
 
	"Karls",
 
	"Klov",
 
	"Kokke",
 
	"Kvist",
 
	"Lang",
 
	"Lange",
 
	"Mari",
 
	"Nord",
 
	"Ny",
 
	"Oks",
 
	"Ring",
 
	u8"R\u00f8de",
 
	"R\u00f8de",
 
	"Rung",
 
	u8"R\u00f8r",
 
	"R\u00f8r",
 
	"Rud",
 
	"Saks",
 
	"Salt",
 
	"Skam",
 
	"Silke",
 
	"Skod",
 
	u8"Sk\u00e6l",
 
	u8"Sk\u00e6r",
 
	"Sk\u00e6l",
 
	"Sk\u00e6r",
 
	"Sol",
 
	"Svend",
 
	"Svine",
 
	"Strand",
 
	"Stubbe",
 
	"Ting",
 
	u8"Tj\u00e6re",
 
	"Tj\u00e6re",
 
	"Tore",
 
	"Uger",
 
	"Ulf",
 
	"Val",
 
	"Vand",
 
	"Vej",
 
	"Vor",
 
	u8"V\u00e6r",
 
	u8"\u00d8r",
 
	u8"\u00c5l",
 
	"V\u00e6r",
 
	"\u00d8r",
 
	"\u00c5l",
 
};
 

	
 
static const char * const _name_danish_3[] = {
 
	"basse",
 
	"borg",
 
	"berg",
 
	"bro",
 
	"by",
 
	"havn",
 
	"strup",
 
	"holm",
 
	"hus",
 
	u8"k\u00f8bing",
 
	"k\u00f8bing",
 
	"lund",
 
	"lunde",
 
	"sund",
 
	"ovre",
 
	u8"h\u00f8j",
 
	"h\u00f8j",
 
	"dal",
 
	"sted",
 
	"sten",
 
	u8"l\u00f8se",
 
	u8"r\u00f8d",
 
	"l\u00f8se",
 
	"r\u00f8d",
 
	"magle",
 
	u8"s\u00f8",
 
	"s\u00f8",
 
	"bjerg",
 
	u8"b\u00e6k",
 
	"b\u00e6k",
 
	"drup",
 
	"lev",
 
	"bo",
 
	"lyst",
 
	"feld",
 
	"skov",
 
};
 

	
 
static const char * const _name_turkish_prefix[] = {
 
	u8"Ak\u00e7a",
 
	u8"Alt\u0131n",
 
	u8"Bah\u00e7e",
 
	"Ak\u00e7a",
 
	"Alt\u0131n",
 
	"Bah\u00e7e",
 
	"Boz",
 
	u8"B\u00fcy\u00fck",
 
	u8"\u00c7ay",
 
	u8"Do\u011fu",
 
	"B\u00fcy\u00fck",
 
	"\u00c7ay",
 
	"Do\u011fu",
 
	"Eski",
 
	u8"G\u00fczel",
 
	u8"K\u0131z\u0131l",
 
	u8"K\u00fc\u00e7\u00fck",
 
	"G\u00fczel",
 
	"K\u0131z\u0131l",
 
	"K\u00fc\u00e7\u00fck",
 
	"Orta",
 
	u8"Sar\u0131",
 
	"Sar\u0131",
 
	"Sultan",
 
	"Ulu",
 
	"Yeni",
 
};
 

	
 
static const char * const _name_turkish_middle[] = {
 
	u8"aga\u00e7",
 
	"aga\u00e7",
 
	"ayva",
 
	u8"\u00e7am",
 
	"\u00e7am",
 
	"elma",
 
	"kurt",
 
	"pazar",
 
	u8"yal\u0131",
 
	"yal\u0131",
 
};
 

	
 
static const char * const _name_turkish_suffix[] = {
 
	"dere",
 
	"hisar",
 
	"kale",
 
	"kaya",
 
	"kent",
 
	u8"k\u00f6y",
 
	"k\u00f6y",
 
	"ova",
 
	u8"\u00f6z\u00fc",
 
	u8"\u00f6ren",
 
	"\u00f6z\u00fc",
 
	"\u00f6ren",
 
	"pazar",
 
	"saray",
 
	"tepe",
 
	"yer",
 
	"yurt",
 
};
 

	
 
static const char * const _name_turkish_real[] = {
 
	"Adana",
 
	u8"Ad\u0131yaman",
 
	"Ad\u0131yaman",
 
	"Afyon",
 
	u8"A\u011fr\u0131",
 
	"A\u011fr\u0131",
 
	"Amasya",
 
	"Antalya",
 
	"Artvin",
 
	u8"Bal\u0131kesir",
 
	"Bal\u0131kesir",
 
	"Bilecik",
 
	"Bitlis",
 
	"Bolu",
 
	"Burdur",
 
	"Bursa",
 
	u8"\u00c7anakkale",
 
	u8"\u00c7ank\u0131r\u0131",
 
	"\u00c7anakkale",
 
	"\u00c7ank\u0131r\u0131",
 
	"Denizli",
 
	u8"Diyarbak\u0131r",
 
	"Diyarbak\u0131r",
 
	"Edirne",
 
	u8"Elaz\u0131\u011f",
 
	"Elaz\u0131\u011f",
 
	"Erzurum",
 
	u8"Eski\u015fehir",
 
	"Eski\u015fehir",
 
	"Giresun",
 
	u8"G\u00fcm\u00fc\u015fhane",
 
	"G\u00fcm\u00fc\u015fhane",
 
	"Hatay",
 
	"Isparta",
 
	u8"\u0130\u00e7el",
 
	u8"\u0130stanbul",
 
	u8"\u0130zmir",
 
	"\u0130\u00e7el",
 
	"\u0130stanbul",
 
	"\u0130zmir",
 
	"Kars",
 
	"Kastamonu",
 
	"Kayseri",
 
	"Kirklareli",
 
	"Kocaeli",
 
	"Konya",
 
	u8"K\u00fctahya",
 
	"K\u00fctahya",
 
	"Malatya",
 
	"Manisa",
 
	u8"Kahramanmara\u015f",
 
	"Kahramanmara\u015f",
 
	"Mardin",
 
	u8"Mu\u011fla",
 
	u8"Mu\u015f",
 
	u8"Nev\u015fehir",
 
	u8"Ni\u011fde",
 
	"Mu\u011fla",
 
	"Mu\u015f",
 
	"Nev\u015fehir",
 
	"Ni\u011fde",
 
	"Rize",
 
	"Sakarya",
 
	"Samsun",
 
	"Siirt",
 
	"Sinop",
 
	"Sivas",
 
	"Trabzon",
 
	u8"\u015eanl\u0131urfa",
 
	"\u015eanl\u0131urfa",
 
	"Van",
 
	"Yozgat",
 
	"Zonguldak",
 
	"Aksaray",
 
	"Bayburt",
 
	"Karaman",
 
	u8"\u015e\u0131rnak",
 
	u8"Bart\u0131n",
 
	"\u015e\u0131rnak",
 
	"Bart\u0131n",
 
	"Ardahan",
 
	u8"I\u011fd\u0131r",
 
	"I\u011fd\u0131r",
 
	"Yalova",
 
	u8"Karab\u00fck",
 
	"Karab\u00fck",
 
	"Osmaniye",
 
	u8"D\u00fczce",
 
	"D\u00fczce",
 
};
 

	
 
static const char * const _name_italian_real[] = {
 
	"Roma",
 
	"Milano",
 
	"Napoli",
 
@@ -3165,13 +3165,13 @@ static const char * const _name_catalan_
 
	"Berga",
 
	"Olot",
 
	"Mollerussa",
 
	"Banyoles",
 
	"Figueres",
 
	"Balaguer",
 
	u8"Vilafranca del Pened\u00e8s",
 
	"Vilafranca del Pened\u00e8s",
 
	"La Seu d'Urgell",
 
	"El Pont de Suert",
 
	"Igualada",
 
	"Manresa",
 
	"Solsona",
 
	"Les Borges Blanques",
 
@@ -3181,38 +3181,38 @@ static const char * const _name_catalan_
 
	"Portbou",
 
	"El Vendrell",
 
	"Falset",
 
	"Ripoll",
 
	"Cervera",
 
	"Gandesa",
 
	u8"Matar\u00f3",
 
	"Matar\u00f3",
 
	"Montblanc",
 
	u8"Vilanova i la Geltr\u00fa",
 
	u8"T\u00e0rrega",
 
	"Vilanova i la Geltr\u00fa",
 
	"T\u00e0rrega",
 
	"Camprodon",
 
	u8"Campdev\u00e0nol",
 
	"Campdev\u00e0nol",
 
	"Cambrils",
 
	"Begur",
 
	"Setcases",
 
	"Palafrugell",
 
	"Begues",
 
	"El Bruc",
 
	u8"Cadaqu\u00e9s",
 
	u8"Collbat\u00f3",
 
	u8"Cervell\u00f3",
 
	"Cadaqu\u00e9s",
 
	"Collbat\u00f3",
 
	"Cervell\u00f3",
 
	"Esparreguera",
 
	"Abrera",
 
	"Alp",
 
	"Das",
 
	"Cercs",
 
	"Manlleu",
 
	"El Masnou",
 
	"Molins de Rei",
 
	"Monistrol",
 
	"Rocallaura",
 
	u8"Rub\u00ed",
 
	"Rub\u00ed",
 
	"Ripollet",
 
	"Sitges",
 
	"Roses",
 
};
 

	
 
static const char * const _name_catalan_pref[] = {
 
@@ -3236,20 +3236,20 @@ static const char * const _name_catalan_
 
	"Sant Esteve de ",
 
	"Sant Andreu de ",
 
	"Sant Jordi de ",
 
	"Sant Joan de ",
 
	"Sant Feliu de ",
 
	"Sant Quirze de ",
 
	u8"Sant Sadurn\u00ed de ",
 
	"Sant Sadurn\u00ed de ",
 
	"Santa Coloma de ",
 
	"Santa Margarida de ",
 
	"Santa Maria de ",
 
	u8"Sant Mart\u00ed de ",
 
	"Sant Mart\u00ed de ",
 
	"Sant Pere de ",
 
	u8"Sant Juli\u00e0 de ",
 
	u8"Sant Vicen\u00e7 de ",
 
	"Sant Juli\u00e0 de ",
 
	"Sant Vicen\u00e7 de ",
 

	
 
};
 

	
 
static const char * const _name_catalan_1m[] = {
 
	"Torrent",
 
	"Cami",
 
@@ -3272,16 +3272,16 @@ static const char * const _name_catalan_
 

	
 
static const char * const _name_catalan_2m[] = {
 
	"alt",
 
	"baix",
 
	"fosc",
 
	"pelat",
 
	u8"vent\u00f3s",
 
	"vent\u00f3s",
 
	"negre",
 
	"roig",
 
	u8"gr\u00eds",
 
	"gr\u00eds",
 
};
 

	
 
static const char * const _name_catalan_2f[] = {
 
	"baixa",
 
	"alta",
 
	"fosca",
 
@@ -3290,26 +3290,26 @@ static const char * const _name_catalan_
 
	"roja",
 
	"grisa",
 
	"freda",
 
};
 

	
 
static const char * const _name_catalan_3[] = {
 
	u8" Desp\u00ed",
 
	" Desp\u00ed",
 
	" Desvern",
 
	u8" del Cam\u00ed",
 
	" del Cam\u00ed",
 
	" de Mar",
 
	" de Dalt",
 
	" de Baix",
 
	u8" del Vall\u00e8s",
 
	u8" de Bergued\u00e0",
 
	" del Vall\u00e8s",
 
	" de Bergued\u00e0",
 
	" de Conflent",
 
	" de la Plana",
 
};
 

	
 
static const char * const _name_catalan_river1[] = {
 
	" d'Anoia",
 
	" de Ter",
 
	" de Llobregat",
 
	" d'Ebre",
 
	" de Segre",
 
	u8" de Francol\u00ed",
 
	" de Francol\u00ed",
 
};
src/textfile_gui.cpp
Show inline comments
 
@@ -793,13 +793,13 @@ static void Xunzip(byte **bufp, size_t *
 

	
 
	if (buf == nullptr) return;
 

	
 
	std::string_view sv_buf(buf, filesize);
 

	
 
	/* Check for the byte-order-mark, and skip it if needed. */
 
	if (StrStartsWith(sv_buf, u8"\ufeff")) sv_buf.remove_prefix(3);
 
	if (StrStartsWith(sv_buf, "\ufeff")) sv_buf.remove_prefix(3);
 

	
 
	/* Update the filename. */
 
	this->filepath = textfile;
 
	this->filename = this->filepath.substr(this->filepath.find_last_of(PATHSEP) + 1);
 
	/* If it's the first file being loaded, add to history. */
 
	if (this->history.empty()) this->history.push_back(HistoryEntry{ this->filepath, 0 });
src/townname.cpp
Show inline comments
 
@@ -498,13 +498,13 @@ static void MakeFinnishTownName(StringBu
 
		if (builder[last] == 'i') builder[last] = 'e';
 

	
 
		std::string_view view(&builder[start], builder.CurrentIndex() - start);
 
		if (view.find_first_of("aouAOU") != std::string_view::npos) {
 
			builder += "la";
 
		} else {
 
			builder += u8"l\u00e4";
 
			builder += "l\u00e4";
 
		}
 
		return;
 
	}
 

	
 
	/* A two-part name by combining one of _name_finnish_{1,2} + _name_finnish_3.
 
	 * Why aren't _name_finnish_{1,2} just one table? See above. */
0 comments (0 inline, 0 general)