2 * Copyright (C) 2015 Canonical Ltd.
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 3, as published
6 * by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranties of
10 * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11 * PURPOSE. See the GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program. If not, see <http://www.gnu.org/licenses/>.
22#include "LocalePlugin.h"
27 m_countryNames = QHash<QLocale::Country, QString>(
28 {{QLocale::IvoryCoast, gettext("Ivory Coast")},
29 {QLocale::Ghana, gettext("Ghana")},
30 {QLocale::Ethiopia, gettext("Ethiopia")},
31 {QLocale::Algeria, gettext("Algeria")},
32 {QLocale::Eritrea, gettext("Eritrea")},
33 {QLocale::Mali, gettext("Mali")},
34 {QLocale::CentralAfricanRepublic, gettext("Central African Republic")},
35 {QLocale::Gambia, gettext("Gambia")},
36 {QLocale::GuineaBissau, gettext("Guinea Bissau")},
37 {QLocale::Malawi, gettext("Malawi")},
38 {QLocale::CongoBrazzaville, gettext("Congo Brazzaville")},
39 {QLocale::Burundi, gettext("Burundi")},
40 {QLocale::Egypt, gettext("Egypt")},
41 {QLocale::Morocco, gettext("Morocco")},
42 {QLocale::Spain, gettext("Spain")},
43 {QLocale::Guinea, gettext("Guinea")},
44 {QLocale::Senegal, gettext("Senegal")},
45 {QLocale::Tanzania, gettext("Tanzania")},
46 {QLocale::Djibouti, gettext("Djibouti")},
47 {QLocale::Cameroon, gettext("Cameroon")},
48 {QLocale::WesternSahara, gettext("Western Sahara")},
49 {QLocale::SierraLeone, gettext("Sierra Leone")},
50 {QLocale::Botswana, gettext("Botswana")},
51 {QLocale::Zimbabwe, gettext("Zimbabwe")},
52 {QLocale::SouthAfrica, gettext("South Africa")},
53 {QLocale::SouthSudan, gettext("South Sudan")},
54 {QLocale::Uganda, gettext("Uganda")},
55 {QLocale::Sudan, gettext("Sudan")},
56 {QLocale::Rwanda, gettext("Rwanda")},
57 {QLocale::CongoKinshasa, gettext("Congo (Kinshasa)")},
58 {QLocale::Nigeria, gettext("Nigeria")},
59 {QLocale::Gabon, gettext("Gabon")},
60 {QLocale::Togo, gettext("Togo")},
61 {QLocale::Angola, gettext("Angola")},
62 {QLocale::Zambia, gettext("Zambia")},
63 {QLocale::EquatorialGuinea, gettext("Equatorial Guinea")},
64 {QLocale::Mozambique, gettext("Mozambique")},
65 {QLocale::Lesotho, gettext("Lesotho")},
66 {QLocale::Swaziland, gettext("Swaziland")},
67 {QLocale::Somalia, gettext("Somalia")},
68 {QLocale::Liberia, gettext("Liberia")},
69 {QLocale::Kenya, gettext("Kenya")},
70 {QLocale::Chad, gettext("Chad")},
71 {QLocale::Niger, gettext("Niger")},
72 {QLocale::Mauritania, gettext("Mauritania")},
73 {QLocale::BurkinaFaso, gettext("Burkina Faso")},
74 {QLocale::Benin, gettext("Benin")},
75 {QLocale::SaoTomeAndPrincipe, gettext("Sao Tome And Principe")},
76 {QLocale::Libya, gettext("Libya")},
77 {QLocale::Tunisia, gettext("Tunisia")},
78 {QLocale::Namibia, gettext("Namibia")},
79 {QLocale::UnitedStates, gettext("United States")},
80 {QLocale::Anguilla, gettext("Anguilla")},
81 {QLocale::AntiguaAndBarbuda, gettext("Antigua And Barbuda")},
82 {QLocale::Brazil, gettext("Brazil")},
83 {QLocale::Argentina, gettext("Argentina")},
84 {QLocale::Aruba, gettext("Aruba")},
85 {QLocale::Paraguay, gettext("Paraguay")},
86 {QLocale::Canada, gettext("Canada")},
87 {QLocale::Mexico, gettext("Mexico")},
88 {QLocale::Barbados, gettext("Barbados")},
89 {QLocale::Belize, gettext("Belize")},
90 {QLocale::Colombia, gettext("Colombia")},
91 {QLocale::Venezuela, gettext("Venezuela")},
92 {QLocale::FrenchGuiana, gettext("French Guiana")},
93 {QLocale::CaymanIslands, gettext("Cayman Islands")},
94 {QLocale::CostaRica, gettext("Costa Rica")},
95 {QLocale::CuraSao, gettext("Cura Sao")},
96 {QLocale::Greenland, gettext("Greenland")},
97 {QLocale::Dominica, gettext("Dominica")},
98 {QLocale::ElSalvador, gettext("El Salvador")},
99 {QLocale::TurksAndCaicosIslands, gettext("Turks And Caicos Islands")},
100 {QLocale::Grenada, gettext("Grenada")},
101 {QLocale::Guadeloupe, gettext("Guadeloupe")},
102 {QLocale::Guatemala, gettext("Guatemala")},
103 {QLocale::Ecuador, gettext("Ecuador")},
104 {QLocale::Guyana, gettext("Guyana")},
105 {QLocale::Cuba, gettext("Cuba")},
106 {QLocale::Jamaica, gettext("Jamaica")},
107 {QLocale::Bonaire, gettext("Bonaire")},
108 {QLocale::Bolivia, gettext("Bolivia")},
109 {QLocale::Peru, gettext("Peru")},
110 {QLocale::SintMaarten, gettext("Sint Maarten")},
111 {QLocale::Nicaragua, gettext("Nicaragua")},
112 {QLocale::SaintMartin, gettext("Saint Martin")},
113 {QLocale::Martinique, gettext("Martinique")},
114 {QLocale::SaintPierreAndMiquelon, gettext("Saint Pierre And Miquelon")},
115 {QLocale::Uruguay, gettext("Uruguay")},
116 {QLocale::Montserrat, gettext("Montserrat")},
117 {QLocale::Bahamas, gettext("Bahamas")},
118 {QLocale::Panama, gettext("Panama")},
119 {QLocale::Suriname, gettext("Suriname")},
120 {QLocale::Haiti, gettext("Haiti")},
121 {QLocale::TrinidadAndTobago, gettext("Trinidad And Tobago")},
122 {QLocale::PuertoRico, gettext("Puerto Rico")},
123 {QLocale::Chile, gettext("Chile")},
124 {QLocale::DominicanRepublic, gettext("Dominican Republic")},
125 {QLocale::SaintBarthelemy, gettext("Saint Barthelemy")},
126 {QLocale::SaintKittsAndNevis, gettext("Saint Kitts And Nevis")},
127 {QLocale::SaintLucia, gettext("Saint Lucia")},
128 {QLocale::UnitedStatesVirginIslands, gettext("United States Virgin Islands")},
129 {QLocale::SaintVincentAndTheGrenadines, gettext("Saint Vincent And The Grenadines")},
130 {QLocale::Honduras, gettext("Honduras")},
131 {QLocale::BritishVirginIslands, gettext("British Virgin Islands")},
132 {QLocale::Antarctica, gettext("Antarctica")},
133 {QLocale::Australia, gettext("Australia")},
134 {QLocale::SvalbardAndJanMayenIslands, gettext("Svalbard And Jan Mayen Islands")},
135 {QLocale::Yemen, gettext("Yemen")},
136 {QLocale::Kazakhstan, gettext("Kazakhstan")},
137 {QLocale::Jordan, gettext("Jordan")},
138 {QLocale::Russia, gettext("Russia")},
139 {QLocale::Turkmenistan, gettext("Turkmenistan")},
140 {QLocale::Iraq, gettext("Iraq")},
141 {QLocale::Bahrain, gettext("Bahrain")},
142 {QLocale::Azerbaijan, gettext("Azerbaijan")},
143 {QLocale::Thailand, gettext("Thailand")},
144 {QLocale::Lebanon, gettext("Lebanon")},
145 {QLocale::Kyrgyzstan, gettext("Kyrgyzstan")},
146 {QLocale::Brunei, gettext("Brunei")},
147 {QLocale::Mongolia, gettext("Mongolia")},
148 {QLocale::China, gettext("China")},
149 {QLocale::SriLanka, gettext("Sri Lanka")},
150 {QLocale::Syria, gettext("Syria")},
151 {QLocale::Bangladesh, gettext("Bangladesh")},
152 {QLocale::EastTimor, gettext("East Timor")},
153 {QLocale::UnitedArabEmirates, gettext("United Arab Emirates")},
154 {QLocale::Tajikistan, gettext("Tajikistan")},
155 {QLocale::PalestinianTerritories, gettext("Palestinian Territories")},
156 {QLocale::Vietnam, gettext("Vietnam")},
157 {QLocale::HongKong, gettext("Hong Kong")},
158 {QLocale::Indonesia, gettext("Indonesia")},
159 {QLocale::Israel, gettext("Israel")},
160 {QLocale::Afghanistan, gettext("Afghanistan")},
161 {QLocale::Pakistan, gettext("Pakistan")},
162 {QLocale::Nepal, gettext("Nepal")},
163 {QLocale::India, gettext("India")},
164 {QLocale::Malaysia, gettext("Malaysia")},
165 {QLocale::Kuwait, gettext("Kuwait")},
166 {QLocale::Macau, gettext("Macau")},
167 {QLocale::Philippines, gettext("Philippines")},
168 {QLocale::Oman, gettext("Oman")},
169 {QLocale::Cyprus, gettext("Cyprus")},
170 {QLocale::Cambodia, gettext("Cambodia")},
171 {QLocale::NorthKorea, gettext("North Korea")},
172 {QLocale::Qatar, gettext("Qatar")},
173 {QLocale::Myanmar, gettext("Myanmar")},
174 {QLocale::SaudiArabia, gettext("Saudi Arabia")},
175 {QLocale::Uzbekistan, gettext("Uzbekistan")},
176 {QLocale::SouthKorea, gettext("South Korea")},
177 {QLocale::Singapore, gettext("Singapore")},
178 {QLocale::Taiwan, gettext("Taiwan")},
179 {QLocale::Georgia, gettext("Georgia")},
180 {QLocale::Iran, gettext("Iran")},
181 {QLocale::Bhutan, gettext("Bhutan")},
182 {QLocale::Japan, gettext("Japan")},
183 {QLocale::Laos, gettext("Laos")},
184 {QLocale::Armenia, gettext("Armenia")},
185 {QLocale::Portugal, gettext("Portugal")},
186 {QLocale::Bermuda, gettext("Bermuda")},
187 {QLocale::CapeVerde, gettext("Cape Verde")},
188 {QLocale::FaroeIslands, gettext("Faroe Islands")},
189 {QLocale::Iceland, gettext("Iceland")},
190 {QLocale::SouthGeorgiaAndTheSouthSandwichIslands, gettext("South Georgia And The South Sandwich Islands")},
191 {QLocale::SaintHelena, gettext("Saint Helena")},
192 {QLocale::FalklandIslands, gettext("Falkland Islands")},
193 {QLocale::Netherlands, gettext("Netherlands")},
194 {QLocale::Andorra, gettext("Andorra")},
195 {QLocale::Greece, gettext("Greece")},
196 {QLocale::Serbia, gettext("Serbia")},
197 {QLocale::Germany, gettext("Germany")},
198 {QLocale::Slovakia, gettext("Slovakia")},
199 {QLocale::Belgium, gettext("Belgium")},
200 {QLocale::Romania, gettext("Romania")},
201 {QLocale::Hungary, gettext("Hungary")},
202 {QLocale::Moldova, gettext("Moldova")},
203 {QLocale::Denmark, gettext("Denmark")},
204 {QLocale::Ireland, gettext("Ireland")},
205 {QLocale::Gibraltar, gettext("Gibraltar")},
206 {QLocale::Guernsey, gettext("Guernsey")},
207 {QLocale::Finland, gettext("Finland")},
208 {QLocale::IsleOfMan, gettext("Isle Of Man")},
209 {QLocale::Turkey, gettext("Turkey")},
210 {QLocale::Jersey, gettext("Jersey")},
211 {QLocale::Ukraine, gettext("Ukraine")},
212 {QLocale::Slovenia, gettext("Slovenia")},
213 {QLocale::UnitedKingdom, gettext("United Kingdom")},
214 {QLocale::Luxembourg, gettext("Luxembourg")},
215 {QLocale::Malta, gettext("Malta")},
216 {QLocale::AlandIslands, gettext("Aland Islands")},
217 {QLocale::Belarus, gettext("Belarus")},
218 {QLocale::Monaco, gettext("Monaco")},
219 {QLocale::Norway, gettext("Norway")},
220 {QLocale::France, gettext("France")},
221 {QLocale::Montenegro, gettext("Montenegro")},
222 {QLocale::CzechRepublic, gettext("Czech Republic")},
223 {QLocale::Latvia, gettext("Latvia")},
224 {QLocale::Italy, gettext("Italy")},
225 {QLocale::SanMarino, gettext("San Marino")},
226 {QLocale::BosniaAndHerzegowina, gettext("Bosnia And Herzegowina")},
227 {QLocale::Macedonia, gettext("Macedonia")},
228 {QLocale::Bulgaria, gettext("Bulgaria")},
229 {QLocale::Sweden, gettext("Sweden")},
230 {QLocale::Estonia, gettext("Estonia")},
231 {QLocale::Albania, gettext("Albania")},
232 {QLocale::Liechtenstein, gettext("Liechtenstein")},
233 {QLocale::VaticanCityState, gettext("Vatican City State")},
234 {QLocale::Austria, gettext("Austria")},
235 {QLocale::Lithuania, gettext("Lithuania")},
236 {QLocale::Poland, gettext("Poland")},
237 {QLocale::Croatia, gettext("Croatia")},
238 {QLocale::Switzerland, gettext("Switzerland")},
239 {QLocale::Madagascar, gettext("Madagascar")},
240 {QLocale::BritishIndianOceanTerritory, gettext("British Indian Ocean Territory")},
241 {QLocale::ChristmasIsland, gettext("ChristmasIsland")},
242 {QLocale::CocosIslands, gettext("CocosIslands")},
243 {QLocale::Comoros, gettext("Comoros")},
244 {QLocale::FrenchSouthernTerritories, gettext("French Southern Territories")},
245 {QLocale::Seychelles, gettext("Seychelles")},
246 {QLocale::Maldives, gettext("Maldives")},
247 {QLocale::Mauritius, gettext("Mauritius")},
248 {QLocale::Mayotte, gettext("Mayotte")},
249 {QLocale::Reunion, gettext("Reunion")},
250 {QLocale::Samoa, gettext("Samoa")},
251 {QLocale::NewZealand, gettext("New Zealand")},
252 {QLocale::Micronesia, gettext("Micronesia")},
253 {QLocale::Vanuatu, gettext("Vanuatu")},
254 {QLocale::Kiribati, gettext("Kiribati")},
255 {QLocale::Tokelau, gettext("Tokelau")},
256 {QLocale::Fiji, gettext("Fiji")},
257 {QLocale::Tuvalu, gettext("Tuvalu")},
258 {QLocale::FrenchPolynesia, gettext("French Polynesia")},
259 {QLocale::SolomonIslands, gettext("Solomon Islands")},
260 {QLocale::Guam, gettext("Guam")},
261 {QLocale::UnitedStatesMinorOutlyingIslands, gettext("United States Minor Outlying Islands")},
262 {QLocale::MarshallIslands, gettext("Marshall Islands")},
263 {QLocale::NauruCountry, gettext("Nauru")},
264 {QLocale::Niue, gettext("Niue")},
265 {QLocale::NorfolkIsland, gettext("Norfolk Island")},
266 {QLocale::NewCaledonia, gettext("New Caledonia")},
267 {QLocale::AmericanSamoa, gettext("American Samoa")},
268 {QLocale::Palau, gettext("Palau")},
269 {QLocale::Pitcairn, gettext("Pitcairn")},
270 {QLocale::PapuaNewGuinea, gettext("Papua New Guinea")},
271 {QLocale::CookIslands, gettext("Cook Islands")},
272 {QLocale::NorthernMarianaIslands, gettext("Northern Mariana Islands")},
273 {QLocale::Tonga, gettext("Tonga")},
274 {QLocale::Kosovo, gettext("Kosovo")},
275 {QLocale::WallisAndFutunaIslands, gettext("Wallis And Futuna Islands")} });
277 m_mccCodes = QHash<int, QString>
512 QString countryToString(QLocale::Country c) const {
513 return m_countryNames.value(c);
516 QString mccToCountryCode(int mcc) const {
517 return m_mccCodes.value(mcc, "us").toUpper();
521 QHash<QLocale::Country, QString> m_countryNames;
522 QHash<int,QString> m_mccCodes;
525Q_GLOBAL_STATIC(LocalePrivate, d)
527LocaleAttached::LocaleAttached(QObject* parent)
532QJsonObject LocaleAttached::languages() const
536 const QList<QLocale> allLocales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyCountry);
537 Q_FOREACH(const QLocale &loc, allLocales) {
538 result.insert(loc.name().split('_').first(), loc.nativeLanguageName());
544QJsonObject LocaleAttached::countriesForLanguage(const QString &code) const
547 const QList<QLocale> allLocales = QLocale::matchingLocales(tmp.language(), QLocale::AnyScript, QLocale::AnyCountry);
549 Q_FOREACH(const QLocale &loc, allLocales) {
550 const QString countryCode = loc.name().section('_', 1, 1);
551 //qDebug() << "Matching country:" << countryCode;
552 if (!countryCode.isEmpty()) {
553 result.insert(countryCode, d->countryToString(loc.country()));
559QJsonObject LocaleAttached::countries() const
561 const QList<QLocale> allLocales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyCountry);
564 Q_FOREACH(const QLocale &loc, allLocales) {
565 const QString countryCode = loc.name().section('_', 1, 1);
566 if (countryCode.length() == 2) {
567 result.insert(countryCode, d->countryToString(loc.country()));
574QString LocaleAttached::countryToString(QLocale::Country c)
576 return d->countryToString(c);
579QString LocaleAttached::qlocToCountryCode(QLocale::Country c)
581 const QList<QLocale> locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, c);
582 if (!locales.isEmpty()) {
583 return locales.first().name().section('_', 1, 1);
589QString LocaleAttached::mccToCountryCode(int mcc) const
591 return d->mccToCountryCode(mcc);
594LocalePlugin::LocalePlugin(QObject* parent)
599LocaleAttached* LocalePlugin::qmlAttachedProperties(QObject* parent)
601 return new LocaleAttached(parent);
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list