308 lines
14 KiB
C++
Raw Normal View History

2022-03-05 22:41:29 +05:00
/*
SPDX-FileCopyrightText: 2014 Martin Klapetek <mklapetek@kde.org>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#include "timezonesi18n.h"
#include <KLocalizedString>
#include "timezonesi18n_generated.h"
TimezonesI18n::TimezonesI18n(QObject *parent)
: QObject(parent)
, m_isInitialized(false)
{
}
QString TimezonesI18n::i18nCity(const QString &city)
{
if (!m_isInitialized) {
init();
}
return m_i18nCities.value(city);
}
QString TimezonesI18n::i18nContinents(const QString &continent)
{
if (!m_isInitialized) {
init();
}
return m_i18nContinents.value(continent);
}
QString TimezonesI18n::i18nCountry(QLocale::Country country)
{
if (!m_isInitialized) {
init();
}
return m_i18nCountries.value(country);
}
void TimezonesI18n::init()
{
m_i18nCities = TimezonesI18nData::timezoneCityToL10nMap();
m_i18nContinents = TimezonesI18nData::timezoneContinentToL10nMap();
#define ENTRY_ISO_3166(qlocale_enum, string) {QLocale::qlocale_enum, i18nd("iso_3166", string)}
/* Make sure the country names match their versions in iso-codes,
* ISO 3166. */
m_i18nCountries = QHash<QLocale::Country, QString>({
ENTRY_ISO_3166(IvoryCoast, "Côte d'Ivoire"),
ENTRY_ISO_3166(Ghana, "Ghana"),
ENTRY_ISO_3166(Ethiopia, "Ethiopia"),
ENTRY_ISO_3166(Algeria, "Algeria"),
ENTRY_ISO_3166(Eritrea, "Eritrea"),
ENTRY_ISO_3166(Mali, "Mali"),
ENTRY_ISO_3166(CentralAfricanRepublic, "Central African Republic"),
ENTRY_ISO_3166(Gambia, "Gambia"),
ENTRY_ISO_3166(GuineaBissau, "Guinea-Bissau"),
ENTRY_ISO_3166(Malawi, "Malawi"),
ENTRY_ISO_3166(CongoBrazzaville, "Congo"),
ENTRY_ISO_3166(Burundi, "Burundi"),
ENTRY_ISO_3166(Egypt, "Egypt"),
ENTRY_ISO_3166(Morocco, "Morocco"),
ENTRY_ISO_3166(Spain, "Spain"),
ENTRY_ISO_3166(Guinea, "Guinea"),
ENTRY_ISO_3166(Senegal, "Senegal"),
ENTRY_ISO_3166(Tanzania, "Tanzania"),
ENTRY_ISO_3166(Djibouti, "Djibouti"),
ENTRY_ISO_3166(Cameroon, "Cameroon"),
ENTRY_ISO_3166(WesternSahara, "Western Sahara"),
ENTRY_ISO_3166(SierraLeone, "Sierra Leone"),
ENTRY_ISO_3166(Botswana, "Botswana"),
ENTRY_ISO_3166(BouvetIsland, "Bouvet Island"),
ENTRY_ISO_3166(Zimbabwe, "Zimbabwe"),
ENTRY_ISO_3166(SouthAfrica, "South Africa"),
ENTRY_ISO_3166(SouthSudan, "South Sudan"),
ENTRY_ISO_3166(Uganda, "Uganda"),
ENTRY_ISO_3166(Sudan, "Sudan"),
ENTRY_ISO_3166(Rwanda, "Rwanda"),
ENTRY_ISO_3166(CongoKinshasa, "Congo, The Democratic Republic of the"),
ENTRY_ISO_3166(Nigeria, "Nigeria"),
ENTRY_ISO_3166(Gabon, "Gabon"),
ENTRY_ISO_3166(Togo, "Togo"),
ENTRY_ISO_3166(Angola, "Angola"),
ENTRY_ISO_3166(Zambia, "Zambia"),
ENTRY_ISO_3166(EquatorialGuinea, "Equatorial Guinea"),
ENTRY_ISO_3166(Mozambique, "Mozambique"),
ENTRY_ISO_3166(Lesotho, "Lesotho"),
ENTRY_ISO_3166(Swaziland, "Swaziland"),
ENTRY_ISO_3166(Somalia, "Somalia"),
ENTRY_ISO_3166(Liberia, "Liberia"),
ENTRY_ISO_3166(Kenya, "Kenya"),
ENTRY_ISO_3166(Chad, "Chad"),
ENTRY_ISO_3166(Niger, "Niger"),
ENTRY_ISO_3166(Mauritania, "Mauritania"),
ENTRY_ISO_3166(BurkinaFaso, "Burkina Faso"),
ENTRY_ISO_3166(Benin, "Benin"),
ENTRY_ISO_3166(SaoTomeAndPrincipe, "Sao Tome and Principe"),
ENTRY_ISO_3166(Libya, "Libya"),
ENTRY_ISO_3166(Tunisia, "Tunisia"),
ENTRY_ISO_3166(Namibia, "Namibia"),
ENTRY_ISO_3166(UnitedStates, "United States"),
ENTRY_ISO_3166(Anguilla, "Anguilla"),
ENTRY_ISO_3166(AntiguaAndBarbuda, "Antigua and Barbuda"),
ENTRY_ISO_3166(Brazil, "Brazil"),
ENTRY_ISO_3166(Argentina, "Argentina"),
ENTRY_ISO_3166(Aruba, "Aruba"),
ENTRY_ISO_3166(Paraguay, "Paraguay"),
ENTRY_ISO_3166(Canada, "Canada"),
ENTRY_ISO_3166(Mexico, "Mexico"),
ENTRY_ISO_3166(Barbados, "Barbados"),
ENTRY_ISO_3166(Belize, "Belize"),
ENTRY_ISO_3166(Colombia, "Colombia"),
ENTRY_ISO_3166(Venezuela, "Venezuela"),
ENTRY_ISO_3166(FrenchGuiana, "French Guiana"),
ENTRY_ISO_3166(CaymanIslands, "Cayman Islands"),
ENTRY_ISO_3166(CostaRica, "Costa Rica"),
ENTRY_ISO_3166(CuraSao, "Curaçao"),
ENTRY_ISO_3166(Greenland, "Greenland"),
ENTRY_ISO_3166(Dominica, "Dominica"),
ENTRY_ISO_3166(ElSalvador, "El Salvador"),
ENTRY_ISO_3166(TurksAndCaicosIslands, "Turks and Caicos Islands"),
ENTRY_ISO_3166(Grenada, "Grenada"),
ENTRY_ISO_3166(Guadeloupe, "Guadeloupe"),
ENTRY_ISO_3166(Guatemala, "Guatemala"),
ENTRY_ISO_3166(Ecuador, "Ecuador"),
ENTRY_ISO_3166(Guyana, "Guyana"),
ENTRY_ISO_3166(Cuba, "Cuba"),
ENTRY_ISO_3166(Jamaica, "Jamaica"),
ENTRY_ISO_3166(Bonaire, "Bonaire, Sint Eustatius and Saba"),
ENTRY_ISO_3166(Bolivia, "Bolivia"),
ENTRY_ISO_3166(Peru, "Peru"),
ENTRY_ISO_3166(SintMaarten, "Sint Maarten (Dutch part)"),
ENTRY_ISO_3166(Nicaragua, "Nicaragua"),
ENTRY_ISO_3166(SaintMartin, "Saint Martin (French part)"),
ENTRY_ISO_3166(Martinique, "Martinique"),
ENTRY_ISO_3166(SaintPierreAndMiquelon, "Saint Pierre and Miquelon"),
ENTRY_ISO_3166(Uruguay, "Uruguay"),
ENTRY_ISO_3166(Montserrat, "Montserrat"),
ENTRY_ISO_3166(Bahamas, "Bahamas"),
ENTRY_ISO_3166(Panama, "Panama"),
ENTRY_ISO_3166(Suriname, "Suriname"),
ENTRY_ISO_3166(Haiti, "Haiti"),
ENTRY_ISO_3166(HeardAndMcDonaldIslands, "Heard Island and McDonald Islands"),
ENTRY_ISO_3166(TrinidadAndTobago, "Trinidad and Tobago"),
ENTRY_ISO_3166(PuertoRico, "Puerto Rico"),
ENTRY_ISO_3166(Chile, "Chile"),
ENTRY_ISO_3166(DominicanRepublic, "Dominican Republic"),
ENTRY_ISO_3166(SaintBarthelemy, "Saint Barthélemy"),
ENTRY_ISO_3166(SaintKittsAndNevis, "Saint Kitts and Nevis"),
ENTRY_ISO_3166(SaintLucia, "Saint Lucia"),
ENTRY_ISO_3166(UnitedStatesVirginIslands, "Virgin Islands, U.S."),
ENTRY_ISO_3166(SaintVincentAndTheGrenadines, "Saint Vincent and the Grenadines"),
ENTRY_ISO_3166(Honduras, "Honduras"),
ENTRY_ISO_3166(BritishVirginIslands, "Virgin Islands, British"),
ENTRY_ISO_3166(Antarctica, "Antarctica"),
ENTRY_ISO_3166(Australia, "Australia"),
ENTRY_ISO_3166(SvalbardAndJanMayenIslands, "Svalbard and Jan Mayen"),
ENTRY_ISO_3166(Yemen, "Yemen"),
ENTRY_ISO_3166(Kazakhstan, "Kazakhstan"),
ENTRY_ISO_3166(Jordan, "Jordan"),
ENTRY_ISO_3166(Russia, "Russian Federation"),
ENTRY_ISO_3166(Turkmenistan, "Turkmenistan"),
ENTRY_ISO_3166(Iraq, "Iraq"),
ENTRY_ISO_3166(Bahrain, "Bahrain"),
ENTRY_ISO_3166(Azerbaijan, "Azerbaijan"),
ENTRY_ISO_3166(Thailand, "Thailand"),
ENTRY_ISO_3166(Lebanon, "Lebanon"),
ENTRY_ISO_3166(Kyrgyzstan, "Kyrgyzstan"),
ENTRY_ISO_3166(Brunei, "Brunei Darussalam"),
ENTRY_ISO_3166(Mongolia, "Mongolia"),
ENTRY_ISO_3166(China, "China"),
ENTRY_ISO_3166(SriLanka, "Sri Lanka"),
ENTRY_ISO_3166(Syria, "Syrian Arab Republic"),
ENTRY_ISO_3166(Bangladesh, "Bangladesh"),
ENTRY_ISO_3166(EastTimor, "Timor-Leste"),
ENTRY_ISO_3166(UnitedArabEmirates, "United Arab Emirates"),
ENTRY_ISO_3166(Tajikistan, "Tajikistan"),
ENTRY_ISO_3166(PalestinianTerritories, "Palestine, State of"),
ENTRY_ISO_3166(Vietnam, "Vietnam"),
ENTRY_ISO_3166(HongKong, "Hong Kong"),
ENTRY_ISO_3166(Indonesia, "Indonesia"),
ENTRY_ISO_3166(Israel, "Israel"),
ENTRY_ISO_3166(Afghanistan, "Afghanistan"),
ENTRY_ISO_3166(Pakistan, "Pakistan"),
ENTRY_ISO_3166(Nepal, "Nepal"),
ENTRY_ISO_3166(India, "India"),
ENTRY_ISO_3166(Malaysia, "Malaysia"),
ENTRY_ISO_3166(Kuwait, "Kuwait"),
ENTRY_ISO_3166(Macau, "Macao"),
ENTRY_ISO_3166(Philippines, "Philippines"),
ENTRY_ISO_3166(Oman, "Oman"),
ENTRY_ISO_3166(Cyprus, "Cyprus"),
ENTRY_ISO_3166(Cambodia, "Cambodia"),
ENTRY_ISO_3166(NorthKorea, "Korea, Democratic People's Republic of"),
ENTRY_ISO_3166(Qatar, "Qatar"),
ENTRY_ISO_3166(Myanmar, "Myanmar"),
ENTRY_ISO_3166(SaudiArabia, "Saudi Arabia"),
ENTRY_ISO_3166(Uzbekistan, "Uzbekistan"),
ENTRY_ISO_3166(SouthKorea, "Korea, Republic of"),
ENTRY_ISO_3166(Singapore, "Singapore"),
ENTRY_ISO_3166(Taiwan, "Taiwan"),
ENTRY_ISO_3166(Georgia, "Georgia"),
ENTRY_ISO_3166(Iran, "Iran, Islamic Republic of"),
ENTRY_ISO_3166(Bhutan, "Bhutan"),
ENTRY_ISO_3166(Japan, "Japan"),
ENTRY_ISO_3166(Laos, "Lao People's Democratic Republic"),
ENTRY_ISO_3166(Armenia, "Armenia"),
ENTRY_ISO_3166(Portugal, "Portugal"),
ENTRY_ISO_3166(Bermuda, "Bermuda"),
ENTRY_ISO_3166(CapeVerde, "Cabo Verde"),
ENTRY_ISO_3166(FaroeIslands, "Faroe Islands"),
ENTRY_ISO_3166(Iceland, "Iceland"),
ENTRY_ISO_3166(SouthGeorgiaAndTheSouthSandwichIslands, "South Georgia and the South Sandwich Islands"),
ENTRY_ISO_3166(SaintHelena, "Saint Helena, Ascension and Tristan da Cunha"),
ENTRY_ISO_3166(FalklandIslands, "Falkland Islands (Malvinas)"),
ENTRY_ISO_3166(Netherlands, "Netherlands"),
ENTRY_ISO_3166(Andorra, "Andorra"),
ENTRY_ISO_3166(Greece, "Greece"),
ENTRY_ISO_3166(Serbia, "Serbia"),
ENTRY_ISO_3166(Germany, "Germany"),
ENTRY_ISO_3166(Slovakia, "Slovakia"),
ENTRY_ISO_3166(Belgium, "Belgium"),
ENTRY_ISO_3166(Romania, "Romania"),
ENTRY_ISO_3166(Hungary, "Hungary"),
ENTRY_ISO_3166(Moldova, "Moldova"),
ENTRY_ISO_3166(Denmark, "Denmark"),
ENTRY_ISO_3166(Ireland, "Ireland"),
ENTRY_ISO_3166(Gibraltar, "Gibraltar"),
ENTRY_ISO_3166(Guernsey, "Guernsey"),
ENTRY_ISO_3166(Finland, "Finland"),
ENTRY_ISO_3166(IsleOfMan, "Isle of Man"),
ENTRY_ISO_3166(Turkey, "Turkey"),
ENTRY_ISO_3166(Jersey, "Jersey"),
ENTRY_ISO_3166(Ukraine, "Ukraine"),
ENTRY_ISO_3166(Slovenia, "Slovenia"),
ENTRY_ISO_3166(UnitedKingdom, "United Kingdom"),
ENTRY_ISO_3166(Luxembourg, "Luxembourg"),
ENTRY_ISO_3166(Malta, "Malta"),
ENTRY_ISO_3166(AlandIslands, "Åland Islands"),
ENTRY_ISO_3166(Belarus, "Belarus"),
ENTRY_ISO_3166(Monaco, "Monaco"),
ENTRY_ISO_3166(Norway, "Norway"),
ENTRY_ISO_3166(France, "France"),
ENTRY_ISO_3166(Montenegro, "Montenegro"),
ENTRY_ISO_3166(CzechRepublic, "Czechia"),
ENTRY_ISO_3166(Latvia, "Latvia"),
ENTRY_ISO_3166(Italy, "Italy"),
ENTRY_ISO_3166(SanMarino, "San Marino"),
ENTRY_ISO_3166(BosniaAndHerzegowina, "Bosnia and Herzegovina"),
ENTRY_ISO_3166(Macedonia, "Macedonia, Republic of"),
ENTRY_ISO_3166(Bulgaria, "Bulgaria"),
ENTRY_ISO_3166(Sweden, "Sweden"),
ENTRY_ISO_3166(Estonia, "Estonia"),
ENTRY_ISO_3166(Albania, "Albania"),
ENTRY_ISO_3166(Liechtenstein, "Liechtenstein"),
ENTRY_ISO_3166(VaticanCityState, "Holy See (Vatican City State)"),
ENTRY_ISO_3166(Austria, "Austria"),
ENTRY_ISO_3166(Lithuania, "Lithuania"),
ENTRY_ISO_3166(Poland, "Poland"),
ENTRY_ISO_3166(Croatia, "Croatia"),
ENTRY_ISO_3166(Switzerland, "Switzerland"),
ENTRY_ISO_3166(Madagascar, "Madagascar"),
ENTRY_ISO_3166(BritishIndianOceanTerritory, "British Indian Ocean Territory"),
ENTRY_ISO_3166(ChristmasIsland, "Christmas Island"),
ENTRY_ISO_3166(CocosIslands, "Cocos (Keeling) Islands"),
ENTRY_ISO_3166(Comoros, "Comoros"),
ENTRY_ISO_3166(FrenchSouthernTerritories, "French Southern Territories"),
ENTRY_ISO_3166(Seychelles, "Seychelles"),
ENTRY_ISO_3166(Maldives, "Maldives"),
ENTRY_ISO_3166(Mauritius, "Mauritius"),
ENTRY_ISO_3166(Mayotte, "Mayotte"),
ENTRY_ISO_3166(Reunion, "Réunion"),
ENTRY_ISO_3166(Samoa, "Samoa"),
ENTRY_ISO_3166(NewZealand, "New Zealand"),
ENTRY_ISO_3166(Micronesia, "Micronesia, Federated States of"),
ENTRY_ISO_3166(Vanuatu, "Vanuatu"),
ENTRY_ISO_3166(Kiribati, "Kiribati"),
ENTRY_ISO_3166(TokelauCountry, "Tokelau"),
ENTRY_ISO_3166(Fiji, "Fiji"),
ENTRY_ISO_3166(TuvaluCountry, "Tuvalu"),
ENTRY_ISO_3166(FrenchPolynesia, "French Polynesia"),
ENTRY_ISO_3166(SolomonIslands, "Solomon Islands"),
ENTRY_ISO_3166(Guam, "Guam"),
ENTRY_ISO_3166(UnitedStatesMinorOutlyingIslands, "United States Minor Outlying Islands"),
ENTRY_ISO_3166(MarshallIslands, "Marshall Islands"),
ENTRY_ISO_3166(NauruCountry, "Nauru"),
ENTRY_ISO_3166(Niue, "Niue"),
ENTRY_ISO_3166(NorfolkIsland, "Norfolk Island"),
ENTRY_ISO_3166(NewCaledonia, "New Caledonia"),
ENTRY_ISO_3166(AmericanSamoa, "American Samoa"),
ENTRY_ISO_3166(Palau, "Palau"),
ENTRY_ISO_3166(Pitcairn, "Pitcairn"),
ENTRY_ISO_3166(PapuaNewGuinea, "Papua New Guinea"),
ENTRY_ISO_3166(CookIslands, "Cook Islands"),
ENTRY_ISO_3166(NorthernMarianaIslands, "Northern Mariana Islands"),
ENTRY_ISO_3166(Tonga, "Tonga"),
ENTRY_ISO_3166(WallisAndFutunaIslands, "Wallis and Futuna")
// {QLocale::Default, i18nc("This is a country name associated with a particular time zone in a zone selection dialog",
// "Default")} },
});
#undef ENTRY_ISO_3166
m_isInitialized = true;
}