From f6bb68525e18afecf5cfc863f3defad0273bbfc2 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 2 Oct 2018 13:02:17 +0200 Subject: [PATCH] Added variants. --- src/Squidex.Infrastructure/Language.cs | 6 +- src/Squidex.Infrastructure/Languages.cs | 321 ++++++++++++++++++++++++ tools/GenerateLanguages/Program.cs | 89 +++++-- 3 files changed, 392 insertions(+), 24 deletions(-) diff --git a/src/Squidex.Infrastructure/Language.cs b/src/Squidex.Infrastructure/Language.cs index 5534be463..e18268e7b 100644 --- a/src/Squidex.Infrastructure/Language.cs +++ b/src/Squidex.Infrastructure/Language.cs @@ -20,11 +20,7 @@ namespace Squidex.Infrastructure private static Language AddLanguage(string iso2Code, string englishName) { - var language = new Language(iso2Code, englishName); - - AllLanguagesField[iso2Code] = language; - - return language; + return AllLanguagesField.GetOrAdd(iso2Code, code => new Language(code, englishName)); } public static Language GetLanguage(string iso2Code) diff --git a/src/Squidex.Infrastructure/Languages.cs b/src/Squidex.Infrastructure/Languages.cs index f788c86e2..403b79996 100644 --- a/src/Squidex.Infrastructure/Languages.cs +++ b/src/Squidex.Infrastructure/Languages.cs @@ -1,4 +1,5 @@ // ========================================================================== +// Languages.cs // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) @@ -190,5 +191,325 @@ namespace Squidex.Infrastructure public static readonly Language ZA = AddLanguage("za", "Zhuang"); public static readonly Language ZH = AddLanguage("zh", "Chinese"); public static readonly Language ZU = AddLanguage("zu", "Zulu"); + + public static readonly Language AfarDjibouti = AddLanguage("aa-DJ", "Afar (Djibouti)"); + public static readonly Language AfarEritrea = AddLanguage("aa-ER", "Afar (Eritrea)"); + public static readonly Language AfarEthiopia = AddLanguage("aa-ET", "Afar (Ethiopia)"); + public static readonly Language AfrikaansNamibia = AddLanguage("af-NA", "Afrikaans (Namibia)"); + public static readonly Language AfrikaansSouthAfrica = AddLanguage("af-ZA", "Afrikaans (South Africa)"); + public static readonly Language ArabicUnitedArabEmirates = AddLanguage("ar-AE", "Arabic (United Arab Emirates)"); + public static readonly Language ArabicBahrain = AddLanguage("ar-BH", "Arabic (Bahrain)"); + public static readonly Language ArabicDjibouti = AddLanguage("ar-DJ", "Arabic (Djibouti)"); + public static readonly Language ArabicAlgeria = AddLanguage("ar-DZ", "Arabic (Algeria)"); + public static readonly Language ArabicEgypt = AddLanguage("ar-EG", "Arabic (Egypt)"); + public static readonly Language ArabicEritrea = AddLanguage("ar-ER", "Arabic (Eritrea)"); + public static readonly Language ArabicIsrael = AddLanguage("ar-IL", "Arabic (Israel)"); + public static readonly Language ArabicIraq = AddLanguage("ar-IQ", "Arabic (Iraq)"); + public static readonly Language ArabicJordan = AddLanguage("ar-JO", "Arabic (Jordan)"); + public static readonly Language ArabicComoros = AddLanguage("ar-KM", "Arabic (Comoros)"); + public static readonly Language ArabicKuwait = AddLanguage("ar-KW", "Arabic (Kuwait)"); + public static readonly Language ArabicLebanon = AddLanguage("ar-LB", "Arabic (Lebanon)"); + public static readonly Language ArabicLibya = AddLanguage("ar-LY", "Arabic (Libya)"); + public static readonly Language ArabicMorocco = AddLanguage("ar-MA", "Arabic (Morocco)"); + public static readonly Language ArabicMauritania = AddLanguage("ar-MR", "Arabic (Mauritania)"); + public static readonly Language ArabicOman = AddLanguage("ar-OM", "Arabic (Oman)"); + public static readonly Language ArabicPalestinianAuthority = AddLanguage("ar-PS", "Arabic (Palestinian Authority)"); + public static readonly Language ArabicQatar = AddLanguage("ar-QA", "Arabic (Qatar)"); + public static readonly Language ArabicSaudiArabia = AddLanguage("ar-SA", "Arabic (Saudi Arabia)"); + public static readonly Language ArabicSudan = AddLanguage("ar-SD", "Arabic (Sudan)"); + public static readonly Language ArabicSomalia = AddLanguage("ar-SO", "Arabic (Somalia)"); + public static readonly Language ArabicSouthSudan = AddLanguage("ar-SS", "Arabic (South Sudan)"); + public static readonly Language ArabicSyria = AddLanguage("ar-SY", "Arabic (Syria)"); + public static readonly Language ArabicChad = AddLanguage("ar-TD", "Arabic (Chad)"); + public static readonly Language ArabicTunisia = AddLanguage("ar-TN", "Arabic (Tunisia)"); + public static readonly Language ArabicYemen = AddLanguage("ar-YE", "Arabic (Yemen)"); + public static readonly Language BanglaBangladesh = AddLanguage("bn-BD", "Bangla (Bangladesh)"); + public static readonly Language BanglaIndia = AddLanguage("bn-IN", "Bangla (India)"); + public static readonly Language TibetanChina = AddLanguage("bo-CN", "Tibetan (China)"); + public static readonly Language TibetanIndia = AddLanguage("bo-IN", "Tibetan (India)"); + public static readonly Language CatalanAndorra = AddLanguage("ca-AD", "Catalan (Andorra)"); + public static readonly Language CatalanCatalan = AddLanguage("ca-ES", "Catalan (Catalan)"); + public static readonly Language CatalanFrance = AddLanguage("ca-FR", "Catalan (France)"); + public static readonly Language CatalanItaly = AddLanguage("ca-IT", "Catalan (Italy)"); + public static readonly Language DanishDenmark = AddLanguage("da-DK", "Danish (Denmark)"); + public static readonly Language DanishGreenland = AddLanguage("da-GL", "Danish (Greenland)"); + public static readonly Language GermanAustria = AddLanguage("de-AT", "German (Austria)"); + public static readonly Language GermanBelgium = AddLanguage("de-BE", "German (Belgium)"); + public static readonly Language GermanSwitzerland = AddLanguage("de-CH", "German (Switzerland)"); + public static readonly Language GermanGermany = AddLanguage("de-DE", "German (Germany)"); + public static readonly Language GermanItaly = AddLanguage("de-IT", "German (Italy)"); + public static readonly Language GermanLiechtenstein = AddLanguage("de-LI", "German (Liechtenstein)"); + public static readonly Language GermanLuxembourg = AddLanguage("de-LU", "German (Luxembourg)"); + public static readonly Language EweGhana = AddLanguage("ee-GH", "Ewe (Ghana)"); + public static readonly Language EweTogo = AddLanguage("ee-TG", "Ewe (Togo)"); + public static readonly Language GreekCyprus = AddLanguage("el-CY", "Greek (Cyprus)"); + public static readonly Language GreekGreece = AddLanguage("el-GR", "Greek (Greece)"); + public static readonly Language EnglishAntiguaandBarbuda = AddLanguage("en-AG", "English (Antigua and Barbuda)"); + public static readonly Language EnglishAnguilla = AddLanguage("en-AI", "English (Anguilla)"); + public static readonly Language EnglishAmericanSamoa = AddLanguage("en-AS", "English (American Samoa)"); + public static readonly Language EnglishAustria = AddLanguage("en-AT", "English (Austria)"); + public static readonly Language EnglishAustralia = AddLanguage("en-AU", "English (Australia)"); + public static readonly Language EnglishBarbados = AddLanguage("en-BB", "English (Barbados)"); + public static readonly Language EnglishBelgium = AddLanguage("en-BE", "English (Belgium)"); + public static readonly Language EnglishBurundi = AddLanguage("en-BI", "English (Burundi)"); + public static readonly Language EnglishBermuda = AddLanguage("en-BM", "English (Bermuda)"); + public static readonly Language EnglishBahamas = AddLanguage("en-BS", "English (Bahamas)"); + public static readonly Language EnglishBotswana = AddLanguage("en-BW", "English (Botswana)"); + public static readonly Language EnglishBelize = AddLanguage("en-BZ", "English (Belize)"); + public static readonly Language EnglishCanada = AddLanguage("en-CA", "English (Canada)"); + public static readonly Language EnglishCocosKeelingIslands = AddLanguage("en-CC", "English (Cocos (Keeling) Islands)"); + public static readonly Language EnglishSwitzerland = AddLanguage("en-CH", "English (Switzerland)"); + public static readonly Language EnglishCookIslands = AddLanguage("en-CK", "English (Cook Islands)"); + public static readonly Language EnglishCameroon = AddLanguage("en-CM", "English (Cameroon)"); + public static readonly Language EnglishChristmasIsland = AddLanguage("en-CX", "English (Christmas Island)"); + public static readonly Language EnglishCyprus = AddLanguage("en-CY", "English (Cyprus)"); + public static readonly Language EnglishGermany = AddLanguage("en-DE", "English (Germany)"); + public static readonly Language EnglishDenmark = AddLanguage("en-DK", "English (Denmark)"); + public static readonly Language EnglishDominica = AddLanguage("en-DM", "English (Dominica)"); + public static readonly Language EnglishEritrea = AddLanguage("en-ER", "English (Eritrea)"); + public static readonly Language EnglishFinland = AddLanguage("en-FI", "English (Finland)"); + public static readonly Language EnglishFiji = AddLanguage("en-FJ", "English (Fiji)"); + public static readonly Language EnglishFalklandIslands = AddLanguage("en-FK", "English (Falkland Islands)"); + public static readonly Language EnglishMicronesia = AddLanguage("en-FM", "English (Micronesia)"); + public static readonly Language EnglishUnitedKingdom = AddLanguage("en-GB", "English (United Kingdom)"); + public static readonly Language EnglishGrenada = AddLanguage("en-GD", "English (Grenada)"); + public static readonly Language EnglishGuernsey = AddLanguage("en-GG", "English (Guernsey)"); + public static readonly Language EnglishGhana = AddLanguage("en-GH", "English (Ghana)"); + public static readonly Language EnglishGibraltar = AddLanguage("en-GI", "English (Gibraltar)"); + public static readonly Language EnglishGambia = AddLanguage("en-GM", "English (Gambia)"); + public static readonly Language EnglishGuam = AddLanguage("en-GU", "English (Guam)"); + public static readonly Language EnglishGuyana = AddLanguage("en-GY", "English (Guyana)"); + public static readonly Language EnglishHongKongSAR = AddLanguage("en-HK", "English (Hong Kong SAR)"); + public static readonly Language EnglishIndonesia = AddLanguage("en-ID", "English (Indonesia)"); + public static readonly Language EnglishIreland = AddLanguage("en-IE", "English (Ireland)"); + public static readonly Language EnglishIsrael = AddLanguage("en-IL", "English (Israel)"); + public static readonly Language EnglishIsleofMan = AddLanguage("en-IM", "English (Isle of Man)"); + public static readonly Language EnglishIndia = AddLanguage("en-IN", "English (India)"); + public static readonly Language EnglishBritishIndianOceanTerritory = AddLanguage("en-IO", "English (British Indian Ocean Territory)"); + public static readonly Language EnglishJersey = AddLanguage("en-JE", "English (Jersey)"); + public static readonly Language EnglishJamaica = AddLanguage("en-JM", "English (Jamaica)"); + public static readonly Language EnglishKenya = AddLanguage("en-KE", "English (Kenya)"); + public static readonly Language EnglishKiribati = AddLanguage("en-KI", "English (Kiribati)"); + public static readonly Language EnglishSaintKittsandNevis = AddLanguage("en-KN", "English (Saint Kitts and Nevis)"); + public static readonly Language EnglishCaymanIslands = AddLanguage("en-KY", "English (Cayman Islands)"); + public static readonly Language EnglishSaintLucia = AddLanguage("en-LC", "English (Saint Lucia)"); + public static readonly Language EnglishLiberia = AddLanguage("en-LR", "English (Liberia)"); + public static readonly Language EnglishLesotho = AddLanguage("en-LS", "English (Lesotho)"); + public static readonly Language EnglishMadagascar = AddLanguage("en-MG", "English (Madagascar)"); + public static readonly Language EnglishMarshallIslands = AddLanguage("en-MH", "English (Marshall Islands)"); + public static readonly Language EnglishMacaoSAR = AddLanguage("en-MO", "English (Macao SAR)"); + public static readonly Language EnglishNorthernMarianaIslands = AddLanguage("en-MP", "English (Northern Mariana Islands)"); + public static readonly Language EnglishMontserrat = AddLanguage("en-MS", "English (Montserrat)"); + public static readonly Language EnglishMalta = AddLanguage("en-MT", "English (Malta)"); + public static readonly Language EnglishMauritius = AddLanguage("en-MU", "English (Mauritius)"); + public static readonly Language EnglishMalawi = AddLanguage("en-MW", "English (Malawi)"); + public static readonly Language EnglishMalaysia = AddLanguage("en-MY", "English (Malaysia)"); + public static readonly Language EnglishNamibia = AddLanguage("en-NA", "English (Namibia)"); + public static readonly Language EnglishNorfolkIsland = AddLanguage("en-NF", "English (Norfolk Island)"); + public static readonly Language EnglishNigeria = AddLanguage("en-NG", "English (Nigeria)"); + public static readonly Language EnglishNetherlands = AddLanguage("en-NL", "English (Netherlands)"); + public static readonly Language EnglishNauru = AddLanguage("en-NR", "English (Nauru)"); + public static readonly Language EnglishNiue = AddLanguage("en-NU", "English (Niue)"); + public static readonly Language EnglishNewZealand = AddLanguage("en-NZ", "English (New Zealand)"); + public static readonly Language EnglishPapuaNewGuinea = AddLanguage("en-PG", "English (Papua New Guinea)"); + public static readonly Language EnglishPhilippines = AddLanguage("en-PH", "English (Philippines)"); + public static readonly Language EnglishPakistan = AddLanguage("en-PK", "English (Pakistan)"); + public static readonly Language EnglishPitcairnIslands = AddLanguage("en-PN", "English (Pitcairn Islands)"); + public static readonly Language EnglishPuertoRico = AddLanguage("en-PR", "English (Puerto Rico)"); + public static readonly Language EnglishPalau = AddLanguage("en-PW", "English (Palau)"); + public static readonly Language EnglishRwanda = AddLanguage("en-RW", "English (Rwanda)"); + public static readonly Language EnglishSolomonIslands = AddLanguage("en-SB", "English (Solomon Islands)"); + public static readonly Language EnglishSeychelles = AddLanguage("en-SC", "English (Seychelles)"); + public static readonly Language EnglishSudan = AddLanguage("en-SD", "English (Sudan)"); + public static readonly Language EnglishSweden = AddLanguage("en-SE", "English (Sweden)"); + public static readonly Language EnglishSingapore = AddLanguage("en-SG", "English (Singapore)"); + public static readonly Language EnglishStHelenaAscensionTristandaCunha = AddLanguage("en-SH", "English (St Helena, Ascension, Tristan da Cunha)"); + public static readonly Language EnglishSlovenia = AddLanguage("en-SI", "English (Slovenia)"); + public static readonly Language EnglishSierraLeone = AddLanguage("en-SL", "English (Sierra Leone)"); + public static readonly Language EnglishSouthSudan = AddLanguage("en-SS", "English (South Sudan)"); + public static readonly Language EnglishSintMaarten = AddLanguage("en-SX", "English (Sint Maarten)"); + public static readonly Language EnglishSwaziland = AddLanguage("en-SZ", "English (Swaziland)"); + public static readonly Language EnglishTurksandCaicosIslands = AddLanguage("en-TC", "English (Turks and Caicos Islands)"); + public static readonly Language EnglishTokelau = AddLanguage("en-TK", "English (Tokelau)"); + public static readonly Language EnglishTonga = AddLanguage("en-TO", "English (Tonga)"); + public static readonly Language EnglishTrinidadandTobago = AddLanguage("en-TT", "English (Trinidad and Tobago)"); + public static readonly Language EnglishTuvalu = AddLanguage("en-TV", "English (Tuvalu)"); + public static readonly Language EnglishTanzania = AddLanguage("en-TZ", "English (Tanzania)"); + public static readonly Language EnglishUganda = AddLanguage("en-UG", "English (Uganda)"); + public static readonly Language EnglishUSOutlyingIslands = AddLanguage("en-UM", "English (U.S. Outlying Islands)"); + public static readonly Language EnglishUnitedStates = AddLanguage("en-US", "English (United States)"); + public static readonly Language EnglishSaintVincentandtheGrenadines = AddLanguage("en-VC", "English (Saint Vincent and the Grenadines)"); + public static readonly Language EnglishBritishVirginIslands = AddLanguage("en-VG", "English (British Virgin Islands)"); + public static readonly Language EnglishUSVirginIslands = AddLanguage("en-VI", "English (U.S. Virgin Islands)"); + public static readonly Language EnglishVanuatu = AddLanguage("en-VU", "English (Vanuatu)"); + public static readonly Language EnglishSamoa = AddLanguage("en-WS", "English (Samoa)"); + public static readonly Language EnglishSouthAfrica = AddLanguage("en-ZA", "English (South Africa)"); + public static readonly Language EnglishZambia = AddLanguage("en-ZM", "English (Zambia)"); + public static readonly Language EnglishZimbabwe = AddLanguage("en-ZW", "English (Zimbabwe)"); + public static readonly Language SpanishArgentina = AddLanguage("es-AR", "Spanish (Argentina)"); + public static readonly Language SpanishBolivia = AddLanguage("es-BO", "Spanish (Bolivia)"); + public static readonly Language SpanishBrazil = AddLanguage("es-BR", "Spanish (Brazil)"); + public static readonly Language SpanishBelize = AddLanguage("es-BZ", "Spanish (Belize)"); + public static readonly Language SpanishChile = AddLanguage("es-CL", "Spanish (Chile)"); + public static readonly Language SpanishColombia = AddLanguage("es-CO", "Spanish (Colombia)"); + public static readonly Language SpanishCostaRica = AddLanguage("es-CR", "Spanish (Costa Rica)"); + public static readonly Language SpanishCuba = AddLanguage("es-CU", "Spanish (Cuba)"); + public static readonly Language SpanishDominicanRepublic = AddLanguage("es-DO", "Spanish (Dominican Republic)"); + public static readonly Language SpanishEcuador = AddLanguage("es-EC", "Spanish (Ecuador)"); + public static readonly Language SpanishSpainInternationalSort = AddLanguage("es-ES", "Spanish (Spain, International Sort)"); + public static readonly Language SpanishEquatorialGuinea = AddLanguage("es-GQ", "Spanish (Equatorial Guinea)"); + public static readonly Language SpanishGuatemala = AddLanguage("es-GT", "Spanish (Guatemala)"); + public static readonly Language SpanishHonduras = AddLanguage("es-HN", "Spanish (Honduras)"); + public static readonly Language SpanishMexico = AddLanguage("es-MX", "Spanish (Mexico)"); + public static readonly Language SpanishNicaragua = AddLanguage("es-NI", "Spanish (Nicaragua)"); + public static readonly Language SpanishPanama = AddLanguage("es-PA", "Spanish (Panama)"); + public static readonly Language SpanishPeru = AddLanguage("es-PE", "Spanish (Peru)"); + public static readonly Language SpanishPhilippines = AddLanguage("es-PH", "Spanish (Philippines)"); + public static readonly Language SpanishPuertoRico = AddLanguage("es-PR", "Spanish (Puerto Rico)"); + public static readonly Language SpanishParaguay = AddLanguage("es-PY", "Spanish (Paraguay)"); + public static readonly Language SpanishElSalvador = AddLanguage("es-SV", "Spanish (El Salvador)"); + public static readonly Language SpanishUnitedStates = AddLanguage("es-US", "Spanish (United States)"); + public static readonly Language SpanishUruguay = AddLanguage("es-UY", "Spanish (Uruguay)"); + public static readonly Language SpanishVenezuela = AddLanguage("es-VE", "Spanish (Venezuela)"); + public static readonly Language FulahCameroon = AddLanguage("ff-CM", "Fulah (Cameroon)"); + public static readonly Language FulahGuinea = AddLanguage("ff-GN", "Fulah (Guinea)"); + public static readonly Language FulahMauritania = AddLanguage("ff-MR", "Fulah (Mauritania)"); + public static readonly Language FulahNigeria = AddLanguage("ff-NG", "Fulah (Nigeria)"); + public static readonly Language FaroeseDenmark = AddLanguage("fo-DK", "Faroese (Denmark)"); + public static readonly Language FaroeseFaroeIslands = AddLanguage("fo-FO", "Faroese (Faroe Islands)"); + public static readonly Language FrenchBelgium = AddLanguage("fr-BE", "French (Belgium)"); + public static readonly Language FrenchBurkinaFaso = AddLanguage("fr-BF", "French (Burkina Faso)"); + public static readonly Language FrenchBurundi = AddLanguage("fr-BI", "French (Burundi)"); + public static readonly Language FrenchBenin = AddLanguage("fr-BJ", "French (Benin)"); + public static readonly Language FrenchSaintBarthélemy = AddLanguage("fr-BL", "French (Saint Barthélemy)"); + public static readonly Language FrenchCanada = AddLanguage("fr-CA", "French (Canada)"); + public static readonly Language FrenchCongoDRC = AddLanguage("fr-CD", "French Congo (DRC)"); + public static readonly Language FrenchCentralAfricanRepublic = AddLanguage("fr-CF", "French (Central African Republic)"); + public static readonly Language FrenchCongo = AddLanguage("fr-CG", "French (Congo)"); + public static readonly Language FrenchSwitzerland = AddLanguage("fr-CH", "French (Switzerland)"); + public static readonly Language FrenchCôtedIvoire = AddLanguage("fr-CI", "French (Côte d’Ivoire)"); + public static readonly Language FrenchCameroon = AddLanguage("fr-CM", "French (Cameroon)"); + public static readonly Language FrenchDjibouti = AddLanguage("fr-DJ", "French (Djibouti)"); + public static readonly Language FrenchAlgeria = AddLanguage("fr-DZ", "French (Algeria)"); + public static readonly Language FrenchFrance = AddLanguage("fr-FR", "French (France)"); + public static readonly Language FrenchGabon = AddLanguage("fr-GA", "French (Gabon)"); + public static readonly Language FrenchFrenchGuiana = AddLanguage("fr-GF", "French (French Guiana)"); + public static readonly Language FrenchGuinea = AddLanguage("fr-GN", "French (Guinea)"); + public static readonly Language FrenchGuadeloupe = AddLanguage("fr-GP", "French (Guadeloupe)"); + public static readonly Language FrenchEquatorialGuinea = AddLanguage("fr-GQ", "French (Equatorial Guinea)"); + public static readonly Language FrenchHaiti = AddLanguage("fr-HT", "French (Haiti)"); + public static readonly Language FrenchComoros = AddLanguage("fr-KM", "French (Comoros)"); + public static readonly Language FrenchLuxembourg = AddLanguage("fr-LU", "French (Luxembourg)"); + public static readonly Language FrenchMorocco = AddLanguage("fr-MA", "French (Morocco)"); + public static readonly Language FrenchMonaco = AddLanguage("fr-MC", "French (Monaco)"); + public static readonly Language FrenchSaintMartin = AddLanguage("fr-MF", "French (Saint Martin)"); + public static readonly Language FrenchMadagascar = AddLanguage("fr-MG", "French (Madagascar)"); + public static readonly Language FrenchMali = AddLanguage("fr-ML", "French (Mali)"); + public static readonly Language FrenchMartinique = AddLanguage("fr-MQ", "French (Martinique)"); + public static readonly Language FrenchMauritania = AddLanguage("fr-MR", "French (Mauritania)"); + public static readonly Language FrenchMauritius = AddLanguage("fr-MU", "French (Mauritius)"); + public static readonly Language FrenchNewCaledonia = AddLanguage("fr-NC", "French (New Caledonia)"); + public static readonly Language FrenchNiger = AddLanguage("fr-NE", "French (Niger)"); + public static readonly Language FrenchFrenchPolynesia = AddLanguage("fr-PF", "French (French Polynesia)"); + public static readonly Language FrenchSaintPierreandMiquelon = AddLanguage("fr-PM", "French (Saint Pierre and Miquelon)"); + public static readonly Language FrenchRéunion = AddLanguage("fr-RE", "French (Réunion)"); + public static readonly Language FrenchRwanda = AddLanguage("fr-RW", "French (Rwanda)"); + public static readonly Language FrenchSeychelles = AddLanguage("fr-SC", "French (Seychelles)"); + public static readonly Language FrenchSenegal = AddLanguage("fr-SN", "French (Senegal)"); + public static readonly Language FrenchSyria = AddLanguage("fr-SY", "French (Syria)"); + public static readonly Language FrenchChad = AddLanguage("fr-TD", "French (Chad)"); + public static readonly Language FrenchTogo = AddLanguage("fr-TG", "French (Togo)"); + public static readonly Language FrenchTunisia = AddLanguage("fr-TN", "French (Tunisia)"); + public static readonly Language FrenchVanuatu = AddLanguage("fr-VU", "French (Vanuatu)"); + public static readonly Language FrenchWallisandFutuna = AddLanguage("fr-WF", "French (Wallis and Futuna)"); + public static readonly Language FrenchMayotte = AddLanguage("fr-YT", "French (Mayotte)"); + public static readonly Language CroatianBosniaandHerzegovina = AddLanguage("hr-BA", "Croatian (Bosnia and Herzegovina)"); + public static readonly Language CroatianCroatia = AddLanguage("hr-HR", "Croatian (Croatia)"); + public static readonly Language ItalianSwitzerland = AddLanguage("it-CH", "Italian (Switzerland)"); + public static readonly Language ItalianItaly = AddLanguage("it-IT", "Italian (Italy)"); + public static readonly Language ItalianSanMarino = AddLanguage("it-SM", "Italian (San Marino)"); + public static readonly Language ItalianVaticanCity = AddLanguage("it-VA", "Italian (Vatican City)"); + public static readonly Language KoreanNorthKorea = AddLanguage("ko-KP", "Korean (North Korea)"); + public static readonly Language KoreanKorea = AddLanguage("ko-KR", "Korean (Korea)"); + public static readonly Language LingalaAngola = AddLanguage("ln-AO", "Lingala (Angola)"); + public static readonly Language LingalaCongoDRC = AddLanguage("ln-CD", "Lingala (Congo DRC)"); + public static readonly Language LingalaCentralAfricanRepublic = AddLanguage("ln-CF", "Lingala (Central African Republic)"); + public static readonly Language LingalaCongo = AddLanguage("ln-CG", "Lingala (Congo)"); + public static readonly Language MalayBrunei = AddLanguage("ms-BN", "Malay (Brunei)"); + public static readonly Language MalayMalaysia = AddLanguage("ms-MY", "Malay (Malaysia)"); + public static readonly Language MalaySingapore = AddLanguage("ms-SG", "Malay (Singapore)"); + public static readonly Language NorwegianBokmålNorway = AddLanguage("nb-NO", "Norwegian Bokmål (Norway)"); + public static readonly Language NorwegianBokmålSvalbardandJanMayen = AddLanguage("nb-SJ", "Norwegian Bokmål (Svalbard and Jan Mayen)"); + public static readonly Language NepaliIndia = AddLanguage("ne-IN", "Nepali (India)"); + public static readonly Language NepaliNepal = AddLanguage("ne-NP", "Nepali (Nepal)"); + public static readonly Language DutchAruba = AddLanguage("nl-AW", "Dutch (Aruba)"); + public static readonly Language DutchBelgium = AddLanguage("nl-BE", "Dutch (Belgium)"); + public static readonly Language DutchBonaireSintEustatiusandSaba = AddLanguage("nl-BQ", "Dutch (Bonaire, Sint Eustatius and Saba)"); + public static readonly Language DutchCuraçao = AddLanguage("nl-CW", "Dutch (Curaçao)"); + public static readonly Language DutchNetherlands = AddLanguage("nl-NL", "Dutch (Netherlands)"); + public static readonly Language DutchSuriname = AddLanguage("nl-SR", "Dutch (Suriname)"); + public static readonly Language DutchSintMaarten = AddLanguage("nl-SX", "Dutch (Sint Maarten)"); + public static readonly Language OromoEthiopia = AddLanguage("om-ET", "Oromo (Ethiopia)"); + public static readonly Language OromoKenya = AddLanguage("om-KE", "Oromo (Kenya)"); + public static readonly Language PortugueseAngola = AddLanguage("pt-AO", "Portuguese (Angola)"); + public static readonly Language PortugueseBrazil = AddLanguage("pt-BR", "Portuguese (Brazil)"); + public static readonly Language PortugueseSwitzerland = AddLanguage("pt-CH", "Portuguese (Switzerland)"); + public static readonly Language PortugueseCaboVerde = AddLanguage("pt-CV", "Portuguese (Cabo Verde)"); + public static readonly Language PortugueseEquatorialGuinea = AddLanguage("pt-GQ", "Portuguese (Equatorial Guinea)"); + public static readonly Language PortugueseGuineaBissau = AddLanguage("pt-GW", "Portuguese (Guinea-Bissau)"); + public static readonly Language PortugueseLuxembourg = AddLanguage("pt-LU", "Portuguese (Luxembourg)"); + public static readonly Language PortugueseMacaoSAR = AddLanguage("pt-MO", "Portuguese (Macao SAR)"); + public static readonly Language PortugueseMozambique = AddLanguage("pt-MZ", "Portuguese (Mozambique)"); + public static readonly Language PortuguesePortugal = AddLanguage("pt-PT", "Portuguese (Portugal)"); + public static readonly Language PortugueseSãoToméandPríncipe = AddLanguage("pt-ST", "Portuguese (São Tomé and Príncipe)"); + public static readonly Language PortugueseTimorLeste = AddLanguage("pt-TL", "Portuguese (Timor-Leste)"); + public static readonly Language RomanianMoldova = AddLanguage("ro-MD", "Romanian (Moldova)"); + public static readonly Language RomanianRomania = AddLanguage("ro-RO", "Romanian (Romania)"); + public static readonly Language RussianBelarus = AddLanguage("ru-BY", "Russian (Belarus)"); + public static readonly Language RussianKyrgyzstan = AddLanguage("ru-KG", "Russian (Kyrgyzstan)"); + public static readonly Language RussianKazakhstan = AddLanguage("ru-KZ", "Russian (Kazakhstan)"); + public static readonly Language RussianMoldova = AddLanguage("ru-MD", "Russian (Moldova)"); + public static readonly Language RussianRussia = AddLanguage("ru-RU", "Russian (Russia)"); + public static readonly Language RussianUkraine = AddLanguage("ru-UA", "Russian (Ukraine)"); + public static readonly Language SamiNorthernFinland = AddLanguage("se-FI", "Sami, Northern (Finland)"); + public static readonly Language SamiNorthernNorway = AddLanguage("se-NO", "Sami, Northern (Norway)"); + public static readonly Language SamiNorthernSweden = AddLanguage("se-SE", "Sami, Northern (Sweden)"); + public static readonly Language SomaliDjibouti = AddLanguage("so-DJ", "Somali (Djibouti)"); + public static readonly Language SomaliEthiopia = AddLanguage("so-ET", "Somali (Ethiopia)"); + public static readonly Language SomaliKenya = AddLanguage("so-KE", "Somali (Kenya)"); + public static readonly Language SomaliSomalia = AddLanguage("so-SO", "Somali (Somalia)"); + public static readonly Language AlbanianAlbania = AddLanguage("sq-AL", "Albanian (Albania)"); + public static readonly Language AlbanianMacedoniaFYRO = AddLanguage("sq-MK", "Albanian (Macedonia, FYRO)"); + public static readonly Language AlbanianKosovo = AddLanguage("sq-XK", "Albanian (Kosovo)"); + public static readonly Language siSwatiSwaziland = AddLanguage("ss-SZ", "siSwati (Swaziland)"); + public static readonly Language siSwatiSouthAfrica = AddLanguage("ss-ZA", "siSwati (South Africa)"); + public static readonly Language SesothoLesotho = AddLanguage("st-LS", "Sesotho (Lesotho)"); + public static readonly Language SesothoSouthAfrica = AddLanguage("st-ZA", "Sesotho (South Africa)"); + public static readonly Language SwedishÅlandIslands = AddLanguage("sv-AX", "Swedish (Åland Islands)"); + public static readonly Language SwedishFinland = AddLanguage("sv-FI", "Swedish (Finland)"); + public static readonly Language SwedishSweden = AddLanguage("sv-SE", "Swedish (Sweden)"); + public static readonly Language KiswahiliCongoDRC = AddLanguage("sw-CD", "Kiswahili (Congo DRC)"); + public static readonly Language KiswahiliKenya = AddLanguage("sw-KE", "Kiswahili (Kenya)"); + public static readonly Language KiswahiliTanzania = AddLanguage("sw-TZ", "Kiswahili (Tanzania)"); + public static readonly Language KiswahiliUganda = AddLanguage("sw-UG", "Kiswahili (Uganda)"); + public static readonly Language TamilIndia = AddLanguage("ta-IN", "Tamil (India)"); + public static readonly Language TamilSriLanka = AddLanguage("ta-LK", "Tamil (Sri Lanka)"); + public static readonly Language TamilMalaysia = AddLanguage("ta-MY", "Tamil (Malaysia)"); + public static readonly Language TamilSingapore = AddLanguage("ta-SG", "Tamil (Singapore)"); + public static readonly Language TigrinyaEritrea = AddLanguage("ti-ER", "Tigrinya (Eritrea)"); + public static readonly Language TigrinyaEthiopia = AddLanguage("ti-ET", "Tigrinya (Ethiopia)"); + public static readonly Language SetswanaBotswana = AddLanguage("tn-BW", "Setswana (Botswana)"); + public static readonly Language SetswanaSouthAfrica = AddLanguage("tn-ZA", "Setswana (South Africa)"); + public static readonly Language TurkishCyprus = AddLanguage("tr-CY", "Turkish (Cyprus)"); + public static readonly Language TurkishTurkey = AddLanguage("tr-TR", "Turkish (Turkey)"); + public static readonly Language UrduIndia = AddLanguage("ur-IN", "Urdu (India)"); + public static readonly Language UrduPakistan = AddLanguage("ur-PK", "Urdu (Pakistan)"); + public static readonly Language YorubaBenin = AddLanguage("yo-BJ", "Yoruba (Benin)"); + public static readonly Language YorubaNigeria = AddLanguage("yo-NG", "Yoruba (Nigeria)"); + public static readonly Language ChineseSimplifiedChina = AddLanguage("zh-CN", "Chinese (Simplified, China)"); + public static readonly Language ChineseTraditionalHongKongSAR = AddLanguage("zh-HK", "Chinese (Traditional, Hong Kong SAR)"); + public static readonly Language ChineseTraditionalMacaoSAR = AddLanguage("zh-MO", "Chinese (Traditional, Macao SAR)"); + public static readonly Language ChineseSimplifiedSingapore = AddLanguage("zh-SG", "Chinese (Simplified, Singapore)"); + public static readonly Language ChineseTraditionalTaiwan = AddLanguage("zh-TW", "Chinese (Traditional, Taiwan)"); } } diff --git a/tools/GenerateLanguages/Program.cs b/tools/GenerateLanguages/Program.cs index 1b81b5a00..6911b350d 100644 --- a/tools/GenerateLanguages/Program.cs +++ b/tools/GenerateLanguages/Program.cs @@ -7,20 +7,20 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.IO; +using System.Linq; using System.Text; namespace GenerateLanguages { - public class Program + public static class Program { public static void Main() { - var languageCodesFile = new FileInfo("../../src/Squidex.Infrastructure/language-codes.csv"); + var languageCodesFile = new FileInfo("../../../../../src/Squidex.Infrastructure/language-codes.csv"); var languageFile = Path.Combine(languageCodesFile.DirectoryName, "Languages.cs"); - var resourceStream = new FileStream(languageCodesFile.FullName, FileMode.Open); - var writer = new StringWriter(); writer.WriteLine("// =========================================================================="); writer.WriteLine("// Languages.cs"); @@ -39,25 +39,22 @@ namespace GenerateLanguages writer.WriteLine(" partial class Language"); writer.WriteLine(" {"); - var uniqueCodes = new HashSet(new [] { "iv" }); - - using (var reader = new StreamReader(resourceStream, Encoding.UTF8)) + var languages = GetLanguages(languageCodesFile).ToList(); + + foreach (var language in languages) { - reader.ReadLine(); + var fieldName = language.Iso2Code.ToUpperInvariant(); - while (!reader.EndOfStream) - { - var languageLine = reader.ReadLine(); - var languageIso2Code = languageLine.Substring(1, 2); - var languageEnglishName = languageLine.Substring(6, languageLine.Length - 7); + writer.WriteLine($" public static readonly Language {fieldName} = AddLanguage(\"{language.Iso2Code}\", \"{language.EnglishName}\");"); + } - if (!uniqueCodes.Add(languageIso2Code)) - { - Console.WriteLine("Languages contains duplicate {0}", languageIso2Code); - } + writer.WriteLine(); - writer.WriteLine(" public static readonly Language {0} = AddLanguage(\"{1}\", \"{2}\");", languageIso2Code.ToUpperInvariant(), languageIso2Code, languageEnglishName); - } + foreach (var culture in GetCultures(languages)) + { + var fieldName = culture.EnglishName.ToFieldName(); + + writer.WriteLine($" public static readonly Language {fieldName} = AddLanguage(\"{culture.Code}\", \"{culture.EnglishName}\");"); } writer.WriteLine(" }"); @@ -65,5 +62,59 @@ namespace GenerateLanguages File.WriteAllText(languageFile, writer.ToString()); } + + private static string ToFieldName(this string name) + { + var sb = new StringBuilder(); + + foreach (var c in name) + { + if (char.IsLetterOrDigit(c)) + { + sb.Append(c); + } + } + + return sb.ToString(); + } + + private static IEnumerable<(string Code, string EnglishName)> GetCultures(List<(string Iso2Code, string EnglishName)> languages) + { + return CultureInfo.GetCultures(CultureTypes.SpecificCultures) + .Where(x => x.ToString().Length == 5) + .Where(x => languages.Any(l => l.Iso2Code.Equals(x.TwoLetterISOLanguageName, StringComparison.OrdinalIgnoreCase))) + .GroupBy(x => x.TwoLetterISOLanguageName) + .Where(x => x.Count() > 1) + .SelectMany(x => x) + .Select(x => (x.ToString(), x.EnglishName)); + } + + private static IEnumerable<(string Iso2Code, string EnglishName)> GetLanguages(FileInfo file) + { + var uniqueCodes = new HashSet(new[] { "iv" }); + + var resourceStream = file.OpenRead(); + + using (var reader = new StreamReader(resourceStream, Encoding.UTF8)) + { + reader.ReadLine(); + + while (!reader.EndOfStream) + { + var line = reader.ReadLine(); + + var iso2Code = line.Substring(1, 2); + + if (uniqueCodes.Add(iso2Code)) + { + yield return (iso2Code, line.Substring(6, line.Length - 7)); + } + else + { + Console.WriteLine("Languages contains duplicate {0}", iso2Code); + } + } + } + } } }