From 3ee384f36c02499a507ed4cb878f69934733c2bc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 Nov 2019 17:57:54 +0100 Subject: [PATCH 001/101] [libcalamares] Extract zone.tab data for translations --- src/libcalamares/locale/zone-extractor.py | 105 ++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/libcalamares/locale/zone-extractor.py diff --git a/src/libcalamares/locale/zone-extractor.py b/src/libcalamares/locale/zone-extractor.py new file mode 100644 index 000000000..3622534da --- /dev/null +++ b/src/libcalamares/locale/zone-extractor.py @@ -0,0 +1,105 @@ +#! /usr/bin/env python3 +# +# === This file is part of Calamares - === +# +# Python3 script to scrape some data out of zoneinfo/zone.tab. +# +### BEGIN LICENSES +# +# Copyright 2019 Adriaan de Groot +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +### END LICENSES + +### BEGIN USAGE +# +""" +Python3 script to scrape some data out of zoneinfo/zone.tab. + +To use this script, you must have a zone.tab in a standard location. +FreeBSD uses /usr/share/zoneinfo/zone.tab, so that's where it looks. + +Prints out a few tables of zone names for use in translations. +""" + +def scrape_file(file, regionset, zoneset): + for line in file.readlines(): + if line.startswith("#"): + continue + parts = line.split("\t") + if len(parts) < 3: + continue + + zoneid = parts[2] + if not "/" in zoneid: + continue + + region, zone = zoneid.split("/", 1) + + zone = zone.strip().replace("_", " ") + + regionset.add(region) + assert(zone not in zoneset) + zoneset.add(zone) + +def write_set(file, label, set): + file.write("/* This returns a reference to local, which is a terrible idea.\n * Good thing it's not meant to be compiled.\n */\n") + # Note {{ is an escaped { for Python string formatting + file.write("static const QStringList& {!s}_table()\n{{\n\treturn QStringList {{\n".format(label)) + for x in set: + file.write("""\t\tQObject::tr("{!s}", "{!s}"),\n""".format(x, label)) + file.write("\t\tQString()\n\t};\n}\n\n") + +cpp_header_comment = """/* GENERATED FILE DO NOT EDIT +* +* === This file is part of Calamares - === +* +* This file is derived from zone.tab, which has its own copyright statement: +* +* This file is in the public domain, so clarified as of +* 2009-05-17 by Arthur David Olson. +* +* From Paul Eggert (2018-06-27): +* This file is intended as a backward-compatibility aid for older programs. +* New programs should use zone1970.tab. This file is like zone1970.tab (see +* zone1970.tab's comments), but with the following additional restrictions: +* +* 1. This file contains only ASCII characters. +* 2. The first data column contains exactly one country code. +* +*/ + +/** THIS FILE EXISTS ONLY FOR TRANSLATIONS PURPOSES **/ +""" + +if __name__ == "__main__": + regions=set() + zones=set() + with open("/usr/share/zoneinfo/zone.tab", "r") as f: + scrape_file(f, regions, zones) + with open("ZoneData_p.cpp", "w") as f: + f.write(cpp_header_comment) + write_set(f, "tz_regions", regions) + write_set(f, "tz_names", zones) + From 5fbae8213db2a0e1897d11d35405a9e6ddacad60 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 Nov 2019 18:02:02 +0100 Subject: [PATCH 002/101] CI: fix Qt version-selection for FreeBSD when calling lupdate --- ci/txpush.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/txpush.sh b/ci/txpush.sh index 84166fac6..f3442f0e5 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -39,6 +39,9 @@ fi # sources, then push to Transifex export QT_SELECT=5 +lupdate -version > /dev/null 2>&1 || export QT_SELECT=qt5 +lupdate -version > /dev/null 2>&1 || { echo "! No working lupdate" ; lupdate -version ; exit 1 ; } + # Don't pull branding translations in, # those are done separately. _srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml" From 2034dd62a4da779fe8166dedffaea499c0a7877e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 Nov 2019 18:06:00 +0100 Subject: [PATCH 003/101] [libcalamares]: Timezone information for translation/extraction SEE #1259 --- src/libcalamares/locale/ZoneData_p.cpp | 475 +++++++++++++++++++++++++ 1 file changed, 475 insertions(+) create mode 100644 src/libcalamares/locale/ZoneData_p.cpp diff --git a/src/libcalamares/locale/ZoneData_p.cpp b/src/libcalamares/locale/ZoneData_p.cpp new file mode 100644 index 000000000..cb798963d --- /dev/null +++ b/src/libcalamares/locale/ZoneData_p.cpp @@ -0,0 +1,475 @@ +/* GENERATED FILE DO NOT EDIT +* +* === This file is part of Calamares - === +* +* This file is derived from zone.tab, which has its own copyright statement: +* +* This file is in the public domain, so clarified as of +* 2009-05-17 by Arthur David Olson. +* +* From Paul Eggert (2018-06-27): +* This file is intended as a backward-compatibility aid for older programs. +* New programs should use zone1970.tab. This file is like zone1970.tab (see +* zone1970.tab's comments), but with the following additional restrictions: +* +* 1. This file contains only ASCII characters. +* 2. The first data column contains exactly one country code. +* +*/ + +/** THIS FILE EXISTS ONLY FOR TRANSLATIONS PURPOSES **/ +/* This returns a reference to local, which is a terrible idea. + * Good thing it's not meant to be compiled. + */ +static const QStringList& tz_regions_table() +{ + return QStringList { + QObject::tr("Arctic", "tz_regions"), + QObject::tr("Pacific", "tz_regions"), + QObject::tr("Asia", "tz_regions"), + QObject::tr("Antarctica", "tz_regions"), + QObject::tr("America", "tz_regions"), + QObject::tr("Europe", "tz_regions"), + QObject::tr("Australia", "tz_regions"), + QObject::tr("Africa", "tz_regions"), + QObject::tr("Atlantic", "tz_regions"), + QObject::tr("Indian", "tz_regions"), + QString() + }; +} + +/* This returns a reference to local, which is a terrible idea. + * Good thing it's not meant to be compiled. + */ +static const QStringList& tz_names_table() +{ + return QStringList { + QObject::tr("Dhaka", "tz_names"), + QObject::tr("Palau", "tz_names"), + QObject::tr("Havana", "tz_names"), + QObject::tr("Busingen", "tz_names"), + QObject::tr("Tbilisi", "tz_names"), + QObject::tr("Guam", "tz_names"), + QObject::tr("Indiana/Winamac", "tz_names"), + QObject::tr("Indiana/Petersburg", "tz_names"), + QObject::tr("Macquarie", "tz_names"), + QObject::tr("Antigua", "tz_names"), + QObject::tr("Windhoek", "tz_names"), + QObject::tr("Barnaul", "tz_names"), + QObject::tr("Sarajevo", "tz_names"), + QObject::tr("Porto-Novo", "tz_names"), + QObject::tr("Ceuta", "tz_names"), + QObject::tr("Cambridge Bay", "tz_names"), + QObject::tr("Belize", "tz_names"), + QObject::tr("Port-au-Prince", "tz_names"), + QObject::tr("Baku", "tz_names"), + QObject::tr("Amsterdam", "tz_names"), + QObject::tr("Detroit", "tz_names"), + QObject::tr("Accra", "tz_names"), + QObject::tr("Indiana/Marengo", "tz_names"), + QObject::tr("Panama", "tz_names"), + QObject::tr("Argentina/Tucuman", "tz_names"), + QObject::tr("Reunion", "tz_names"), + QObject::tr("Beirut", "tz_names"), + QObject::tr("Dawson", "tz_names"), + QObject::tr("Bangui", "tz_names"), + QObject::tr("Punta Arenas", "tz_names"), + QObject::tr("Maldives", "tz_names"), + QObject::tr("Khartoum", "tz_names"), + QObject::tr("Argentina/La Rioja", "tz_names"), + QObject::tr("Porto Velho", "tz_names"), + QObject::tr("Wake", "tz_names"), + QObject::tr("Stockholm", "tz_names"), + QObject::tr("New York", "tz_names"), + QObject::tr("Chicago", "tz_names"), + QObject::tr("Madeira", "tz_names"), + QObject::tr("Vladivostok", "tz_names"), + QObject::tr("Argentina/Rio Gallegos", "tz_names"), + QObject::tr("Kirov", "tz_names"), + QObject::tr("Guernsey", "tz_names"), + QObject::tr("Cayenne", "tz_names"), + QObject::tr("Niamey", "tz_names"), + QObject::tr("Managua", "tz_names"), + QObject::tr("Ashgabat", "tz_names"), + QObject::tr("Addis Ababa", "tz_names"), + QObject::tr("Nauru", "tz_names"), + QObject::tr("Guyana", "tz_names"), + QObject::tr("Damascus", "tz_names"), + QObject::tr("Volgograd", "tz_names"), + QObject::tr("Kerguelen", "tz_names"), + QObject::tr("Fort Nelson", "tz_names"), + QObject::tr("Bahia Banderas", "tz_names"), + QObject::tr("Cayman", "tz_names"), + QObject::tr("Astrakhan", "tz_names"), + QObject::tr("Wallis", "tz_names"), + QObject::tr("Anadyr", "tz_names"), + QObject::tr("Fortaleza", "tz_names"), + QObject::tr("Thule", "tz_names"), + QObject::tr("Palmer", "tz_names"), + QObject::tr("Harare", "tz_names"), + QObject::tr("Araguaina", "tz_names"), + QObject::tr("Chagos", "tz_names"), + QObject::tr("Reykjavik", "tz_names"), + QObject::tr("Auckland", "tz_names"), + QObject::tr("Melbourne", "tz_names"), + QObject::tr("Mawson", "tz_names"), + QObject::tr("Miquelon", "tz_names"), + QObject::tr("Eirunepe", "tz_names"), + QObject::tr("Argentina/Salta", "tz_names"), + QObject::tr("Ndjamena", "tz_names"), + QObject::tr("Warsaw", "tz_names"), + QObject::tr("Brussels", "tz_names"), + QObject::tr("Hobart", "tz_names"), + QObject::tr("Kampala", "tz_names"), + QObject::tr("Jerusalem", "tz_names"), + QObject::tr("Vatican", "tz_names"), + QObject::tr("Kolkata", "tz_names"), + QObject::tr("Dakar", "tz_names"), + QObject::tr("Merida", "tz_names"), + QObject::tr("Moncton", "tz_names"), + QObject::tr("Riyadh", "tz_names"), + QObject::tr("Pohnpei", "tz_names"), + QObject::tr("Funafuti", "tz_names"), + QObject::tr("Krasnoyarsk", "tz_names"), + QObject::tr("Belem", "tz_names"), + QObject::tr("Rome", "tz_names"), + QObject::tr("Oral", "tz_names"), + QObject::tr("Sakhalin", "tz_names"), + QObject::tr("Moscow", "tz_names"), + QObject::tr("Anchorage", "tz_names"), + QObject::tr("Argentina/Cordoba", "tz_names"), + QObject::tr("Bucharest", "tz_names"), + QObject::tr("Nome", "tz_names"), + QObject::tr("La Paz", "tz_names"), + QObject::tr("Scoresbysund", "tz_names"), + QObject::tr("Adelaide", "tz_names"), + QObject::tr("Barbados", "tz_names"), + QObject::tr("Casey", "tz_names"), + QObject::tr("Seoul", "tz_names"), + QObject::tr("Tarawa", "tz_names"), + QObject::tr("Chatham", "tz_names"), + QObject::tr("Vostok", "tz_names"), + QObject::tr("Bishkek", "tz_names"), + QObject::tr("Inuvik", "tz_names"), + QObject::tr("Baghdad", "tz_names"), + QObject::tr("Whitehorse", "tz_names"), + QObject::tr("Resolute", "tz_names"), + QObject::tr("Syowa", "tz_names"), + QObject::tr("Regina", "tz_names"), + QObject::tr("Saratov", "tz_names"), + QObject::tr("North Dakota/Beulah", "tz_names"), + QObject::tr("Santo Domingo", "tz_names"), + QObject::tr("Lindeman", "tz_names"), + QObject::tr("Magadan", "tz_names"), + QObject::tr("Efate", "tz_names"), + QObject::tr("Bermuda", "tz_names"), + QObject::tr("Maceio", "tz_names"), + QObject::tr("Tashkent", "tz_names"), + QObject::tr("Qyzylorda", "tz_names"), + QObject::tr("Madrid", "tz_names"), + QObject::tr("Costa Rica", "tz_names"), + QObject::tr("Antananarivo", "tz_names"), + QObject::tr("Lima", "tz_names"), + QObject::tr("Kigali", "tz_names"), + QObject::tr("Marquesas", "tz_names"), + QObject::tr("Halifax", "tz_names"), + QObject::tr("Copenhagen", "tz_names"), + QObject::tr("Comoro", "tz_names"), + QObject::tr("Anguilla", "tz_names"), + QObject::tr("Kralendijk", "tz_names"), + QObject::tr("Sydney", "tz_names"), + QObject::tr("Yakutat", "tz_names"), + QObject::tr("Aqtau", "tz_names"), + QObject::tr("Brunei", "tz_names"), + QObject::tr("Vientiane", "tz_names"), + QObject::tr("Rainy River", "tz_names"), + QObject::tr("Bogota", "tz_names"), + QObject::tr("Port of Spain", "tz_names"), + QObject::tr("Rankin Inlet", "tz_names"), + QObject::tr("Pyongyang", "tz_names"), + QObject::tr("Bamako", "tz_names"), + QObject::tr("Samarkand", "tz_names"), + QObject::tr("Srednekolymsk", "tz_names"), + QObject::tr("Nicosia", "tz_names"), + QObject::tr("Iqaluit", "tz_names"), + QObject::tr("Yakutsk", "tz_names"), + QObject::tr("Cape Verde", "tz_names"), + QObject::tr("Zagreb", "tz_names"), + QObject::tr("Indiana/Knox", "tz_names"), + QObject::tr("Djibouti", "tz_names"), + QObject::tr("Grand Turk", "tz_names"), + QObject::tr("Hong Kong", "tz_names"), + QObject::tr("Monrovia", "tz_names"), + QObject::tr("Pitcairn", "tz_names"), + QObject::tr("El Aaiun", "tz_names"), + QObject::tr("Kuala Lumpur", "tz_names"), + QObject::tr("Kuwait", "tz_names"), + QObject::tr("Christmas", "tz_names"), + QObject::tr("Stanley", "tz_names"), + QObject::tr("Gambier", "tz_names"), + QObject::tr("Phnom Penh", "tz_names"), + QObject::tr("Sofia", "tz_names"), + QObject::tr("Longyearbyen", "tz_names"), + QObject::tr("St Helena", "tz_names"), + QObject::tr("Singapore", "tz_names"), + QObject::tr("Nipigon", "tz_names"), + QObject::tr("Zaporozhye", "tz_names"), + QObject::tr("Adak", "tz_names"), + QObject::tr("El Salvador", "tz_names"), + QObject::tr("Fakaofo", "tz_names"), + QObject::tr("Samara", "tz_names"), + QObject::tr("Makassar", "tz_names"), + QObject::tr("St Johns", "tz_names"), + QObject::tr("Tehran", "tz_names"), + QObject::tr("Almaty", "tz_names"), + QObject::tr("Hovd", "tz_names"), + QObject::tr("Tortola", "tz_names"), + QObject::tr("Bangkok", "tz_names"), + QObject::tr("Nassau", "tz_names"), + QObject::tr("Tunis", "tz_names"), + QObject::tr("Omsk", "tz_names"), + QObject::tr("Tokyo", "tz_names"), + QObject::tr("Casablanca", "tz_names"), + QObject::tr("Karachi", "tz_names"), + QObject::tr("McMurdo", "tz_names"), + QObject::tr("Tallinn", "tz_names"), + QObject::tr("Marigot", "tz_names"), + QObject::tr("Macau", "tz_names"), + QObject::tr("San Marino", "tz_names"), + QObject::tr("Denver", "tz_names"), + QObject::tr("Darwin", "tz_names"), + QObject::tr("Pangnirtung", "tz_names"), + QObject::tr("Chita", "tz_names"), + QObject::tr("Zurich", "tz_names"), + QObject::tr("Ulyanovsk", "tz_names"), + QObject::tr("Bissau", "tz_names"), + QObject::tr("Lagos", "tz_names"), + QObject::tr("Kuching", "tz_names"), + QObject::tr("Monaco", "tz_names"), + QObject::tr("Davis", "tz_names"), + QObject::tr("Argentina/Jujuy", "tz_names"), + QObject::tr("Recife", "tz_names"), + QObject::tr("Colombo", "tz_names"), + QObject::tr("Banjul", "tz_names"), + QObject::tr("Mauritius", "tz_names"), + QObject::tr("Creston", "tz_names"), + QObject::tr("Malta", "tz_names"), + QObject::tr("Argentina/Buenos Aires", "tz_names"), + QObject::tr("Vienna", "tz_names"), + QObject::tr("Skopje", "tz_names"), + QObject::tr("Swift Current", "tz_names"), + QObject::tr("Urumqi", "tz_names"), + QObject::tr("Guatemala", "tz_names"), + QObject::tr("Argentina/Mendoza", "tz_names"), + QObject::tr("Phoenix", "tz_names"), + QObject::tr("Asmara", "tz_names"), + QObject::tr("Noumea", "tz_names"), + QObject::tr("Boise", "tz_names"), + QObject::tr("Novokuznetsk", "tz_names"), + QObject::tr("Brazzaville", "tz_names"), + QObject::tr("Isle of Man", "tz_names"), + QObject::tr("Tegucigalpa", "tz_names"), + QObject::tr("Troll", "tz_names"), + QObject::tr("Glace Bay", "tz_names"), + QObject::tr("Yangon", "tz_names"), + QObject::tr("Conakry", "tz_names"), + QObject::tr("Aden", "tz_names"), + QObject::tr("Mayotte", "tz_names"), + QObject::tr("Grenada", "tz_names"), + QObject::tr("Mogadishu", "tz_names"), + QObject::tr("Sitka", "tz_names"), + QObject::tr("Kwajalein", "tz_names"), + QObject::tr("Pontianak", "tz_names"), + QObject::tr("Uzhgorod", "tz_names"), + QObject::tr("Ust-Nera", "tz_names"), + QObject::tr("Nairobi", "tz_names"), + QObject::tr("Saipan", "tz_names"), + QObject::tr("Sao Paulo", "tz_names"), + QObject::tr("Gaza", "tz_names"), + QObject::tr("Jakarta", "tz_names"), + QObject::tr("Godthab", "tz_names"), + QObject::tr("Choibalsan", "tz_names"), + QObject::tr("Jersey", "tz_names"), + QObject::tr("Tripoli", "tz_names"), + QObject::tr("Blantyre", "tz_names"), + QObject::tr("Freetown", "tz_names"), + QObject::tr("Andorra", "tz_names"), + QObject::tr("Danmarkshavn", "tz_names"), + QObject::tr("Los Angeles", "tz_names"), + QObject::tr("Caracas", "tz_names"), + QObject::tr("Oslo", "tz_names"), + QObject::tr("Rothera", "tz_names"), + QObject::tr("Budapest", "tz_names"), + QObject::tr("St Lucia", "tz_names"), + QObject::tr("Indiana/Indianapolis", "tz_names"), + QObject::tr("Paris", "tz_names"), + QObject::tr("Yerevan", "tz_names"), + QObject::tr("St Barthelemy", "tz_names"), + QObject::tr("Cuiaba", "tz_names"), + QObject::tr("Asuncion", "tz_names"), + QObject::tr("Manila", "tz_names"), + QObject::tr("Edmonton", "tz_names"), + QObject::tr("Vancouver", "tz_names"), + QObject::tr("Tongatapu", "tz_names"), + QObject::tr("Bahrain", "tz_names"), + QObject::tr("Kinshasa", "tz_names"), + QObject::tr("Mariehamn", "tz_names"), + QObject::tr("Kosrae", "tz_names"), + QObject::tr("Luanda", "tz_names"), + QObject::tr("Tirane", "tz_names"), + QObject::tr("Manaus", "tz_names"), + QObject::tr("Helsinki", "tz_names"), + QObject::tr("Chihuahua", "tz_names"), + QObject::tr("Khandyga", "tz_names"), + QObject::tr("Mexico City", "tz_names"), + QObject::tr("Prague", "tz_names"), + QObject::tr("Atyrau", "tz_names"), + QObject::tr("Jayapura", "tz_names"), + QObject::tr("Novosibirsk", "tz_names"), + QObject::tr("Eucla", "tz_names"), + QObject::tr("Vilnius", "tz_names"), + QObject::tr("Dublin", "tz_names"), + QObject::tr("Luxembourg", "tz_names"), + QObject::tr("Johannesburg", "tz_names"), + QObject::tr("Yellowknife", "tz_names"), + QObject::tr("Norfolk", "tz_names"), + QObject::tr("Menominee", "tz_names"), + QObject::tr("Dushanbe", "tz_names"), + QObject::tr("Noronha", "tz_names"), + QObject::tr("Kathmandu", "tz_names"), + QObject::tr("Shanghai", "tz_names"), + QObject::tr("Goose Bay", "tz_names"), + QObject::tr("Amman", "tz_names"), + QObject::tr("Santiago", "tz_names"), + QObject::tr("Campo Grande", "tz_names"), + QObject::tr("Dili", "tz_names"), + QObject::tr("Nouakchott", "tz_names"), + QObject::tr("Bahia", "tz_names"), + QObject::tr("Guadalcanal", "tz_names"), + QObject::tr("Simferopol", "tz_names"), + QObject::tr("Douala", "tz_names"), + QObject::tr("Dar es Salaam", "tz_names"), + QObject::tr("Bratislava", "tz_names"), + QObject::tr("Minsk", "tz_names"), + QObject::tr("Indiana/Vevay", "tz_names"), + QObject::tr("Cairo", "tz_names"), + QObject::tr("Winnipeg", "tz_names"), + QObject::tr("Kiev", "tz_names"), + QObject::tr("Broken Hill", "tz_names"), + QObject::tr("Montserrat", "tz_names"), + QObject::tr("Perth", "tz_names"), + QObject::tr("Ljubljana", "tz_names"), + QObject::tr("Lisbon", "tz_names"), + QObject::tr("Majuro", "tz_names"), + QObject::tr("North Dakota/Center", "tz_names"), + QObject::tr("Lome", "tz_names"), + QObject::tr("DumontDUrville", "tz_names"), + QObject::tr("Argentina/Ushuaia", "tz_names"), + QObject::tr("Atikokan", "tz_names"), + QObject::tr("Lubumbashi", "tz_names"), + QObject::tr("Santarem", "tz_names"), + QObject::tr("Riga", "tz_names"), + QObject::tr("Kamchatka", "tz_names"), + QObject::tr("Aruba", "tz_names"), + QObject::tr("Azores", "tz_names"), + QObject::tr("Maseru", "tz_names"), + QObject::tr("Faroe", "tz_names"), + QObject::tr("Niue", "tz_names"), + QObject::tr("Gaborone", "tz_names"), + QObject::tr("Port Moresby", "tz_names"), + QObject::tr("Cocos", "tz_names"), + QObject::tr("Blanc-Sablon", "tz_names"), + QObject::tr("Argentina/San Luis", "tz_names"), + QObject::tr("Mahe", "tz_names"), + QObject::tr("Kentucky/Monticello", "tz_names"), + QObject::tr("Galapagos", "tz_names"), + QObject::tr("South Georgia", "tz_names"), + QObject::tr("Ho Chi Minh", "tz_names"), + QObject::tr("Kiritimati", "tz_names"), + QObject::tr("Mazatlan", "tz_names"), + QObject::tr("Argentina/Catamarca", "tz_names"), + QObject::tr("St Kitts", "tz_names"), + QObject::tr("Kentucky/Louisville", "tz_names"), + QObject::tr("Bougainville", "tz_names"), + QObject::tr("Lower Princes", "tz_names"), + QObject::tr("Pago Pago", "tz_names"), + QObject::tr("Curacao", "tz_names"), + QObject::tr("Tahiti", "tz_names"), + QObject::tr("Irkutsk", "tz_names"), + QObject::tr("Thunder Bay", "tz_names"), + QObject::tr("Rio Branco", "tz_names"), + QObject::tr("Argentina/San Juan", "tz_names"), + QObject::tr("Paramaribo", "tz_names"), + QObject::tr("Libreville", "tz_names"), + QObject::tr("Lusaka", "tz_names"), + QObject::tr("Hebron", "tz_names"), + QObject::tr("Algiers", "tz_names"), + QObject::tr("Ojinaga", "tz_names"), + QObject::tr("Rarotonga", "tz_names"), + QObject::tr("Maputo", "tz_names"), + QObject::tr("Honolulu", "tz_names"), + QObject::tr("Brisbane", "tz_names"), + QObject::tr("Ulaanbaatar", "tz_names"), + QObject::tr("Chuuk", "tz_names"), + QObject::tr("Aqtobe", "tz_names"), + QObject::tr("Guayaquil", "tz_names"), + QObject::tr("Canary", "tz_names"), + QObject::tr("Mbabane", "tz_names"), + QObject::tr("Abidjan", "tz_names"), + QObject::tr("Muscat", "tz_names"), + QObject::tr("Apia", "tz_names"), + QObject::tr("North Dakota/New Salem", "tz_names"), + QObject::tr("Istanbul", "tz_names"), + QObject::tr("Belgrade", "tz_names"), + QObject::tr("Juba", "tz_names"), + QObject::tr("Midway", "tz_names"), + QObject::tr("Berlin", "tz_names"), + QObject::tr("Martinique", "tz_names"), + QObject::tr("Indiana/Vincennes", "tz_names"), + QObject::tr("Athens", "tz_names"), + QObject::tr("Ouagadougou", "tz_names"), + QObject::tr("Podgorica", "tz_names"), + QObject::tr("Sao Tome", "tz_names"), + QObject::tr("Vaduz", "tz_names"), + QObject::tr("Qatar", "tz_names"), + QObject::tr("Cancun", "tz_names"), + QObject::tr("Taipei", "tz_names"), + QObject::tr("Puerto Rico", "tz_names"), + QObject::tr("Metlakatla", "tz_names"), + QObject::tr("Jamaica", "tz_names"), + QObject::tr("Kaliningrad", "tz_names"), + QObject::tr("Enderbury", "tz_names"), + QObject::tr("Currie", "tz_names"), + QObject::tr("Thimphu", "tz_names"), + QObject::tr("Matamoros", "tz_names"), + QObject::tr("Montevideo", "tz_names"), + QObject::tr("Gibraltar", "tz_names"), + QObject::tr("Tijuana", "tz_names"), + QObject::tr("St Thomas", "tz_names"), + QObject::tr("London", "tz_names"), + QObject::tr("Yekaterinburg", "tz_names"), + QObject::tr("Easter", "tz_names"), + QObject::tr("Boa Vista", "tz_names"), + QObject::tr("Dawson Creek", "tz_names"), + QObject::tr("Hermosillo", "tz_names"), + QObject::tr("Famagusta", "tz_names"), + QObject::tr("Monterrey", "tz_names"), + QObject::tr("Dominica", "tz_names"), + QObject::tr("Guadeloupe", "tz_names"), + QObject::tr("Indiana/Tell City", "tz_names"), + QObject::tr("Dubai", "tz_names"), + QObject::tr("Malabo", "tz_names"), + QObject::tr("Bujumbura", "tz_names"), + QObject::tr("Fiji", "tz_names"), + QObject::tr("St Vincent", "tz_names"), + QObject::tr("Qostanay", "tz_names"), + QObject::tr("Tomsk", "tz_names"), + QObject::tr("Juneau", "tz_names"), + QObject::tr("Chisinau", "tz_names"), + QObject::tr("Lord Howe", "tz_names"), + QObject::tr("Kabul", "tz_names"), + QObject::tr("Toronto", "tz_names"), + QString() + }; +} + From 1df6454cfea949c15cab807605e81b7393e7a60f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 Nov 2019 10:52:22 +0100 Subject: [PATCH 004/101] [locale] Tidy up types - use JobList typedef where possible - remove unused forward type definitions --- src/modules/locale/LocalePage.cpp | 2 +- src/modules/locale/LocaleViewStep.cpp | 8 +++----- src/modules/locale/LocaleViewStep.h | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 7720a840c..fc715e3f3 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -301,7 +301,7 @@ LocalePage::prettyStatus() const } -QList< Calamares::job_ptr > +Calamares::JobList LocalePage::createJobs() { QList< Calamares::job_ptr > list; diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 4acfcb2de..4fa219065 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -142,7 +142,7 @@ LocaleViewStep::isAtEnd() const } -QList< Calamares::job_ptr > +Calamares::JobList LocaleViewStep::jobs() const { return m_jobs; @@ -163,12 +163,9 @@ LocaleViewStep::onActivate() void LocaleViewStep::onLeave() { - m_jobs.clear(); - if ( m_actualWidget ) { - m_jobs.append( m_actualWidget->createJobs() ); - + m_jobs = m_actualWidget->createJobs(); m_prettyStatus = m_actualWidget->prettyStatus(); auto map = m_actualWidget->localesMap(); @@ -182,6 +179,7 @@ LocaleViewStep::onLeave() } else { + m_jobs.clear(); Calamares::JobQueue::instance()->globalStorage()->remove( "localeConf" ); } } diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index ca8ecc3fa..eb8d64177 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -33,7 +33,6 @@ #include class LocalePage; -class WaitingWidget; class PLUGINDLLEXPORT LocaleViewStep : public Calamares::ViewStep { @@ -54,7 +53,7 @@ public: bool isAtBeginning() const override; bool isAtEnd() const override; - QList< Calamares::job_ptr > jobs() const override; + Calamares::JobList jobs() const override; void onActivate() override; void onLeave() override; @@ -78,7 +77,7 @@ private: CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; QString m_localeGenPath; - QList< Calamares::job_ptr > m_jobs; + Calamares::JobList m_jobs; std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; }; From 906aeec5d3f98ee485e2f534b75e1a54d438c5d7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 Nov 2019 11:49:41 +0100 Subject: [PATCH 005/101] [locale] Replace #define with a static const - TZ_DATA_FILE is only used in one place --- src/modules/locale/timezonewidget/localeconst.h | 1 - src/modules/locale/timezonewidget/localeglobal.cpp | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/locale/timezonewidget/localeconst.h b/src/modules/locale/timezonewidget/localeconst.h index 3bac6adde..2de1b0dac 100644 --- a/src/modules/locale/timezonewidget/localeconst.h +++ b/src/modules/locale/timezonewidget/localeconst.h @@ -25,7 +25,6 @@ #define LOCALESDIR "/usr/share/i18n/locales" -#define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab" #define USER_IMAGES_PATH "/usr/share/pixmaps/faces" diff --git a/src/modules/locale/timezonewidget/localeglobal.cpp b/src/modules/locale/timezonewidget/localeglobal.cpp index 6303ffdcb..683b2bebc 100644 --- a/src/modules/locale/timezonewidget/localeglobal.cpp +++ b/src/modules/locale/timezonewidget/localeglobal.cpp @@ -131,6 +131,8 @@ LocaleGlobal::initLocales() { void LocaleGlobal::initLocations() { + static const char TZ_DATA_FILE[] = "/usr/share/zoneinfo/zone.tab"; + locations.clear(); QFile file(TZ_DATA_FILE); From c3fdb3809786b2bfff8faf16f926ea752c3a139b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 Nov 2019 20:51:45 +0100 Subject: [PATCH 006/101] [libcalamares] Stub of class for TimeZone model management - Intent is to move out of locale module --- src/libcalamares/locale/TimeZone.h | 69 ++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/libcalamares/locale/TimeZone.h diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h new file mode 100644 index 000000000..b9102dff9 --- /dev/null +++ b/src/libcalamares/locale/TimeZone.h @@ -0,0 +1,69 @@ +/* === This file is part of Calamares - === + * + * Copyright 2019, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef LOCALE_TIMEZONE_H +#define LOCALE_TIMEZONE_H + +#include + +namespace CalamaresUtils +{ +namespace Locale +{ + +/** @brief A pair of strings, one human-readable, one a key + * + * Given an identifier-like string (e.g. "New_York"), makes + * a human-readable version of that and keeps a copy of the + * identifier itself. + * + * This explicitly uses const char* instead of just being + * QPair because there is API that needs + * C-style strings. + */ +class CStringPair +{ +public: + explicit CStringPair(const char *s1); + CStringPair(CStringPair&& t); + CStringPair(const CStringPair&) = delete; + ~CStringPair(); + +private: + const char* m_human = nullptr; + const char* m_key = nullptr; +}; + +/// @brief A pair of strings for timezone regions (e.g. "America") +class TZRegion : public CStringPair +{ +public: + using CStringPair::CStringPair; +}; + +/// @brief A pair of strings for specific timezone names (e.g. "New_York") +class TZZone : public CStringPair +{ +public: + using CStringPair::CStringPair; +}; + +} +} + +#endif // LOCALE_TIMEZONE_H From 733fb43b5ec57eb32120d8013dfe95bcd5b04664 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 26 Nov 2019 10:45:36 +0100 Subject: [PATCH 007/101] [libcalamares] Sort the dummy zone names --- src/libcalamares/locale/ZoneData_p.cpp | 848 +++++++++++----------- src/libcalamares/locale/zone-extractor.py | 6 +- 2 files changed, 427 insertions(+), 427 deletions(-) diff --git a/src/libcalamares/locale/ZoneData_p.cpp b/src/libcalamares/locale/ZoneData_p.cpp index cb798963d..f0b92f33f 100644 --- a/src/libcalamares/locale/ZoneData_p.cpp +++ b/src/libcalamares/locale/ZoneData_p.cpp @@ -24,16 +24,16 @@ static const QStringList& tz_regions_table() { return QStringList { - QObject::tr("Arctic", "tz_regions"), - QObject::tr("Pacific", "tz_regions"), - QObject::tr("Asia", "tz_regions"), - QObject::tr("Antarctica", "tz_regions"), - QObject::tr("America", "tz_regions"), - QObject::tr("Europe", "tz_regions"), - QObject::tr("Australia", "tz_regions"), QObject::tr("Africa", "tz_regions"), + QObject::tr("America", "tz_regions"), + QObject::tr("Antarctica", "tz_regions"), + QObject::tr("Arctic", "tz_regions"), + QObject::tr("Asia", "tz_regions"), QObject::tr("Atlantic", "tz_regions"), + QObject::tr("Australia", "tz_regions"), + QObject::tr("Europe", "tz_regions"), QObject::tr("Indian", "tz_regions"), + QObject::tr("Pacific", "tz_regions"), QString() }; } @@ -44,431 +44,431 @@ static const QStringList& tz_regions_table() static const QStringList& tz_names_table() { return QStringList { - QObject::tr("Dhaka", "tz_names"), - QObject::tr("Palau", "tz_names"), - QObject::tr("Havana", "tz_names"), - QObject::tr("Busingen", "tz_names"), - QObject::tr("Tbilisi", "tz_names"), - QObject::tr("Guam", "tz_names"), - QObject::tr("Indiana/Winamac", "tz_names"), - QObject::tr("Indiana/Petersburg", "tz_names"), - QObject::tr("Macquarie", "tz_names"), - QObject::tr("Antigua", "tz_names"), - QObject::tr("Windhoek", "tz_names"), - QObject::tr("Barnaul", "tz_names"), - QObject::tr("Sarajevo", "tz_names"), - QObject::tr("Porto-Novo", "tz_names"), - QObject::tr("Ceuta", "tz_names"), - QObject::tr("Cambridge Bay", "tz_names"), - QObject::tr("Belize", "tz_names"), - QObject::tr("Port-au-Prince", "tz_names"), - QObject::tr("Baku", "tz_names"), - QObject::tr("Amsterdam", "tz_names"), - QObject::tr("Detroit", "tz_names"), - QObject::tr("Accra", "tz_names"), - QObject::tr("Indiana/Marengo", "tz_names"), - QObject::tr("Panama", "tz_names"), - QObject::tr("Argentina/Tucuman", "tz_names"), - QObject::tr("Reunion", "tz_names"), - QObject::tr("Beirut", "tz_names"), - QObject::tr("Dawson", "tz_names"), - QObject::tr("Bangui", "tz_names"), - QObject::tr("Punta Arenas", "tz_names"), - QObject::tr("Maldives", "tz_names"), - QObject::tr("Khartoum", "tz_names"), - QObject::tr("Argentina/La Rioja", "tz_names"), - QObject::tr("Porto Velho", "tz_names"), - QObject::tr("Wake", "tz_names"), - QObject::tr("Stockholm", "tz_names"), - QObject::tr("New York", "tz_names"), - QObject::tr("Chicago", "tz_names"), - QObject::tr("Madeira", "tz_names"), - QObject::tr("Vladivostok", "tz_names"), - QObject::tr("Argentina/Rio Gallegos", "tz_names"), - QObject::tr("Kirov", "tz_names"), - QObject::tr("Guernsey", "tz_names"), - QObject::tr("Cayenne", "tz_names"), - QObject::tr("Niamey", "tz_names"), - QObject::tr("Managua", "tz_names"), - QObject::tr("Ashgabat", "tz_names"), - QObject::tr("Addis Ababa", "tz_names"), - QObject::tr("Nauru", "tz_names"), - QObject::tr("Guyana", "tz_names"), - QObject::tr("Damascus", "tz_names"), - QObject::tr("Volgograd", "tz_names"), - QObject::tr("Kerguelen", "tz_names"), - QObject::tr("Fort Nelson", "tz_names"), - QObject::tr("Bahia Banderas", "tz_names"), - QObject::tr("Cayman", "tz_names"), - QObject::tr("Astrakhan", "tz_names"), - QObject::tr("Wallis", "tz_names"), - QObject::tr("Anadyr", "tz_names"), - QObject::tr("Fortaleza", "tz_names"), - QObject::tr("Thule", "tz_names"), - QObject::tr("Palmer", "tz_names"), - QObject::tr("Harare", "tz_names"), - QObject::tr("Araguaina", "tz_names"), - QObject::tr("Chagos", "tz_names"), - QObject::tr("Reykjavik", "tz_names"), - QObject::tr("Auckland", "tz_names"), - QObject::tr("Melbourne", "tz_names"), - QObject::tr("Mawson", "tz_names"), - QObject::tr("Miquelon", "tz_names"), - QObject::tr("Eirunepe", "tz_names"), - QObject::tr("Argentina/Salta", "tz_names"), - QObject::tr("Ndjamena", "tz_names"), - QObject::tr("Warsaw", "tz_names"), - QObject::tr("Brussels", "tz_names"), - QObject::tr("Hobart", "tz_names"), - QObject::tr("Kampala", "tz_names"), - QObject::tr("Jerusalem", "tz_names"), - QObject::tr("Vatican", "tz_names"), - QObject::tr("Kolkata", "tz_names"), - QObject::tr("Dakar", "tz_names"), - QObject::tr("Merida", "tz_names"), - QObject::tr("Moncton", "tz_names"), - QObject::tr("Riyadh", "tz_names"), - QObject::tr("Pohnpei", "tz_names"), - QObject::tr("Funafuti", "tz_names"), - QObject::tr("Krasnoyarsk", "tz_names"), - QObject::tr("Belem", "tz_names"), - QObject::tr("Rome", "tz_names"), - QObject::tr("Oral", "tz_names"), - QObject::tr("Sakhalin", "tz_names"), - QObject::tr("Moscow", "tz_names"), - QObject::tr("Anchorage", "tz_names"), - QObject::tr("Argentina/Cordoba", "tz_names"), - QObject::tr("Bucharest", "tz_names"), - QObject::tr("Nome", "tz_names"), - QObject::tr("La Paz", "tz_names"), - QObject::tr("Scoresbysund", "tz_names"), - QObject::tr("Adelaide", "tz_names"), - QObject::tr("Barbados", "tz_names"), - QObject::tr("Casey", "tz_names"), - QObject::tr("Seoul", "tz_names"), - QObject::tr("Tarawa", "tz_names"), - QObject::tr("Chatham", "tz_names"), - QObject::tr("Vostok", "tz_names"), - QObject::tr("Bishkek", "tz_names"), - QObject::tr("Inuvik", "tz_names"), - QObject::tr("Baghdad", "tz_names"), - QObject::tr("Whitehorse", "tz_names"), - QObject::tr("Resolute", "tz_names"), - QObject::tr("Syowa", "tz_names"), - QObject::tr("Regina", "tz_names"), - QObject::tr("Saratov", "tz_names"), - QObject::tr("North Dakota/Beulah", "tz_names"), - QObject::tr("Santo Domingo", "tz_names"), - QObject::tr("Lindeman", "tz_names"), - QObject::tr("Magadan", "tz_names"), - QObject::tr("Efate", "tz_names"), - QObject::tr("Bermuda", "tz_names"), - QObject::tr("Maceio", "tz_names"), - QObject::tr("Tashkent", "tz_names"), - QObject::tr("Qyzylorda", "tz_names"), - QObject::tr("Madrid", "tz_names"), - QObject::tr("Costa Rica", "tz_names"), - QObject::tr("Antananarivo", "tz_names"), - QObject::tr("Lima", "tz_names"), - QObject::tr("Kigali", "tz_names"), - QObject::tr("Marquesas", "tz_names"), - QObject::tr("Halifax", "tz_names"), - QObject::tr("Copenhagen", "tz_names"), - QObject::tr("Comoro", "tz_names"), - QObject::tr("Anguilla", "tz_names"), - QObject::tr("Kralendijk", "tz_names"), - QObject::tr("Sydney", "tz_names"), - QObject::tr("Yakutat", "tz_names"), - QObject::tr("Aqtau", "tz_names"), - QObject::tr("Brunei", "tz_names"), - QObject::tr("Vientiane", "tz_names"), - QObject::tr("Rainy River", "tz_names"), - QObject::tr("Bogota", "tz_names"), - QObject::tr("Port of Spain", "tz_names"), - QObject::tr("Rankin Inlet", "tz_names"), - QObject::tr("Pyongyang", "tz_names"), - QObject::tr("Bamako", "tz_names"), - QObject::tr("Samarkand", "tz_names"), - QObject::tr("Srednekolymsk", "tz_names"), - QObject::tr("Nicosia", "tz_names"), - QObject::tr("Iqaluit", "tz_names"), - QObject::tr("Yakutsk", "tz_names"), - QObject::tr("Cape Verde", "tz_names"), - QObject::tr("Zagreb", "tz_names"), - QObject::tr("Indiana/Knox", "tz_names"), - QObject::tr("Djibouti", "tz_names"), - QObject::tr("Grand Turk", "tz_names"), - QObject::tr("Hong Kong", "tz_names"), - QObject::tr("Monrovia", "tz_names"), - QObject::tr("Pitcairn", "tz_names"), - QObject::tr("El Aaiun", "tz_names"), - QObject::tr("Kuala Lumpur", "tz_names"), - QObject::tr("Kuwait", "tz_names"), - QObject::tr("Christmas", "tz_names"), - QObject::tr("Stanley", "tz_names"), - QObject::tr("Gambier", "tz_names"), - QObject::tr("Phnom Penh", "tz_names"), - QObject::tr("Sofia", "tz_names"), - QObject::tr("Longyearbyen", "tz_names"), - QObject::tr("St Helena", "tz_names"), - QObject::tr("Singapore", "tz_names"), - QObject::tr("Nipigon", "tz_names"), - QObject::tr("Zaporozhye", "tz_names"), - QObject::tr("Adak", "tz_names"), - QObject::tr("El Salvador", "tz_names"), - QObject::tr("Fakaofo", "tz_names"), - QObject::tr("Samara", "tz_names"), - QObject::tr("Makassar", "tz_names"), - QObject::tr("St Johns", "tz_names"), - QObject::tr("Tehran", "tz_names"), - QObject::tr("Almaty", "tz_names"), - QObject::tr("Hovd", "tz_names"), - QObject::tr("Tortola", "tz_names"), - QObject::tr("Bangkok", "tz_names"), - QObject::tr("Nassau", "tz_names"), - QObject::tr("Tunis", "tz_names"), - QObject::tr("Omsk", "tz_names"), - QObject::tr("Tokyo", "tz_names"), - QObject::tr("Casablanca", "tz_names"), - QObject::tr("Karachi", "tz_names"), - QObject::tr("McMurdo", "tz_names"), - QObject::tr("Tallinn", "tz_names"), - QObject::tr("Marigot", "tz_names"), - QObject::tr("Macau", "tz_names"), - QObject::tr("San Marino", "tz_names"), - QObject::tr("Denver", "tz_names"), - QObject::tr("Darwin", "tz_names"), - QObject::tr("Pangnirtung", "tz_names"), - QObject::tr("Chita", "tz_names"), - QObject::tr("Zurich", "tz_names"), - QObject::tr("Ulyanovsk", "tz_names"), - QObject::tr("Bissau", "tz_names"), - QObject::tr("Lagos", "tz_names"), - QObject::tr("Kuching", "tz_names"), - QObject::tr("Monaco", "tz_names"), - QObject::tr("Davis", "tz_names"), - QObject::tr("Argentina/Jujuy", "tz_names"), - QObject::tr("Recife", "tz_names"), - QObject::tr("Colombo", "tz_names"), - QObject::tr("Banjul", "tz_names"), - QObject::tr("Mauritius", "tz_names"), - QObject::tr("Creston", "tz_names"), - QObject::tr("Malta", "tz_names"), - QObject::tr("Argentina/Buenos Aires", "tz_names"), - QObject::tr("Vienna", "tz_names"), - QObject::tr("Skopje", "tz_names"), - QObject::tr("Swift Current", "tz_names"), - QObject::tr("Urumqi", "tz_names"), - QObject::tr("Guatemala", "tz_names"), - QObject::tr("Argentina/Mendoza", "tz_names"), - QObject::tr("Phoenix", "tz_names"), - QObject::tr("Asmara", "tz_names"), - QObject::tr("Noumea", "tz_names"), - QObject::tr("Boise", "tz_names"), - QObject::tr("Novokuznetsk", "tz_names"), - QObject::tr("Brazzaville", "tz_names"), - QObject::tr("Isle of Man", "tz_names"), - QObject::tr("Tegucigalpa", "tz_names"), - QObject::tr("Troll", "tz_names"), - QObject::tr("Glace Bay", "tz_names"), - QObject::tr("Yangon", "tz_names"), - QObject::tr("Conakry", "tz_names"), - QObject::tr("Aden", "tz_names"), - QObject::tr("Mayotte", "tz_names"), - QObject::tr("Grenada", "tz_names"), - QObject::tr("Mogadishu", "tz_names"), - QObject::tr("Sitka", "tz_names"), - QObject::tr("Kwajalein", "tz_names"), - QObject::tr("Pontianak", "tz_names"), - QObject::tr("Uzhgorod", "tz_names"), - QObject::tr("Ust-Nera", "tz_names"), - QObject::tr("Nairobi", "tz_names"), - QObject::tr("Saipan", "tz_names"), - QObject::tr("Sao Paulo", "tz_names"), - QObject::tr("Gaza", "tz_names"), - QObject::tr("Jakarta", "tz_names"), - QObject::tr("Godthab", "tz_names"), - QObject::tr("Choibalsan", "tz_names"), - QObject::tr("Jersey", "tz_names"), - QObject::tr("Tripoli", "tz_names"), - QObject::tr("Blantyre", "tz_names"), - QObject::tr("Freetown", "tz_names"), - QObject::tr("Andorra", "tz_names"), - QObject::tr("Danmarkshavn", "tz_names"), - QObject::tr("Los Angeles", "tz_names"), - QObject::tr("Caracas", "tz_names"), - QObject::tr("Oslo", "tz_names"), - QObject::tr("Rothera", "tz_names"), - QObject::tr("Budapest", "tz_names"), - QObject::tr("St Lucia", "tz_names"), - QObject::tr("Indiana/Indianapolis", "tz_names"), - QObject::tr("Paris", "tz_names"), - QObject::tr("Yerevan", "tz_names"), - QObject::tr("St Barthelemy", "tz_names"), - QObject::tr("Cuiaba", "tz_names"), - QObject::tr("Asuncion", "tz_names"), - QObject::tr("Manila", "tz_names"), - QObject::tr("Edmonton", "tz_names"), - QObject::tr("Vancouver", "tz_names"), - QObject::tr("Tongatapu", "tz_names"), - QObject::tr("Bahrain", "tz_names"), - QObject::tr("Kinshasa", "tz_names"), - QObject::tr("Mariehamn", "tz_names"), - QObject::tr("Kosrae", "tz_names"), - QObject::tr("Luanda", "tz_names"), - QObject::tr("Tirane", "tz_names"), - QObject::tr("Manaus", "tz_names"), - QObject::tr("Helsinki", "tz_names"), - QObject::tr("Chihuahua", "tz_names"), - QObject::tr("Khandyga", "tz_names"), - QObject::tr("Mexico City", "tz_names"), - QObject::tr("Prague", "tz_names"), - QObject::tr("Atyrau", "tz_names"), - QObject::tr("Jayapura", "tz_names"), - QObject::tr("Novosibirsk", "tz_names"), - QObject::tr("Eucla", "tz_names"), - QObject::tr("Vilnius", "tz_names"), - QObject::tr("Dublin", "tz_names"), - QObject::tr("Luxembourg", "tz_names"), - QObject::tr("Johannesburg", "tz_names"), - QObject::tr("Yellowknife", "tz_names"), - QObject::tr("Norfolk", "tz_names"), - QObject::tr("Menominee", "tz_names"), - QObject::tr("Dushanbe", "tz_names"), - QObject::tr("Noronha", "tz_names"), - QObject::tr("Kathmandu", "tz_names"), - QObject::tr("Shanghai", "tz_names"), - QObject::tr("Goose Bay", "tz_names"), - QObject::tr("Amman", "tz_names"), - QObject::tr("Santiago", "tz_names"), - QObject::tr("Campo Grande", "tz_names"), - QObject::tr("Dili", "tz_names"), - QObject::tr("Nouakchott", "tz_names"), - QObject::tr("Bahia", "tz_names"), - QObject::tr("Guadalcanal", "tz_names"), - QObject::tr("Simferopol", "tz_names"), - QObject::tr("Douala", "tz_names"), - QObject::tr("Dar es Salaam", "tz_names"), - QObject::tr("Bratislava", "tz_names"), - QObject::tr("Minsk", "tz_names"), - QObject::tr("Indiana/Vevay", "tz_names"), - QObject::tr("Cairo", "tz_names"), - QObject::tr("Winnipeg", "tz_names"), - QObject::tr("Kiev", "tz_names"), - QObject::tr("Broken Hill", "tz_names"), - QObject::tr("Montserrat", "tz_names"), - QObject::tr("Perth", "tz_names"), - QObject::tr("Ljubljana", "tz_names"), - QObject::tr("Lisbon", "tz_names"), - QObject::tr("Majuro", "tz_names"), - QObject::tr("North Dakota/Center", "tz_names"), - QObject::tr("Lome", "tz_names"), - QObject::tr("DumontDUrville", "tz_names"), - QObject::tr("Argentina/Ushuaia", "tz_names"), - QObject::tr("Atikokan", "tz_names"), - QObject::tr("Lubumbashi", "tz_names"), - QObject::tr("Santarem", "tz_names"), - QObject::tr("Riga", "tz_names"), - QObject::tr("Kamchatka", "tz_names"), - QObject::tr("Aruba", "tz_names"), - QObject::tr("Azores", "tz_names"), - QObject::tr("Maseru", "tz_names"), - QObject::tr("Faroe", "tz_names"), - QObject::tr("Niue", "tz_names"), - QObject::tr("Gaborone", "tz_names"), - QObject::tr("Port Moresby", "tz_names"), - QObject::tr("Cocos", "tz_names"), - QObject::tr("Blanc-Sablon", "tz_names"), - QObject::tr("Argentina/San Luis", "tz_names"), - QObject::tr("Mahe", "tz_names"), - QObject::tr("Kentucky/Monticello", "tz_names"), - QObject::tr("Galapagos", "tz_names"), - QObject::tr("South Georgia", "tz_names"), - QObject::tr("Ho Chi Minh", "tz_names"), - QObject::tr("Kiritimati", "tz_names"), - QObject::tr("Mazatlan", "tz_names"), - QObject::tr("Argentina/Catamarca", "tz_names"), - QObject::tr("St Kitts", "tz_names"), - QObject::tr("Kentucky/Louisville", "tz_names"), - QObject::tr("Bougainville", "tz_names"), - QObject::tr("Lower Princes", "tz_names"), - QObject::tr("Pago Pago", "tz_names"), - QObject::tr("Curacao", "tz_names"), - QObject::tr("Tahiti", "tz_names"), - QObject::tr("Irkutsk", "tz_names"), - QObject::tr("Thunder Bay", "tz_names"), - QObject::tr("Rio Branco", "tz_names"), - QObject::tr("Argentina/San Juan", "tz_names"), - QObject::tr("Paramaribo", "tz_names"), - QObject::tr("Libreville", "tz_names"), - QObject::tr("Lusaka", "tz_names"), - QObject::tr("Hebron", "tz_names"), - QObject::tr("Algiers", "tz_names"), - QObject::tr("Ojinaga", "tz_names"), - QObject::tr("Rarotonga", "tz_names"), - QObject::tr("Maputo", "tz_names"), - QObject::tr("Honolulu", "tz_names"), - QObject::tr("Brisbane", "tz_names"), - QObject::tr("Ulaanbaatar", "tz_names"), - QObject::tr("Chuuk", "tz_names"), - QObject::tr("Aqtobe", "tz_names"), - QObject::tr("Guayaquil", "tz_names"), - QObject::tr("Canary", "tz_names"), - QObject::tr("Mbabane", "tz_names"), QObject::tr("Abidjan", "tz_names"), - QObject::tr("Muscat", "tz_names"), + QObject::tr("Accra", "tz_names"), + QObject::tr("Adak", "tz_names"), + QObject::tr("Addis Ababa", "tz_names"), + QObject::tr("Adelaide", "tz_names"), + QObject::tr("Aden", "tz_names"), + QObject::tr("Algiers", "tz_names"), + QObject::tr("Almaty", "tz_names"), + QObject::tr("Amman", "tz_names"), + QObject::tr("Amsterdam", "tz_names"), + QObject::tr("Anadyr", "tz_names"), + QObject::tr("Anchorage", "tz_names"), + QObject::tr("Andorra", "tz_names"), + QObject::tr("Anguilla", "tz_names"), + QObject::tr("Antananarivo", "tz_names"), + QObject::tr("Antigua", "tz_names"), QObject::tr("Apia", "tz_names"), - QObject::tr("North Dakota/New Salem", "tz_names"), - QObject::tr("Istanbul", "tz_names"), - QObject::tr("Belgrade", "tz_names"), - QObject::tr("Juba", "tz_names"), - QObject::tr("Midway", "tz_names"), - QObject::tr("Berlin", "tz_names"), - QObject::tr("Martinique", "tz_names"), - QObject::tr("Indiana/Vincennes", "tz_names"), + QObject::tr("Aqtau", "tz_names"), + QObject::tr("Aqtobe", "tz_names"), + QObject::tr("Araguaina", "tz_names"), + QObject::tr("Argentina/Buenos Aires", "tz_names"), + QObject::tr("Argentina/Catamarca", "tz_names"), + QObject::tr("Argentina/Cordoba", "tz_names"), + QObject::tr("Argentina/Jujuy", "tz_names"), + QObject::tr("Argentina/La Rioja", "tz_names"), + QObject::tr("Argentina/Mendoza", "tz_names"), + QObject::tr("Argentina/Rio Gallegos", "tz_names"), + QObject::tr("Argentina/Salta", "tz_names"), + QObject::tr("Argentina/San Juan", "tz_names"), + QObject::tr("Argentina/San Luis", "tz_names"), + QObject::tr("Argentina/Tucuman", "tz_names"), + QObject::tr("Argentina/Ushuaia", "tz_names"), + QObject::tr("Aruba", "tz_names"), + QObject::tr("Ashgabat", "tz_names"), + QObject::tr("Asmara", "tz_names"), + QObject::tr("Astrakhan", "tz_names"), + QObject::tr("Asuncion", "tz_names"), QObject::tr("Athens", "tz_names"), - QObject::tr("Ouagadougou", "tz_names"), - QObject::tr("Podgorica", "tz_names"), - QObject::tr("Sao Tome", "tz_names"), - QObject::tr("Vaduz", "tz_names"), - QObject::tr("Qatar", "tz_names"), - QObject::tr("Cancun", "tz_names"), - QObject::tr("Taipei", "tz_names"), - QObject::tr("Puerto Rico", "tz_names"), - QObject::tr("Metlakatla", "tz_names"), - QObject::tr("Jamaica", "tz_names"), - QObject::tr("Kaliningrad", "tz_names"), - QObject::tr("Enderbury", "tz_names"), - QObject::tr("Currie", "tz_names"), - QObject::tr("Thimphu", "tz_names"), - QObject::tr("Matamoros", "tz_names"), - QObject::tr("Montevideo", "tz_names"), - QObject::tr("Gibraltar", "tz_names"), - QObject::tr("Tijuana", "tz_names"), - QObject::tr("St Thomas", "tz_names"), - QObject::tr("London", "tz_names"), - QObject::tr("Yekaterinburg", "tz_names"), - QObject::tr("Easter", "tz_names"), + QObject::tr("Atikokan", "tz_names"), + QObject::tr("Atyrau", "tz_names"), + QObject::tr("Auckland", "tz_names"), + QObject::tr("Azores", "tz_names"), + QObject::tr("Baghdad", "tz_names"), + QObject::tr("Bahia", "tz_names"), + QObject::tr("Bahia Banderas", "tz_names"), + QObject::tr("Bahrain", "tz_names"), + QObject::tr("Baku", "tz_names"), + QObject::tr("Bamako", "tz_names"), + QObject::tr("Bangkok", "tz_names"), + QObject::tr("Bangui", "tz_names"), + QObject::tr("Banjul", "tz_names"), + QObject::tr("Barbados", "tz_names"), + QObject::tr("Barnaul", "tz_names"), + QObject::tr("Beirut", "tz_names"), + QObject::tr("Belem", "tz_names"), + QObject::tr("Belgrade", "tz_names"), + QObject::tr("Belize", "tz_names"), + QObject::tr("Berlin", "tz_names"), + QObject::tr("Bermuda", "tz_names"), + QObject::tr("Bishkek", "tz_names"), + QObject::tr("Bissau", "tz_names"), + QObject::tr("Blanc-Sablon", "tz_names"), + QObject::tr("Blantyre", "tz_names"), QObject::tr("Boa Vista", "tz_names"), - QObject::tr("Dawson Creek", "tz_names"), - QObject::tr("Hermosillo", "tz_names"), - QObject::tr("Famagusta", "tz_names"), - QObject::tr("Monterrey", "tz_names"), - QObject::tr("Dominica", "tz_names"), - QObject::tr("Guadeloupe", "tz_names"), - QObject::tr("Indiana/Tell City", "tz_names"), - QObject::tr("Dubai", "tz_names"), - QObject::tr("Malabo", "tz_names"), + QObject::tr("Bogota", "tz_names"), + QObject::tr("Boise", "tz_names"), + QObject::tr("Bougainville", "tz_names"), + QObject::tr("Bratislava", "tz_names"), + QObject::tr("Brazzaville", "tz_names"), + QObject::tr("Brisbane", "tz_names"), + QObject::tr("Broken Hill", "tz_names"), + QObject::tr("Brunei", "tz_names"), + QObject::tr("Brussels", "tz_names"), + QObject::tr("Bucharest", "tz_names"), + QObject::tr("Budapest", "tz_names"), QObject::tr("Bujumbura", "tz_names"), - QObject::tr("Fiji", "tz_names"), - QObject::tr("St Vincent", "tz_names"), - QObject::tr("Qostanay", "tz_names"), - QObject::tr("Tomsk", "tz_names"), - QObject::tr("Juneau", "tz_names"), + QObject::tr("Busingen", "tz_names"), + QObject::tr("Cairo", "tz_names"), + QObject::tr("Cambridge Bay", "tz_names"), + QObject::tr("Campo Grande", "tz_names"), + QObject::tr("Canary", "tz_names"), + QObject::tr("Cancun", "tz_names"), + QObject::tr("Cape Verde", "tz_names"), + QObject::tr("Caracas", "tz_names"), + QObject::tr("Casablanca", "tz_names"), + QObject::tr("Casey", "tz_names"), + QObject::tr("Cayenne", "tz_names"), + QObject::tr("Cayman", "tz_names"), + QObject::tr("Ceuta", "tz_names"), + QObject::tr("Chagos", "tz_names"), + QObject::tr("Chatham", "tz_names"), + QObject::tr("Chicago", "tz_names"), + QObject::tr("Chihuahua", "tz_names"), QObject::tr("Chisinau", "tz_names"), - QObject::tr("Lord Howe", "tz_names"), + QObject::tr("Chita", "tz_names"), + QObject::tr("Choibalsan", "tz_names"), + QObject::tr("Christmas", "tz_names"), + QObject::tr("Chuuk", "tz_names"), + QObject::tr("Cocos", "tz_names"), + QObject::tr("Colombo", "tz_names"), + QObject::tr("Comoro", "tz_names"), + QObject::tr("Conakry", "tz_names"), + QObject::tr("Copenhagen", "tz_names"), + QObject::tr("Costa Rica", "tz_names"), + QObject::tr("Creston", "tz_names"), + QObject::tr("Cuiaba", "tz_names"), + QObject::tr("Curacao", "tz_names"), + QObject::tr("Currie", "tz_names"), + QObject::tr("Dakar", "tz_names"), + QObject::tr("Damascus", "tz_names"), + QObject::tr("Danmarkshavn", "tz_names"), + QObject::tr("Dar es Salaam", "tz_names"), + QObject::tr("Darwin", "tz_names"), + QObject::tr("Davis", "tz_names"), + QObject::tr("Dawson", "tz_names"), + QObject::tr("Dawson Creek", "tz_names"), + QObject::tr("Denver", "tz_names"), + QObject::tr("Detroit", "tz_names"), + QObject::tr("Dhaka", "tz_names"), + QObject::tr("Dili", "tz_names"), + QObject::tr("Djibouti", "tz_names"), + QObject::tr("Dominica", "tz_names"), + QObject::tr("Douala", "tz_names"), + QObject::tr("Dubai", "tz_names"), + QObject::tr("Dublin", "tz_names"), + QObject::tr("DumontDUrville", "tz_names"), + QObject::tr("Dushanbe", "tz_names"), + QObject::tr("Easter", "tz_names"), + QObject::tr("Edmonton", "tz_names"), + QObject::tr("Efate", "tz_names"), + QObject::tr("Eirunepe", "tz_names"), + QObject::tr("El Aaiun", "tz_names"), + QObject::tr("El Salvador", "tz_names"), + QObject::tr("Enderbury", "tz_names"), + QObject::tr("Eucla", "tz_names"), + QObject::tr("Fakaofo", "tz_names"), + QObject::tr("Famagusta", "tz_names"), + QObject::tr("Faroe", "tz_names"), + QObject::tr("Fiji", "tz_names"), + QObject::tr("Fort Nelson", "tz_names"), + QObject::tr("Fortaleza", "tz_names"), + QObject::tr("Freetown", "tz_names"), + QObject::tr("Funafuti", "tz_names"), + QObject::tr("Gaborone", "tz_names"), + QObject::tr("Galapagos", "tz_names"), + QObject::tr("Gambier", "tz_names"), + QObject::tr("Gaza", "tz_names"), + QObject::tr("Gibraltar", "tz_names"), + QObject::tr("Glace Bay", "tz_names"), + QObject::tr("Godthab", "tz_names"), + QObject::tr("Goose Bay", "tz_names"), + QObject::tr("Grand Turk", "tz_names"), + QObject::tr("Grenada", "tz_names"), + QObject::tr("Guadalcanal", "tz_names"), + QObject::tr("Guadeloupe", "tz_names"), + QObject::tr("Guam", "tz_names"), + QObject::tr("Guatemala", "tz_names"), + QObject::tr("Guayaquil", "tz_names"), + QObject::tr("Guernsey", "tz_names"), + QObject::tr("Guyana", "tz_names"), + QObject::tr("Halifax", "tz_names"), + QObject::tr("Harare", "tz_names"), + QObject::tr("Havana", "tz_names"), + QObject::tr("Hebron", "tz_names"), + QObject::tr("Helsinki", "tz_names"), + QObject::tr("Hermosillo", "tz_names"), + QObject::tr("Ho Chi Minh", "tz_names"), + QObject::tr("Hobart", "tz_names"), + QObject::tr("Hong Kong", "tz_names"), + QObject::tr("Honolulu", "tz_names"), + QObject::tr("Hovd", "tz_names"), + QObject::tr("Indiana/Indianapolis", "tz_names"), + QObject::tr("Indiana/Knox", "tz_names"), + QObject::tr("Indiana/Marengo", "tz_names"), + QObject::tr("Indiana/Petersburg", "tz_names"), + QObject::tr("Indiana/Tell City", "tz_names"), + QObject::tr("Indiana/Vevay", "tz_names"), + QObject::tr("Indiana/Vincennes", "tz_names"), + QObject::tr("Indiana/Winamac", "tz_names"), + QObject::tr("Inuvik", "tz_names"), + QObject::tr("Iqaluit", "tz_names"), + QObject::tr("Irkutsk", "tz_names"), + QObject::tr("Isle of Man", "tz_names"), + QObject::tr("Istanbul", "tz_names"), + QObject::tr("Jakarta", "tz_names"), + QObject::tr("Jamaica", "tz_names"), + QObject::tr("Jayapura", "tz_names"), + QObject::tr("Jersey", "tz_names"), + QObject::tr("Jerusalem", "tz_names"), + QObject::tr("Johannesburg", "tz_names"), + QObject::tr("Juba", "tz_names"), + QObject::tr("Juneau", "tz_names"), QObject::tr("Kabul", "tz_names"), + QObject::tr("Kaliningrad", "tz_names"), + QObject::tr("Kamchatka", "tz_names"), + QObject::tr("Kampala", "tz_names"), + QObject::tr("Karachi", "tz_names"), + QObject::tr("Kathmandu", "tz_names"), + QObject::tr("Kentucky/Louisville", "tz_names"), + QObject::tr("Kentucky/Monticello", "tz_names"), + QObject::tr("Kerguelen", "tz_names"), + QObject::tr("Khandyga", "tz_names"), + QObject::tr("Khartoum", "tz_names"), + QObject::tr("Kiev", "tz_names"), + QObject::tr("Kigali", "tz_names"), + QObject::tr("Kinshasa", "tz_names"), + QObject::tr("Kiritimati", "tz_names"), + QObject::tr("Kirov", "tz_names"), + QObject::tr("Kolkata", "tz_names"), + QObject::tr("Kosrae", "tz_names"), + QObject::tr("Kralendijk", "tz_names"), + QObject::tr("Krasnoyarsk", "tz_names"), + QObject::tr("Kuala Lumpur", "tz_names"), + QObject::tr("Kuching", "tz_names"), + QObject::tr("Kuwait", "tz_names"), + QObject::tr("Kwajalein", "tz_names"), + QObject::tr("La Paz", "tz_names"), + QObject::tr("Lagos", "tz_names"), + QObject::tr("Libreville", "tz_names"), + QObject::tr("Lima", "tz_names"), + QObject::tr("Lindeman", "tz_names"), + QObject::tr("Lisbon", "tz_names"), + QObject::tr("Ljubljana", "tz_names"), + QObject::tr("Lome", "tz_names"), + QObject::tr("London", "tz_names"), + QObject::tr("Longyearbyen", "tz_names"), + QObject::tr("Lord Howe", "tz_names"), + QObject::tr("Los Angeles", "tz_names"), + QObject::tr("Lower Princes", "tz_names"), + QObject::tr("Luanda", "tz_names"), + QObject::tr("Lubumbashi", "tz_names"), + QObject::tr("Lusaka", "tz_names"), + QObject::tr("Luxembourg", "tz_names"), + QObject::tr("Macau", "tz_names"), + QObject::tr("Maceio", "tz_names"), + QObject::tr("Macquarie", "tz_names"), + QObject::tr("Madeira", "tz_names"), + QObject::tr("Madrid", "tz_names"), + QObject::tr("Magadan", "tz_names"), + QObject::tr("Mahe", "tz_names"), + QObject::tr("Majuro", "tz_names"), + QObject::tr("Makassar", "tz_names"), + QObject::tr("Malabo", "tz_names"), + QObject::tr("Maldives", "tz_names"), + QObject::tr("Malta", "tz_names"), + QObject::tr("Managua", "tz_names"), + QObject::tr("Manaus", "tz_names"), + QObject::tr("Manila", "tz_names"), + QObject::tr("Maputo", "tz_names"), + QObject::tr("Mariehamn", "tz_names"), + QObject::tr("Marigot", "tz_names"), + QObject::tr("Marquesas", "tz_names"), + QObject::tr("Martinique", "tz_names"), + QObject::tr("Maseru", "tz_names"), + QObject::tr("Matamoros", "tz_names"), + QObject::tr("Mauritius", "tz_names"), + QObject::tr("Mawson", "tz_names"), + QObject::tr("Mayotte", "tz_names"), + QObject::tr("Mazatlan", "tz_names"), + QObject::tr("Mbabane", "tz_names"), + QObject::tr("McMurdo", "tz_names"), + QObject::tr("Melbourne", "tz_names"), + QObject::tr("Menominee", "tz_names"), + QObject::tr("Merida", "tz_names"), + QObject::tr("Metlakatla", "tz_names"), + QObject::tr("Mexico City", "tz_names"), + QObject::tr("Midway", "tz_names"), + QObject::tr("Minsk", "tz_names"), + QObject::tr("Miquelon", "tz_names"), + QObject::tr("Mogadishu", "tz_names"), + QObject::tr("Monaco", "tz_names"), + QObject::tr("Moncton", "tz_names"), + QObject::tr("Monrovia", "tz_names"), + QObject::tr("Monterrey", "tz_names"), + QObject::tr("Montevideo", "tz_names"), + QObject::tr("Montserrat", "tz_names"), + QObject::tr("Moscow", "tz_names"), + QObject::tr("Muscat", "tz_names"), + QObject::tr("Nairobi", "tz_names"), + QObject::tr("Nassau", "tz_names"), + QObject::tr("Nauru", "tz_names"), + QObject::tr("Ndjamena", "tz_names"), + QObject::tr("New York", "tz_names"), + QObject::tr("Niamey", "tz_names"), + QObject::tr("Nicosia", "tz_names"), + QObject::tr("Nipigon", "tz_names"), + QObject::tr("Niue", "tz_names"), + QObject::tr("Nome", "tz_names"), + QObject::tr("Norfolk", "tz_names"), + QObject::tr("Noronha", "tz_names"), + QObject::tr("North Dakota/Beulah", "tz_names"), + QObject::tr("North Dakota/Center", "tz_names"), + QObject::tr("North Dakota/New Salem", "tz_names"), + QObject::tr("Nouakchott", "tz_names"), + QObject::tr("Noumea", "tz_names"), + QObject::tr("Novokuznetsk", "tz_names"), + QObject::tr("Novosibirsk", "tz_names"), + QObject::tr("Ojinaga", "tz_names"), + QObject::tr("Omsk", "tz_names"), + QObject::tr("Oral", "tz_names"), + QObject::tr("Oslo", "tz_names"), + QObject::tr("Ouagadougou", "tz_names"), + QObject::tr("Pago Pago", "tz_names"), + QObject::tr("Palau", "tz_names"), + QObject::tr("Palmer", "tz_names"), + QObject::tr("Panama", "tz_names"), + QObject::tr("Pangnirtung", "tz_names"), + QObject::tr("Paramaribo", "tz_names"), + QObject::tr("Paris", "tz_names"), + QObject::tr("Perth", "tz_names"), + QObject::tr("Phnom Penh", "tz_names"), + QObject::tr("Phoenix", "tz_names"), + QObject::tr("Pitcairn", "tz_names"), + QObject::tr("Podgorica", "tz_names"), + QObject::tr("Pohnpei", "tz_names"), + QObject::tr("Pontianak", "tz_names"), + QObject::tr("Port Moresby", "tz_names"), + QObject::tr("Port of Spain", "tz_names"), + QObject::tr("Port-au-Prince", "tz_names"), + QObject::tr("Porto Velho", "tz_names"), + QObject::tr("Porto-Novo", "tz_names"), + QObject::tr("Prague", "tz_names"), + QObject::tr("Puerto Rico", "tz_names"), + QObject::tr("Punta Arenas", "tz_names"), + QObject::tr("Pyongyang", "tz_names"), + QObject::tr("Qatar", "tz_names"), + QObject::tr("Qostanay", "tz_names"), + QObject::tr("Qyzylorda", "tz_names"), + QObject::tr("Rainy River", "tz_names"), + QObject::tr("Rankin Inlet", "tz_names"), + QObject::tr("Rarotonga", "tz_names"), + QObject::tr("Recife", "tz_names"), + QObject::tr("Regina", "tz_names"), + QObject::tr("Resolute", "tz_names"), + QObject::tr("Reunion", "tz_names"), + QObject::tr("Reykjavik", "tz_names"), + QObject::tr("Riga", "tz_names"), + QObject::tr("Rio Branco", "tz_names"), + QObject::tr("Riyadh", "tz_names"), + QObject::tr("Rome", "tz_names"), + QObject::tr("Rothera", "tz_names"), + QObject::tr("Saipan", "tz_names"), + QObject::tr("Sakhalin", "tz_names"), + QObject::tr("Samara", "tz_names"), + QObject::tr("Samarkand", "tz_names"), + QObject::tr("San Marino", "tz_names"), + QObject::tr("Santarem", "tz_names"), + QObject::tr("Santiago", "tz_names"), + QObject::tr("Santo Domingo", "tz_names"), + QObject::tr("Sao Paulo", "tz_names"), + QObject::tr("Sao Tome", "tz_names"), + QObject::tr("Sarajevo", "tz_names"), + QObject::tr("Saratov", "tz_names"), + QObject::tr("Scoresbysund", "tz_names"), + QObject::tr("Seoul", "tz_names"), + QObject::tr("Shanghai", "tz_names"), + QObject::tr("Simferopol", "tz_names"), + QObject::tr("Singapore", "tz_names"), + QObject::tr("Sitka", "tz_names"), + QObject::tr("Skopje", "tz_names"), + QObject::tr("Sofia", "tz_names"), + QObject::tr("South Georgia", "tz_names"), + QObject::tr("Srednekolymsk", "tz_names"), + QObject::tr("St Barthelemy", "tz_names"), + QObject::tr("St Helena", "tz_names"), + QObject::tr("St Johns", "tz_names"), + QObject::tr("St Kitts", "tz_names"), + QObject::tr("St Lucia", "tz_names"), + QObject::tr("St Thomas", "tz_names"), + QObject::tr("St Vincent", "tz_names"), + QObject::tr("Stanley", "tz_names"), + QObject::tr("Stockholm", "tz_names"), + QObject::tr("Swift Current", "tz_names"), + QObject::tr("Sydney", "tz_names"), + QObject::tr("Syowa", "tz_names"), + QObject::tr("Tahiti", "tz_names"), + QObject::tr("Taipei", "tz_names"), + QObject::tr("Tallinn", "tz_names"), + QObject::tr("Tarawa", "tz_names"), + QObject::tr("Tashkent", "tz_names"), + QObject::tr("Tbilisi", "tz_names"), + QObject::tr("Tegucigalpa", "tz_names"), + QObject::tr("Tehran", "tz_names"), + QObject::tr("Thimphu", "tz_names"), + QObject::tr("Thule", "tz_names"), + QObject::tr("Thunder Bay", "tz_names"), + QObject::tr("Tijuana", "tz_names"), + QObject::tr("Tirane", "tz_names"), + QObject::tr("Tokyo", "tz_names"), + QObject::tr("Tomsk", "tz_names"), + QObject::tr("Tongatapu", "tz_names"), QObject::tr("Toronto", "tz_names"), + QObject::tr("Tortola", "tz_names"), + QObject::tr("Tripoli", "tz_names"), + QObject::tr("Troll", "tz_names"), + QObject::tr("Tunis", "tz_names"), + QObject::tr("Ulaanbaatar", "tz_names"), + QObject::tr("Ulyanovsk", "tz_names"), + QObject::tr("Urumqi", "tz_names"), + QObject::tr("Ust-Nera", "tz_names"), + QObject::tr("Uzhgorod", "tz_names"), + QObject::tr("Vaduz", "tz_names"), + QObject::tr("Vancouver", "tz_names"), + QObject::tr("Vatican", "tz_names"), + QObject::tr("Vienna", "tz_names"), + QObject::tr("Vientiane", "tz_names"), + QObject::tr("Vilnius", "tz_names"), + QObject::tr("Vladivostok", "tz_names"), + QObject::tr("Volgograd", "tz_names"), + QObject::tr("Vostok", "tz_names"), + QObject::tr("Wake", "tz_names"), + QObject::tr("Wallis", "tz_names"), + QObject::tr("Warsaw", "tz_names"), + QObject::tr("Whitehorse", "tz_names"), + QObject::tr("Windhoek", "tz_names"), + QObject::tr("Winnipeg", "tz_names"), + QObject::tr("Yakutat", "tz_names"), + QObject::tr("Yakutsk", "tz_names"), + QObject::tr("Yangon", "tz_names"), + QObject::tr("Yekaterinburg", "tz_names"), + QObject::tr("Yellowknife", "tz_names"), + QObject::tr("Yerevan", "tz_names"), + QObject::tr("Zagreb", "tz_names"), + QObject::tr("Zaporozhye", "tz_names"), + QObject::tr("Zurich", "tz_names"), QString() }; } diff --git a/src/libcalamares/locale/zone-extractor.py b/src/libcalamares/locale/zone-extractor.py index 3622534da..6b1433adf 100644 --- a/src/libcalamares/locale/zone-extractor.py +++ b/src/libcalamares/locale/zone-extractor.py @@ -37,8 +37,8 @@ """ Python3 script to scrape some data out of zoneinfo/zone.tab. -To use this script, you must have a zone.tab in a standard location. -FreeBSD uses /usr/share/zoneinfo/zone.tab, so that's where it looks. +To use this script, you must have a zone.tab in a standard location, +/usr/share/zoneinfo/zone.tab (this is usual on FreeBSD and Linux). Prints out a few tables of zone names for use in translations. """ @@ -67,7 +67,7 @@ def write_set(file, label, set): file.write("/* This returns a reference to local, which is a terrible idea.\n * Good thing it's not meant to be compiled.\n */\n") # Note {{ is an escaped { for Python string formatting file.write("static const QStringList& {!s}_table()\n{{\n\treturn QStringList {{\n".format(label)) - for x in set: + for x in sorted(set): file.write("""\t\tQObject::tr("{!s}", "{!s}"),\n""".format(x, label)) file.write("\t\tQString()\n\t};\n}\n\n") From abd3c4171bbe66a74f4f2d33151174426adf9bf6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 26 Nov 2019 11:08:21 +0100 Subject: [PATCH 008/101] [libcalamares] Prevent CI coding-style fixes to generated code --- src/libcalamares/locale/ZoneData_p.cpp | 3 +++ src/libcalamares/locale/zone-extractor.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/libcalamares/locale/ZoneData_p.cpp b/src/libcalamares/locale/ZoneData_p.cpp index f0b92f33f..b73d17ad3 100644 --- a/src/libcalamares/locale/ZoneData_p.cpp +++ b/src/libcalamares/locale/ZoneData_p.cpp @@ -18,6 +18,9 @@ */ /** THIS FILE EXISTS ONLY FOR TRANSLATIONS PURPOSES **/ + +// *INDENT-OFF* +// clang-format off /* This returns a reference to local, which is a terrible idea. * Good thing it's not meant to be compiled. */ diff --git a/src/libcalamares/locale/zone-extractor.py b/src/libcalamares/locale/zone-extractor.py index 6b1433adf..92165d824 100644 --- a/src/libcalamares/locale/zone-extractor.py +++ b/src/libcalamares/locale/zone-extractor.py @@ -91,6 +91,9 @@ cpp_header_comment = """/* GENERATED FILE DO NOT EDIT */ /** THIS FILE EXISTS ONLY FOR TRANSLATIONS PURPOSES **/ + +// *INDENT-OFF* +// clang-format off """ if __name__ == "__main__": From 3af2754022d41dc091c0f26a22e23bddbb19b8f8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 26 Nov 2019 11:18:35 +0100 Subject: [PATCH 009/101] [libcalamares] Implement translatable-pair-of-char* - This is base functionality for a translatable model of TimeZone names that is scraped from zone.tab --- src/libcalamares/locale/TimeZone.cpp | 83 ++++++++++++++++++++++++++++ src/libcalamares/locale/TimeZone.h | 31 ++++++++--- 2 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 src/libcalamares/locale/TimeZone.cpp diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp new file mode 100644 index 000000000..900548c72 --- /dev/null +++ b/src/libcalamares/locale/TimeZone.cpp @@ -0,0 +1,83 @@ +/* === This file is part of Calamares - === + * + * Copyright 2019, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "TimeZone.h" + +#include + +namespace CalamaresUtils +{ +namespace Locale +{ + + +CStringPair::CStringPair( CStringPair&& t ) +{ + // My pointers are initialized to nullptr + std::swap( m_human, t.m_human ); + std::swap( m_key, t.m_key ); +} + +CStringPair::CStringPair( const CStringPair& t ) + : m_human( t.m_human ? strdup( t.m_human ) : nullptr ) + , m_key( t.m_key ? strdup( t.m_key ) : nullptr ) +{ +} + +/** @brief Massage an identifier into a human-readable form + * + * Makes a copy of @p s, caller must free() it. + */ +static char* +munge( const char* s ) +{ + char* t = strdup( s ); + if ( !t ) + { + return nullptr; + } + + // replace("_"," ") in the Python script + char* p = t; + while ( *p ) + { + if ( ( *p ) == '_' ) + { + *p = ' '; + } + ++p; + } + + return t; +} + +CStringPair::CStringPair( const char* s1 ) + : m_human( s1 ? munge( s1 ) : nullptr ) + , m_key( s1 ? strdup( s1 ) : nullptr ) +{ +} + + +CStringPair::~CStringPair() +{ + free( m_human ); + free( m_key ); +} + +} // namespace Locale +} // namespace CalamaresUtils diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index b9102dff9..f3590c898 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -19,6 +19,7 @@ #ifndef LOCALE_TIMEZONE_H #define LOCALE_TIMEZONE_H +#include #include namespace CalamaresUtils @@ -39,14 +40,20 @@ namespace Locale class CStringPair { public: - explicit CStringPair(const char *s1); - CStringPair(CStringPair&& t); - CStringPair(const CStringPair&) = delete; - ~CStringPair(); + /// @brief An empty pair + CStringPair() {}; + /// @brief Given an identifier, create the pair + explicit CStringPair( const char* s1 ); + CStringPair( CStringPair&& t ); + CStringPair( const CStringPair& ); + virtual ~CStringPair(); -private: - const char* m_human = nullptr; - const char* m_key = nullptr; + /// @brief Give the localized human-readable form + virtual QString tr() const = 0; + +protected: + char* m_human = nullptr; + char* m_key = nullptr; }; /// @brief A pair of strings for timezone regions (e.g. "America") @@ -54,6 +61,9 @@ class TZRegion : public CStringPair { public: using CStringPair::CStringPair; + + // NOTE: context name must match what's used in zone-extractor.py + QString tr() const override { return QObject::tr( m_human, "tz_regions" ); } }; /// @brief A pair of strings for specific timezone names (e.g. "New_York") @@ -61,9 +71,12 @@ class TZZone : public CStringPair { public: using CStringPair::CStringPair; + + // NOTE: context name must match what's used in zone-extractor.py + QString tr() const override { return QObject::tr( m_human, "tz_names" ); } }; -} -} +} // namespace Locale +} // namespace CalamaresUtils #endif // LOCALE_TIMEZONE_H From 71f3614eb771e4c24c8799739915acace5a6d05b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 26 Nov 2019 11:19:30 +0100 Subject: [PATCH 010/101] [libcalamares] Add TimeZone support to build - Add to CMakeLists.txt - Test basic scenarios --- src/libcalamares/CMakeLists.txt | 1 + src/libcalamares/locale/Tests.cpp | 32 +++++++++++++++++++++++++++++++ src/libcalamares/locale/Tests.h | 4 ++++ 3 files changed, 37 insertions(+) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index f942dbde1..ffc2e20b6 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -34,6 +34,7 @@ set( libSources locale/Label.cpp locale/LabelModel.cpp locale/Lookup.cpp + locale/TimeZone.cpp locale/TranslatableConfiguration.cpp # Network service diff --git a/src/libcalamares/locale/Tests.cpp b/src/libcalamares/locale/Tests.cpp index a9e5e7399..6acb62eab 100644 --- a/src/libcalamares/locale/Tests.cpp +++ b/src/libcalamares/locale/Tests.cpp @@ -19,6 +19,7 @@ #include "Tests.h" #include "locale/LabelModel.h" +#include "locale/TimeZone.h" #include "locale/TranslatableConfiguration.h" #include "CalamaresVersion.h" @@ -199,3 +200,34 @@ LocaleTests::testTranslatableConfig2() QVERIFY( ts3.isEmpty() ); QCOMPARE( ts3.count(), 1 ); // The empty string } + +void +LocaleTests::testSimpleZones() +{ + using namespace CalamaresUtils::Locale; + + { + TZRegion r; + QVERIFY( r.tr().isEmpty() ); + } + { + TZZone n; + QVERIFY( n.tr().isEmpty() ); + } + { + TZRegion r0( "xAmsterdam" ); + QCOMPARE( r0.tr(), QStringLiteral( "xAmsterdam" ) ); + TZRegion r1( r0 ); + QCOMPARE( r0.tr(), QStringLiteral( "xAmsterdam" ) ); + QCOMPARE( r1.tr(), QStringLiteral( "xAmsterdam" ) ); + TZRegion r2( std::move( r0 ) ); + QCOMPARE( r2.tr(), QStringLiteral( "xAmsterdam" ) ); + QCOMPARE( r0.tr(), QString() ); + } +} + +void +LocaleTests::testComplexZones() +{ + // Stub for now +} diff --git a/src/libcalamares/locale/Tests.h b/src/libcalamares/locale/Tests.h index c6949f3e4..96ee48b0b 100644 --- a/src/libcalamares/locale/Tests.h +++ b/src/libcalamares/locale/Tests.h @@ -36,6 +36,10 @@ private Q_SLOTS: void testTranslatableLanguages(); void testTranslatableConfig1(); void testTranslatableConfig2(); + + // TimeZone testing + void testSimpleZones(); + void testComplexZones(); }; #endif From fc7f49b61061b635cdbfc47e7cd0e3038513d1b4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 26 Nov 2019 12:28:41 +0100 Subject: [PATCH 011/101] [libcalamares] Expand tests for TimeZone translations --- src/libcalamares/locale/Tests.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/locale/Tests.cpp b/src/libcalamares/locale/Tests.cpp index 6acb62eab..106a77b4c 100644 --- a/src/libcalamares/locale/Tests.cpp +++ b/src/libcalamares/locale/Tests.cpp @@ -224,10 +224,31 @@ LocaleTests::testSimpleZones() QCOMPARE( r2.tr(), QStringLiteral( "xAmsterdam" ) ); QCOMPARE( r0.tr(), QString() ); } + { + TZZone r0( nullptr ); + QVERIFY( r0.tr().isEmpty() ); + TZZone r1( r0 ); + QVERIFY( r1.tr().isEmpty() ); + TZZone r2( std::move( r0 ) ); + QVERIFY( r2.tr().isEmpty() ); + } } void LocaleTests::testComplexZones() { - // Stub for now + using namespace CalamaresUtils::Locale; + + { + TZZone r0( "America/New_York" ); + TZZone r1( "America/New York" ); + + QCOMPARE( r0.tr(), r1.tr() ); + QCOMPARE( r0.tr(), QStringLiteral( "America/New York" ) ); + } + { + TZZone r( "zxc,;*_vm" ); + QVERIFY( !r.tr().isEmpty() ); + QCOMPARE( r.tr(), QStringLiteral( "zxc,;* vm" ) ); // Only _ is special + } } From 94fe4d2fdae529c7234e1ba8c74ebce4bd3224f0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 26 Nov 2019 12:30:59 +0100 Subject: [PATCH 012/101] [libcalamares] Avoid weak vtables in string-pair implementation --- src/libcalamares/locale/TimeZone.cpp | 15 +++++++++++++++ src/libcalamares/locale/TimeZone.h | 8 ++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 900548c72..420344ed7 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -79,5 +79,20 @@ CStringPair::~CStringPair() free( m_key ); } + +QString +TZRegion::tr() const +{ + // NOTE: context name must match what's used in zone-extractor.py + return QObject::tr( m_human, "tz_regions" ); +} + +QString +TZZone::tr() const +{ + // NOTE: context name must match what's used in zone-extractor.py + return QObject::tr( m_human, "tz_names" ); +} + } // namespace Locale } // namespace CalamaresUtils diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index f3590c898..8bba1c45d 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -61,9 +61,7 @@ class TZRegion : public CStringPair { public: using CStringPair::CStringPair; - - // NOTE: context name must match what's used in zone-extractor.py - QString tr() const override { return QObject::tr( m_human, "tz_regions" ); } + QString tr() const override; }; /// @brief A pair of strings for specific timezone names (e.g. "New_York") @@ -71,9 +69,7 @@ class TZZone : public CStringPair { public: using CStringPair::CStringPair; - - // NOTE: context name must match what's used in zone-extractor.py - QString tr() const override { return QObject::tr( m_human, "tz_names" ); } + QString tr() const override; }; } // namespace Locale From 2a0716bf43d765c5d4b675a690b941e2350f9723 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 28 Nov 2019 11:24:56 +0100 Subject: [PATCH 013/101] [license] Move the 'please review' text to the top. --- src/modules/license/LicensePage.cpp | 8 ++------ src/modules/license/LicensePage.ui | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index c5ba38133..fcbe62b3d 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -157,9 +157,7 @@ LicensePage::retranslate() ui->mainText->setText( tr( "

License Agreement

" "This setup procedure will install proprietary " "software that is subject to licensing terms." ) ); - ui->additionalText->setText( tr( "Please review the End User License " - "Agreements (EULAs) above.
" - "If you do not agree with the terms, the setup procedure cannot continue." ) ); + ui->additionalText->setText( tr( "If you do not agree with the terms, the setup procedure cannot continue." ) ); } else { @@ -168,9 +166,7 @@ LicensePage::retranslate() "software that is subject to licensing terms " "in order to provide additional features and enhance the user " "experience." ) ); - ui->additionalText->setText( tr( "Please review the End User License " - "Agreements (EULAs) above.
" - "If you do not agree with the terms, proprietary software will not " + ui->additionalText->setText( tr( "If you do not agree with the terms, proprietary software will not " "be installed, and open source alternatives will be used instead." ) ); } ui->retranslateUi( this ); diff --git a/src/modules/license/LicensePage.ui b/src/modules/license/LicensePage.ui index 767b392a0..c5857a716 100644 --- a/src/modules/license/LicensePage.ui +++ b/src/modules/license/LicensePage.ui @@ -15,7 +15,7 @@ - + @@ -32,6 +32,16 @@ + + + + + + + Please review the End User License Agreements (EULAs). + + + @@ -47,6 +57,12 @@ + + + 0 + 0 + + QFrame::NoFrame @@ -65,7 +81,7 @@ 0 0 765 - 94 + 86 From 5ed8ec9990f202e3d51c45a532eeefeb8196cf73 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 28 Nov 2019 11:28:02 +0100 Subject: [PATCH 014/101] [license] Reduce translation overhead. --- src/modules/license/LicensePage.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index fcbe62b3d..ae7d5faa2 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -123,7 +123,7 @@ LicensePage::LicensePage( QWidget* parent ) connect( ui->acceptCheckBox, &QCheckBox::toggled, this, &LicensePage::checkAcceptance ); - CALAMARES_RETRANSLATE( ui->acceptCheckBox->setText( tr( "I accept the terms and conditions above." ) ); ) + CALAMARES_RETRANSLATE_SLOT( &LicensePage::retranslate ) } void @@ -145,13 +145,12 @@ LicensePage::setEntries( const QList< LicenseEntry >& entriesList ) m_entries.append( w ); } ui->licenseEntriesLayout->addStretch(); - - CALAMARES_RETRANSLATE_SLOT( &LicensePage::retranslate ) } void LicensePage::retranslate() { + ui->acceptCheckBox->setText( tr( "I accept the terms and conditions above." ) ); if ( !m_allLicensesOptional ) { ui->mainText->setText( tr( "

License Agreement

" From d8020e3574ddc7ff5f265b5e8d9e76512eddd3a0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 28 Nov 2019 12:03:22 +0100 Subject: [PATCH 015/101] [license] Tidy up setting-of-entries - we loop over all the entries anyway, so calculate allLicensesOptional along the way (debatable whether std::none_of is clearer) - always un-check the accept-box when resetting entries. --- src/modules/license/LicensePage.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index ae7d5faa2..1cb42ea8b 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -130,21 +130,21 @@ void LicensePage::setEntries( const QList< LicenseEntry >& entriesList ) { CalamaresUtils::clearLayout( ui->licenseEntriesLayout ); + + m_allLicensesOptional = true; + m_entries.clear(); m_entries.reserve( entriesList.count() ); - - auto isRequired = []( const LicenseEntry& e ) { return e.m_required; }; - m_allLicensesOptional = std::none_of( entriesList.cbegin(), entriesList.cend(), isRequired ); - - checkAcceptance( false ); - for ( const LicenseEntry& entry : entriesList ) { LicenseWidget* w = new LicenseWidget( entry ); ui->licenseEntriesLayout->addWidget( w ); m_entries.append( w ); + m_allLicensesOptional &= !entry.isRequired(); } - ui->licenseEntriesLayout->addStretch(); + + ui->acceptCheckBox->setChecked(false); + checkAcceptance( false ); } void From d322d783eaaa5009a5e47d0bbd8f5239c66c3d63 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 28 Nov 2019 13:17:15 +0100 Subject: [PATCH 016/101] [license] Chase deprecations in Qt --- src/modules/license/LicenseWidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 25509be95..91e5646dc 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -57,7 +57,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) , m_fullText( nullptr ) { QPalette pal( palette() ); - pal.setColor( QPalette::Background, palette().background().color().lighter( 108 ) ); + pal.setColor( QPalette::Background, palette().window().color().lighter( 108 ) ); setObjectName( "licenseItem" ); From c870fca787d6ca858132821cccca66c5c4dcdeb5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 28 Nov 2019 13:23:11 +0100 Subject: [PATCH 017/101] [license] Use more meaningful names for arrows - The arrows Up, Down, Right are used on toolbuttons, but in the context of this module, those are directions with meaning; give them better names. - Because of #1268, the meaning of up- and down- may be swapped; I'm not sure of which look makes the most sense. This is prep- work for easily swapping the looks by using the meaningful names instead. SEE #1268 --- src/modules/license/LicenseWidget.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 91e5646dc..609e850a9 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -30,6 +30,10 @@ #include #include +static constexpr const auto ArrowOpenExternalLink = Qt::RightArrow; +static constexpr const auto ArrowLocalLicenseIsCollapsed = Qt::UpArrow; +static constexpr const auto ArrowLocalLicenseIsExpanded = Qt::DownArrow; + static QString loadLocalFile( const QUrl& u ) { @@ -82,7 +86,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) { QVBoxLayout* vLayout = new QVBoxLayout; - m_expandLicenseButton->setArrowType( Qt::UpArrow ); + m_expandLicenseButton->setArrowType( ArrowLocalLicenseIsCollapsed ); connect( m_expandLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::expandClicked ); vLayout->addLayout( wiLayout ); @@ -97,7 +101,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) } else { - m_expandLicenseButton->setArrowType( Qt::RightArrow ); + m_expandLicenseButton->setArrowType( ArrowOpenExternalLink ); connect( m_expandLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked ); // Normally setOpenExternalLinks( true ) would do, but we need the @@ -163,19 +167,19 @@ LicenseWidget::retranslateUi() void LicenseWidget::expandClicked() { - if ( m_expandLicenseButton->arrowType() == Qt::DownArrow ) + if ( m_expandLicenseButton->arrowType() == ArrowLocalLicenseIsExpanded ) { - m_expandLicenseButton->setArrowType( Qt::UpArrow ); + m_expandLicenseButton->setArrowType( ArrowLocalLicenseIsCollapsed ); } else { - m_expandLicenseButton->setArrowType( Qt::DownArrow ); + m_expandLicenseButton->setArrowType( ArrowLocalLicenseIsExpanded ); } // Show/hide based on the new arrow direction. if ( m_fullText ) { - m_fullText->setHidden( m_expandLicenseButton->arrowType() == Qt::UpArrow ); + m_fullText->setHidden( m_expandLicenseButton->arrowType() == ArrowLocalLicenseIsCollapsed ); } updateExpandToolTip(); @@ -187,7 +191,7 @@ LicenseWidget::updateExpandToolTip() { if ( m_entry.isLocal() ) { - const bool isNowCollapsed = m_expandLicenseButton->arrowType() == Qt::UpArrow; + const bool isNowCollapsed = m_expandLicenseButton->arrowType() == ArrowLocalLicenseIsCollapsed; m_expandLicenseButton->setToolTip( isNowCollapsed ? tr( "Shows the complete license text" ) : tr( "Hide license text" ) ); From 1de6062233a7bc3fe7f2e7934333ec26c55bf6d6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 28 Nov 2019 13:31:16 +0100 Subject: [PATCH 018/101] [license] Add should-be-expanded display option to license entries - In code, add the necessary bool - document meaning in the config file - actually expand the full text if the entry is local and set to expanding- by-default. This implementation is a bit lazy since it just pretends to click on the toggle button. - While here, reduce scope for UB by initializing POD members --- src/modules/license/LicensePage.cpp | 1 + src/modules/license/LicensePage.h | 6 ++++-- src/modules/license/LicenseWidget.cpp | 7 +++++++ src/modules/license/license.conf | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 1cb42ea8b..45205dcd4 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -72,6 +72,7 @@ LicenseEntry::LicenseEntry( const QVariantMap& conf ) m_url = QUrl( conf[ "url" ].toString() ); m_required = CalamaresUtils::getBool( conf, "required", false ); + m_expand = CalamaresUtils::getBool( conf, "expand", false ); bool ok = false; QString typeString = conf.value( "type", "software" ).toString(); diff --git a/src/modules/license/LicensePage.h b/src/modules/license/LicensePage.h index 65f26b543..dcd3ea7b4 100644 --- a/src/modules/license/LicensePage.h +++ b/src/modules/license/LicensePage.h @@ -56,13 +56,15 @@ struct LicenseEntry bool isValid() const { return !m_id.isEmpty(); } bool isRequired() const { return m_required; } bool isLocal() const; + bool expandByDefault() const { return m_expand; } QString m_id; QString m_prettyName; QString m_prettyVendor; - Type m_type; + Type m_type = Type::Software; QUrl m_url; - bool m_required; + bool m_required = false; + bool m_expand = false; }; class LicensePage : public QWidget diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 609e850a9..a4c1dfaaa 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -98,6 +98,13 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) vLayout->addWidget( m_fullText ); setLayout( vLayout ); + + if ( m_entry.expandByDefault() ) + { + // Since we started in a collapsed state, toggle it to expand. + // This can only be done once the full text has been added. + expandClicked(); + } } else { diff --git a/src/modules/license/license.conf b/src/modules/license/license.conf index 9057f8a51..8a1672887 100644 --- a/src/modules/license/license.conf +++ b/src/modules/license/license.conf @@ -14,6 +14,10 @@ # to the URL is provided, which opens in the default web browser. A local # URL (i.e. file:///) assumes that the contents are HTML or plain text, and # displays the license in-line. YAML: string, mandatory. +# - expand A boolean value only relevant for **local** URLs. If true, +# the license text is displayed in "expanded" form by +# default, rather than requiring the user to first open it up. +# YAML: boolean, optional, default is false. entries: - id: nvidia name: Nvidia @@ -43,3 +47,4 @@ entries: type: software required: true url: file:../LICENSE + expand: true From 344445b437d65f78ffc2e862cb563a2dc969f376 Mon Sep 17 00:00:00 2001 From: bill-auger Date: Fri, 8 Nov 2019 05:38:39 -0500 Subject: [PATCH 019/101] housekeeping - logging for CreateUser Job --- src/modules/users/CreateUserJob.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index b107fb0bb..53b8e1521 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -74,6 +74,8 @@ CreateUserJob::exec() if ( gs->contains( "sudoersGroup" ) && !gs->value( "sudoersGroup" ).toString().isEmpty() ) { + cDebug() << "[CREATEUSER]: preparing sudoers"; + QFileInfo sudoersFi( destDir.absoluteFilePath( "etc/sudoers.d/10-installer" ) ); if ( !sudoersFi.absoluteDir().exists() ) @@ -96,6 +98,8 @@ CreateUserJob::exec() return Calamares::JobResult::error( tr( "Cannot chmod sudoers file." ) ); } + cDebug() << "[CREATEUSER]: preparing groups"; + QFileInfo groupsFi( destDir.absoluteFilePath( "etc/group" ) ); QFile groupsFile( groupsFi.absoluteFilePath() ); if ( !groupsFile.open( QIODevice::ReadOnly | QIODevice::Text ) ) @@ -141,6 +145,8 @@ CreateUserJob::exec() } } + cDebug() << "[CREATEUSER]: creating user"; + QStringList useradd { "useradd", "-m", "-U" }; QString shell = gs->value( "userShell" ).toString(); if ( !shell.isEmpty() ) From 7510e883b8ad57cc10326db8026ac9b82c1f167f Mon Sep 17 00:00:00 2001 From: bill-auger Date: Mon, 11 Nov 2019 01:47:10 -0500 Subject: [PATCH 020/101] pre-select default item in packagechooser --- .../packagechooser/PackageChooserPage.cpp | 10 ++++++++ .../packagechooser/PackageChooserPage.h | 3 +++ .../packagechooser/PackageChooserViewStep.cpp | 25 +++++++++++++++++++ .../packagechooser/PackageChooserViewStep.h | 2 ++ .../packagechooser/packagechooser.conf | 4 +++ 5 files changed, 44 insertions(+) diff --git a/src/modules/packagechooser/PackageChooserPage.cpp b/src/modules/packagechooser/PackageChooserPage.cpp index b4d9f99af..1997c6dcf 100644 --- a/src/modules/packagechooser/PackageChooserPage.cpp +++ b/src/modules/packagechooser/PackageChooserPage.cpp @@ -140,6 +140,16 @@ PackageChooserPage::setModel( QAbstractItemModel* model ) &PackageChooserPage::updateLabels ); } +void +PackageChooserPage::setSelection( const QModelIndex& index ) +{ + if ( index.isValid() ) + { + ui->products->selectionModel()->select( index, QItemSelectionModel::Select ); + currentChanged( index ); + } +} + bool PackageChooserPage::hasSelection() const { diff --git a/src/modules/packagechooser/PackageChooserPage.h b/src/modules/packagechooser/PackageChooserPage.h index 79b9fa69c..b4ef2169b 100644 --- a/src/modules/packagechooser/PackageChooserPage.h +++ b/src/modules/packagechooser/PackageChooserPage.h @@ -35,10 +35,13 @@ class PackageChooserPage : public QWidget public: explicit PackageChooserPage( PackageChooserMode mode, QWidget* parent = nullptr ); + /// @brief Sets the data model for the listview void setModel( QAbstractItemModel* model ); /// @brief Sets the introductory (no-package-selected) texts void setIntroduction( const PackageItem& item ); + /// @brief Selects a listview item + void setSelection( const QModelIndex& index ); /// @brief Is anything selected? bool hasSelection() const; /** @brief Get the list of selected ids diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index 6fb29a4f7..36f6ae015 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -144,6 +144,12 @@ PackageChooserViewStep::isAtEnd() const return true; } +void +PackageChooserViewStep::onActivate() +{ + if ( !m_widget->hasSelection() ) + m_widget->setSelection( m_defaultIdx ); +} void PackageChooserViewStep::onLeave() @@ -198,6 +204,9 @@ PackageChooserViewStep::setConfigurationMap( const QVariantMap& configurationMap } } + QString default_item_id = CalamaresUtils::getString( configurationMap, "default" ); + m_defaultIdx = QModelIndex(); + bool first_time = !m_model; if ( configurationMap.contains( "items" ) ) { @@ -208,6 +217,22 @@ PackageChooserViewStep::setConfigurationMap( const QVariantMap& configurationMap { hookupModel(); } + + // find default item + if ( first_time && m_model && !default_item_id.isEmpty() ) + { + for (int item_n = 0; item_n < m_model->packageCount(); ++item_n) + { + QModelIndex item_idx = m_model->index( item_n, 0 ); + QVariant item_id = m_model->data( item_idx, PackageListModel::IdRole ); + + if ( item_id.toString() == default_item_id ) + { + m_defaultIdx = item_idx; + break; + } + } + } } void diff --git a/src/modules/packagechooser/PackageChooserViewStep.h b/src/modules/packagechooser/PackageChooserViewStep.h index 499571c12..29e65ef82 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.h +++ b/src/modules/packagechooser/PackageChooserViewStep.h @@ -50,6 +50,7 @@ public: bool isAtBeginning() const override; bool isAtEnd() const override; + void onActivate() override; void onLeave() override; Calamares::JobList jobs() const override; @@ -67,6 +68,7 @@ private: PackageChooserMode m_mode; QString m_id; CalamaresUtils::Locale::TranslatedString* m_stepName; // As it appears in the sidebar + QModelIndex m_defaultIdx; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( PackageChooserViewStepFactory ) diff --git a/src/modules/packagechooser/packagechooser.conf b/src/modules/packagechooser/packagechooser.conf index b82a52d3f..d48fa83ce 100644 --- a/src/modules/packagechooser/packagechooser.conf +++ b/src/modules/packagechooser/packagechooser.conf @@ -33,6 +33,10 @@ labels: step: "Packages" step[nl]: "Pakketten" +# (Optional) 'id' of pre-selected list-view item. +# Pre-selects one of the items below. +# default: kde + # Items to display in the chooser. In general, this should be a # pretty short list to avoid overwhelming the UI. This is a list # of objects, and the items are displayed in list order. From 5cb0ee6cc589a491f34d0f9ea70dd8b3e2293dbd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 2 Dec 2019 11:42:32 +0100 Subject: [PATCH 021/101] [welcome] Simplify code - Kevin Kofler pointed out there was a redundant else-if - Only use size for comparison if it's valid --- src/modules/welcome/checker/GeneralRequirements.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp index 6e8e66d5d..2f1590590 100644 --- a/src/modules/welcome/checker/GeneralRequirements.cpp +++ b/src/modules/welcome/checker/GeneralRequirements.cpp @@ -67,11 +67,7 @@ biggestSingleScreen() for ( const auto* screen : QGuiApplication::screens() ) { QSize thisScreen = screen->availableSize(); - if ( !s.isValid() ) - { - s = thisScreen; - } - else if ( s.width() * s.height() < thisScreen.width() * thisScreen.height() ) + if ( !s.isValid() || ( s.width() * s.height() < thisScreen.width() * thisScreen.height() ) ) { s = thisScreen; } @@ -88,7 +84,7 @@ Calamares::RequirementsList GeneralRequirements::checkRequirements() bool hasPower = false; bool hasInternet = false; bool isRoot = false; - bool enoughScreen = (availableSize.width() >= CalamaresUtils::windowMinimumWidth) && (availableSize.height() >= CalamaresUtils::windowMinimumHeight); + bool enoughScreen = availableSize.isValid() && (availableSize.width() >= CalamaresUtils::windowMinimumWidth) && (availableSize.height() >= CalamaresUtils::windowMinimumHeight); qint64 requiredStorageB = CalamaresUtils::GiBtoBytes(m_requiredStorageGiB); cDebug() << "Need at least storage bytes:" << requiredStorageB; From 8988e05f886568f918b3e23de80c00a3facab37a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 2 Dec 2019 11:47:58 +0100 Subject: [PATCH 022/101] Changes: pre-release housekeeping --- CHANGES | 9 +++++++++ CMakeLists.txt | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 2fdba5375..1f721faca 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,15 @@ This release contains contributions from (alphabetically by first name): - No changes to modules. +# 3.2.17.1 (2019-12-02) # + +This is a hotfix release for a bug in the grubcfg module. +Reported by Philip Mueller and Erik Dubois. + +## Modules ## + - The *grubcfg* module had a typo in it that made installations fail. + + # 3.2.17 (2019-11-28) # This release contains contributions from (alphabetically by first name): diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d5da92c9..edea611cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,10 +40,10 @@ cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.18 + VERSION 3.2.17.1 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From 111b05f3c9bd489acf1ae3a5acfe805f4c637dbf Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 3 Dec 2019 11:17:52 +0100 Subject: [PATCH 023/101] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_ar.ts | 42 ++++++++++++++++---------------- lang/calamares_ast.ts | 42 ++++++++++++++++---------------- lang/calamares_be.ts | 42 ++++++++++++++++---------------- lang/calamares_bg.ts | 42 ++++++++++++++++---------------- lang/calamares_ca.ts | 42 ++++++++++++++++---------------- lang/calamares_ca@valencia.ts | 42 ++++++++++++++++---------------- lang/calamares_cs_CZ.ts | 42 ++++++++++++++++---------------- lang/calamares_da.ts | 42 ++++++++++++++++---------------- lang/calamares_de.ts | 42 ++++++++++++++++---------------- lang/calamares_el.ts | 42 ++++++++++++++++---------------- lang/calamares_en.ts | 16 +++--------- lang/calamares_en_GB.ts | 42 ++++++++++++++++---------------- lang/calamares_eo.ts | 42 ++++++++++++++++---------------- lang/calamares_es.ts | 42 ++++++++++++++++---------------- lang/calamares_es_MX.ts | 42 ++++++++++++++++---------------- lang/calamares_es_PR.ts | 42 ++++++++++++++++---------------- lang/calamares_et.ts | 42 ++++++++++++++++---------------- lang/calamares_eu.ts | 42 ++++++++++++++++---------------- lang/calamares_fa.ts | 42 ++++++++++++++++---------------- lang/calamares_fi_FI.ts | 42 ++++++++++++++++---------------- lang/calamares_fr.ts | 42 ++++++++++++++++---------------- lang/calamares_fr_CH.ts | 42 ++++++++++++++++---------------- lang/calamares_gl.ts | 42 ++++++++++++++++---------------- lang/calamares_gu.ts | 42 ++++++++++++++++---------------- lang/calamares_he.ts | 42 ++++++++++++++++---------------- lang/calamares_hi.ts | 42 ++++++++++++++++---------------- lang/calamares_hr.ts | 42 ++++++++++++++++---------------- lang/calamares_hu.ts | 42 ++++++++++++++++---------------- lang/calamares_id.ts | 42 ++++++++++++++++---------------- lang/calamares_is.ts | 42 ++++++++++++++++---------------- lang/calamares_it_IT.ts | 42 ++++++++++++++++---------------- lang/calamares_ja.ts | 42 ++++++++++++++++---------------- lang/calamares_kk.ts | 42 ++++++++++++++++---------------- lang/calamares_kn.ts | 42 ++++++++++++++++---------------- lang/calamares_ko.ts | 42 ++++++++++++++++---------------- lang/calamares_lo.ts | 42 ++++++++++++++++---------------- lang/calamares_lt.ts | 42 ++++++++++++++++---------------- lang/calamares_mk.ts | 42 ++++++++++++++++---------------- lang/calamares_ml.ts | 46 +++++++++++++++++------------------ lang/calamares_mr.ts | 42 ++++++++++++++++---------------- lang/calamares_nb.ts | 42 ++++++++++++++++---------------- lang/calamares_ne_NP.ts | 42 ++++++++++++++++---------------- lang/calamares_nl.ts | 42 ++++++++++++++++---------------- lang/calamares_pl.ts | 42 ++++++++++++++++---------------- lang/calamares_pt_BR.ts | 42 ++++++++++++++++---------------- lang/calamares_pt_PT.ts | 42 ++++++++++++++++---------------- lang/calamares_ro.ts | 42 ++++++++++++++++---------------- lang/calamares_ru.ts | 42 ++++++++++++++++---------------- lang/calamares_sk.ts | 42 ++++++++++++++++---------------- lang/calamares_sl.ts | 42 ++++++++++++++++---------------- lang/calamares_sq.ts | 42 ++++++++++++++++---------------- lang/calamares_sr.ts | 42 ++++++++++++++++---------------- lang/calamares_sr@latin.ts | 42 ++++++++++++++++---------------- lang/calamares_sv.ts | 42 ++++++++++++++++---------------- lang/calamares_th.ts | 42 ++++++++++++++++---------------- lang/calamares_tr_TR.ts | 46 +++++++++++++++++------------------ lang/calamares_uk.ts | 42 ++++++++++++++++---------------- lang/calamares_ur.ts | 42 ++++++++++++++++---------------- lang/calamares_uz.ts | 42 ++++++++++++++++---------------- lang/calamares_zh_CN.ts | 42 ++++++++++++++++---------------- lang/calamares_zh_TW.ts | 42 ++++++++++++++++---------------- 61 files changed, 1268 insertions(+), 1276 deletions(-) diff --git a/lang/calamares_ar.ts b/lang/calamares_ar.ts index 944ccfbba..fda046e72 100644 --- a/lang/calamares_ar.ts +++ b/lang/calamares_ar.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. أقبل الشّروط والأحكام أعلاه. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>اتّفاقيّة التّرخيص</h1>عمليّة الإعداد هذه ستثبّت برمجيّات مملوكة تخضع لشروط ترخيص. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. فضلًا راجع اتّفاقيّات رخص المستخدم النّهائيّ (EULA) أعلاه.<br/>إن لم تقبل الشّروط، فلن تتابع عمليّة الإعداد. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>اتّفاقيّة التّرخيص</h1>يمكن لعمليّة الإعداد تثبيت برمجيّات مملوكة تخضع لشروط ترخيص وذلك لتوفير مزايا إضافيّة وتحسين تجربة المستخدم. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. فضلًا راجع اتّفاقيّات رخص المستخدم النّهائيّ (EULA) أعلاه.<br/>إن لم تقبل الشّروط، فلن تُثبّت البرمجيّات المملوكة وستُستخدم تلك مفتوحة المصدر بدلها. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> لا يستوفِ هذا الحاسوب أدنى متطلّبات تثبيت %1.<br/>لا يمكن متابعة التّثبيت. <a href="#details">التّفاصيل...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. لا يستوفِ هذا الحاسوب بعض المتطلّبات المستحسنة لتثبيت %1.<br/>يمكن للمثبّت المتابعة، ولكن قد تكون بعض الميزات معطّلة. - + This program will ask you some questions and set up %2 on your computer. سيطرح البرنامج بعض الأسئلة عليك ويعدّ %2 على حاسوبك. - + For best results, please ensure that this computer: لأفضل النّتائج، تحقّق من أن الحاسوب: - + System requirements متطلّبات النّظام @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. اسم المستخدم طويل جدًّا. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. اسم المضيف قصير جدًّا. - + Your hostname is too long. اسم المضيف طويل جدًّا. - + Your passwords do not match! لا يوجد تطابق في كلمات السر! diff --git a/lang/calamares_ast.ts b/lang/calamares_ast.ts index 295054dd8..4c9d2894f 100644 --- a/lang/calamares_ast.ts +++ b/lang/calamares_ast.ts @@ -1422,22 +1422,22 @@ L'instalador va colar y van perdese tolos cambeos. Aceuto los términos y condiciones d'enriba. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Alcuerdu de llicencia</h1>Esti procedimientu d'instalación va instalar software privativu que ta suxetu a términos de llicencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Revisa los alcuerdos de llicencia d'usuariu final (EULAs) d'enriba, por favor.<br/>Si nun aceutes dalgún, el procedimientu d'instalación nun pue siguir. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Alcuerdu de llicencia</h1>Esti procedimientu d'instalación pue instalar software privativu que ta suxetu a términos de llicencia pa fornir carauterístiques adicionales y ameyorar la esperiencia del usuariu. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Revisa los alcuerdos de llicencia d'usuariu final (EULAs) d'enriba, por favor.<br/>Si nun aceutes dalgún, el software privativu nun va instalase y van usase les alternatives de códigu abiertu. @@ -1921,7 +1921,7 @@ L'instalador va colar y van perdese tolos cambeos. Desconozse'l fallu - + Password is empty @@ -2781,37 +2781,37 @@ Salida: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Esti ordenador nun satisfaz dalgún de los requirimientos mínimos pa configurar %1.<br/>La configuración nun pue siguir. <a href="#details">Detalles...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Esti ordenador nun satisfaz los requirimientos mínimos pa instalar %1.<br/>La instalación nun pue siguir. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Esti ordenador nun satisfaz dalgún de los requirimientos aconseyaos pa configurar %1.<br/>La configuración pue siguir pero dalgunes carauterístiques podríen desactivase. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Esti ordenador nun satisfaz dalgún requirimientu aconseyáu pa instalar %1.<br/>La instalación pue siguir pero podríen desactivase dalgunes carauterístiques. - + This program will ask you some questions and set up %2 on your computer. Esti programa va facete dalgunes entrugues y va configurar %2 nel ordenador. - + For best results, please ensure that this computer: Pa los meyores resultaos, asegúrate qu'esti ordenador: - + System requirements Requirimientos del sistema @@ -3197,47 +3197,47 @@ Salida: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Si va usar l'ordenador más d'una persona, pues crear más cuentes tres la configuración.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Si va usar l'ordenador más d'una persona, pues crear más cuentes tres la instalación.</small> - + Your username is too long. El nome d'usuariu ye perllargu. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. El nome d'agospiu ye percurtiu. - + Your hostname is too long. El nome d'agospiu ye perllargu. - + Your passwords do not match! ¡Les contraseñes nun concasen! diff --git a/lang/calamares_be.ts b/lang/calamares_be.ts index 717a15292..c2386219f 100644 --- a/lang/calamares_be.ts +++ b/lang/calamares_be.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_bg.ts b/lang/calamares_bg.ts index 08f76a296..3af0f4c2f 100644 --- a/lang/calamares_bg.ts +++ b/lang/calamares_bg.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. Приемам лицензионните условия. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Лицензионно Споразумение</h1>Тази процедура ще инсталира несвободен софтуер, който е обект на лицензионни условия. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Моля погледнете Лицензионните Условия за Крайния Потребител (ЛУКП).<br/>Ако не сте съгласни с условията, процедурата не може да продължи. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Лицензионно Споразумение</h1>Тази процедура може да инсталира несвободен софтуер, който е обект на лицензионни условия, за да предостави допълнителни функции и да подобри работата на потребителя. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Моля погледнете Лицензионните Условия за Крайния Потребител (ЛУКП).<br/>Ако не сте съгласни с условията, несвободния софтуер няма да бъде инсталиран и ще бъдат използвани безплатни алтернативи. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. Неизвестна грешка - + Password is empty @@ -2779,38 +2779,38 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Този компютър не отговаря на минималните изисквания за инсталиране %1.<br/>Инсталацията не може да продължи. <a href="#details">Детайли...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Този компютър не отговаря на някои от препоръчителните изисквания за инсталиране %1.<br/>Инсталацията може да продължи, но някои свойства могат да бъдат недостъпни. - + This program will ask you some questions and set up %2 on your computer. Тази програма ще ви зададе няколко въпроса и ще конфигурира %2 на вашия компютър. - + For best results, please ensure that this computer: За най-добри резултати, моля бъдете сигурни че този компютър: - + System requirements Системни изисквания @@ -3196,47 +3196,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Вашето потребителско име е твърде дълго. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Вашето име на хоста е твърде кратко. - + Your hostname is too long. Вашето име на хоста е твърде дълго. - + Your passwords do not match! Паролите Ви не съвпадат! diff --git a/lang/calamares_ca.ts b/lang/calamares_ca.ts index f6c3252ec..b484cf217 100644 --- a/lang/calamares_ca.ts +++ b/lang/calamares_ca.ts @@ -1423,22 +1423,22 @@ L'instal·lador es tancarà i tots els canvis es perdran. Accepto els termes i les condicions anteriors. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acord de llicència</h1> Aquest procediment de configuració instal·larà programari de propietat subjecte a termes de llicència. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Si us plau, reviseu l'acord de llicència End User License Agreements (EULAs) anterior.<br/>Si no esteu d'acord en els termes, el procediment de configuració no pot continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acord de llicència</h1> Aquest procediment de configuració instal·larà programari de propietat subjecte a termes de llicència per tal de proporcionar característiques addicionals i millorar l'experiència de l'usuari. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Si us plau, reviseu l'acord de llicència End User License Agreements (EULAs) anterior.<br/>Si no esteu d'acord en els termes, no s'instal·larà el programari de propietat i es faran servir les alternatives de codi lliure. @@ -1922,7 +1922,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. Error desconegut - + Password is empty La contrasenya és buida. @@ -2782,37 +2782,37 @@ Sortida: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Aquest ordinador no satisfà els requisits mínims per configurar-hi %1.<br/> La configuració no pot continuar. <a href="#details">Detalls...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Aquest ordinador no satisfà els requisits mínims per instal·lar-hi %1.<br/> La instal·lació no pot continuar. <a href="#details">Detalls...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Aquest ordinador no satisfà alguns dels requisits recomanats per configurar-hi %1.<br/>La configuració pot continuar, però algunes característiques podrien estar inhabilitades. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Aquest ordinador no satisfà alguns dels requisits recomanats per instal·lar-hi %1.<br/>La instal·lació pot continuar, però algunes característiques podrien estar inhabilitades. - + This program will ask you some questions and set up %2 on your computer. Aquest programa us farà unes quantes preguntes i instal·larà %2 al vostre ordinador. - + For best results, please ensure that this computer: Per obtenir els millors resultats, assegureu-vos, si us plau, que aquest ordinador... - + System requirements Requisits del sistema @@ -3198,47 +3198,47 @@ Sortida: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Si més d'una persona usarà aquest ordinador, podeu crear diversos comptes després de la configuració.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Si més d'una persona usarà aquest ordinador, podeu crear diversos comptes després de la instal·lació.</small> - + Your username is too long. El nom d'usuari és massa llarg. - + Your username must start with a lowercase letter or underscore. El nom d'usuari ha de començar amb una lletra en minúscula o una ratlla baixa. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Només es permeten lletres en minúscula, números, ratlles baixes i guions. - + Only letters, numbers, underscore and hyphen are allowed. Només es permeten lletres, números, ratlles baixes i guions. - + Your hostname is too short. El nom d'amfitrió és massa curt. - + Your hostname is too long. El nom d'amfitrió és massa llarg. - + Your passwords do not match! Les contrasenyes no coincideixen! diff --git a/lang/calamares_ca@valencia.ts b/lang/calamares_ca@valencia.ts index 27992e837..86873e7c5 100644 --- a/lang/calamares_ca@valencia.ts +++ b/lang/calamares_ca@valencia.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_cs_CZ.ts b/lang/calamares_cs_CZ.ts index cde260612..78d2f4c38 100644 --- a/lang/calamares_cs_CZ.ts +++ b/lang/calamares_cs_CZ.ts @@ -1423,22 +1423,22 @@ Instalační program bude ukončen a všechny změny ztraceny. Souhlasím s výše uvedenými podmínkami. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licenční ujednání</h1>Tato instalace nainstaluje také proprietární software, který podléhá licenčním podmínkám. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Projděte si výše uvedené „licenční smlouvy s koncovým uživatelem“ (EULA).<br/> Pokud s podmínkami v nich nesouhlasíte, ukončete instalační proces. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licenční ujednání</h1>Tento instalační postup může nainstalovat také proprietární software, který podléhá licenčním podmínkám, ale který poskytuje některé další funkce a zlepšuje uživatelskou přivětivost. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Projděte si výše uvedené „licenční smlouvy s koncovým uživatelem“ (EULA).<br/> Pokud s podmínkami v nich nesouhlasíte, místo proprietárního software budou použity open source alternativy. @@ -1922,7 +1922,7 @@ Instalační program bude ukončen a všechny změny ztraceny. Neznámá chyba - + Password is empty Heslo není vyplněné @@ -2782,37 +2782,37 @@ Výstup: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Počítač nesplňuje minimální požadavky pro instalaci %1.<br/>Instalace nemůže pokračovat <a href="#details">Podrobnosti…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Počítač nesplňuje minimální požadavky pro instalaci %1.<br/>Instalace nemůže pokračovat <a href="#details">Podrobnosti…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Počítač nesplňuje některé doporučené požadavky pro instalaci %1.<br/>Instalace může pokračovat, ale některé funkce mohou být vypnuty. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Počítač nesplňuje některé doporučené požadavky pro instalaci %1.<br/>Instalace může pokračovat, ale některé funkce mohou být vypnuty. - + This program will ask you some questions and set up %2 on your computer. Tento program vám položí několik dotazů, aby na základě odpovědí příslušně nainstaloval %2 na váš počítač. - + For best results, please ensure that this computer: Nejlepších výsledků se dosáhne, pokud tento počítač bude: - + System requirements Požadavky na systém @@ -3198,47 +3198,47 @@ Výstup: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Pokud bude tento počítač používat více lidí, můžete přidat uživatelské účty po dokončení instalace.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Pokud bude tento počítač používat více lidí, můžete přidat uživatelské účty po dokončení instalace.</small> - + Your username is too long. Vaše uživatelské jméno je příliš dlouhé. - + Your username must start with a lowercase letter or underscore. Je třeba, aby uživatelské jméno začínalo na malé písmeno nebo podtržítko. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Je možné použít pouze malá písmena, číslice, podtržítko a spojovník. - + Only letters, numbers, underscore and hyphen are allowed. Je možné použít pouze písmena, číslice, podtržítko a spojovník. - + Your hostname is too short. Název stroje je příliš krátký. - + Your hostname is too long. Název stroje je příliš dlouhý. - + Your passwords do not match! Zadání hesla se neshodují! diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 029f88776..50c8cae6d 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -1423,22 +1423,22 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Jeg accepterer de ovenstående vilkår og betingelser. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licensaftale</h1>Opsætningsproceduren installerer proprietær software der er underlagt licenseringsvilkår. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Gennemgå venligst slutbrugerlicensaftalerne (EULA'er) ovenfor.<br/>Hvis du ikke er enig med disse vilkår, kan opsætningsproceduren ikke fortsætte. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licensaftale</h1>Opsætningsproceduren kan installere proprietær software der er underlagt licenseringsvilkår, for at kunne tilbyde yderligere funktionaliteter og forbedre brugeroplevelsen. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Gennemgå venligst slutbrugerlicensaftalerne (EULA'er) ovenfor.<br/>Hvis du ikke er enig med disse vilkår vil der ikke blive installeret proprietær software, og open source-alternativer vil blive brugt i stedet. @@ -1922,7 +1922,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Ukendt fejl - + Password is empty Adgangskoden er tom @@ -2782,37 +2782,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Computeren imødekommer ikke minimumsystemkravene for at opsætte %1.<br/>Opsætningen kan ikke fortsætte. <a href="#details">Detaljer ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Computeren imødekommer ikke minimumsystemkravene for at installere %1.<br/>Installationen kan ikke fortsætte. <a href="#details">Detaljer ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Computeren imødekommer ikke nogle af de anbefalede systemkrav for at opsætte %1.<br/>Opsætningen kan fortsætte, men nogle funktionaliteter kan være deaktiveret. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Computeren imødekommer ikke nogle af de anbefalede systemkrav for at installere %1.<br/>Installationen kan fortsætte, men nogle funktionaliteter kan være deaktiveret. - + This program will ask you some questions and set up %2 on your computer. Programmet vil stille dig nogle spørgsmål og opsætte %2 på din computer. - + For best results, please ensure that this computer: For at få det bedste resultat sørg venligst for at computeren: - + System requirements Systemkrav @@ -3198,47 +3198,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Hvis mere end én person bruger computeren, kan du oprette flere konti efter opsætningen.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Hvis mere end én person bruger computeren, kan du oprette flere konti efter installationen.</small> - + Your username is too long. Dit brugernavn er for langt. - + Your username must start with a lowercase letter or underscore. Dit brugernavn skal begynde med et bogstav med småt eller understregning. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Det er kun tilladt at bruge bogstaver med småt, tal, understregning og bindestreg. - + Only letters, numbers, underscore and hyphen are allowed. Det er kun tilladt at bruge bogstaver, tal, understregning og bindestreg. - + Your hostname is too short. Dit værtsnavn er for kort. - + Your hostname is too long. Dit værtsnavn er for langt. - + Your passwords do not match! Dine adgangskoder er ikke ens! diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index aa5d03a25..8b1bdce5c 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -1423,22 +1423,22 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Ich akzeptiere die obigen Allgemeinen Geschäftsbedingungen. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Lizenzvereinbarung</h1>Dieses Installationsprogramm wird proprietäre Software installieren, welche Lizenzbedingungen unterliegt. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Bitte überprüfen Sie die obigen Lizenzvereinbarungen für Endbenutzer (EULAs).<br/>Wenn Sie mit diesen Bedingungen nicht einverstanden sind, kann das Installationsprogramm nicht fortgesetzt werden. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1> Lizenzvereinbarung </ h1> Dieses Installationsprogramm kann proprietäre Software installieren, welche Lizenzbedingungen unterliegt, um zusätzliche Funktionen bereitzustellen und die Benutzerfreundlichkeit zu verbessern. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Bitte überprüfen Sie die obigen Lizenzvereinbarungen für Endbenutzer (EULAs).<br/>Wenn Sie mit diesen Bedingungen nicht einverstanden sind, wird keine proprietäre Software installiert werden. Stattdessen werden quelloffene Alternativen verwendet. @@ -1922,7 +1922,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Unbekannter Fehler - + Password is empty Passwort ist leer @@ -2782,37 +2782,37 @@ Ausgabe: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Dieser Computer erfüllt nicht die Mindestvoraussetzungen für die Installation von %1.<br/>Die Installation kann nicht fortgesetzt werden. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Dieser Computer erfüllt nicht die Mindestvoraussetzungen für die Installation von %1.<br/>Die Installation kann nicht fortgesetzt werden. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Dieser Computer erfüllt nicht alle Voraussetzungen für die Installation von %1.<br/>Die Installation kann fortgesetzt werden, aber es werden eventuell nicht alle Funktionen verfügbar sein. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Dieser Computer erfüllt nicht alle Voraussetzungen für die Installation von %1.<br/>Die Installation wird fortgesetzt, aber es werden eventuell nicht alle Funktionen verfügbar sein. - + This program will ask you some questions and set up %2 on your computer. Dieses Programm wird Ihnen einige Fragen stellen, um %2 auf Ihrem Computer zu installieren. - + For best results, please ensure that this computer: Für das beste Ergebnis stellen Sie bitte sicher, dass dieser Computer: - + System requirements Systemanforderungen @@ -3198,47 +3198,47 @@ Ausgabe: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Falls dieser Computer von mehr als einer Person benutzt werden soll, können weitere Benutzerkonten nach der Installation eingerichtet werden.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Falls dieser Computer von mehr als einer Person benutzt werden soll, können weitere Benutzerkonten nach der Installation eingerichtet werden.</small> - + Your username is too long. Ihr Nutzername ist zu lang. - + Your username must start with a lowercase letter or underscore. Ihr Benutzername muss mit einem Kleinbuchstaben oder Unterstrich beginnen. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Es sind nur Kleinbuchstaben, Zahlen, Unterstrich und Bindestrich erlaubt. - + Only letters, numbers, underscore and hyphen are allowed. Es sind nur Buchstaben, Zahlen, Unter- und Bindestriche erlaubt. - + Your hostname is too short. Ihr Hostname ist zu kurz. - + Your hostname is too long. Ihr Hostname ist zu lang. - + Your passwords do not match! Ihre Passwörter stimmen nicht überein! diff --git a/lang/calamares_el.ts b/lang/calamares_el.ts index 44f9fefe9..1ad6e433a 100644 --- a/lang/calamares_el.ts +++ b/lang/calamares_el.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. Δέχομαι τους παραπάνω όρους και προϋποθέσεις. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Άδεια χρήσης</h1>Η διαδικασία ρύθμισης θα εγκαταστήσει ιδιόκτητο λογισμικό που υπόκειται στους όρους αδειών. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Άδεια χρήσης</h1>Η διαδικασία ρύθμισης θα εγκαταστήσει ιδιόκτητο λογισμικό που υπόκειται στους όρους αδειών προκειμένου να παρέχει πρόσθετες δυνατότητες και να ενισχύσει την εμπειρία του χρήστη. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ο υπολογιστής δεν ικανοποιεί τις ελάχιστες απαιτήσεις για την εγκατάσταση του %1.<br/>Η εγκατάσταση δεν μπορεί να συνεχιστεί. <a href="#details">Λεπτομέριες...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Αυτός ο υπολογιστής δεν ικανοποιεί μερικές από τις συνιστώμενες απαιτήσεις για την εγκατάσταση του %1.<br/>Η εγκατάσταση μπορεί να συνεχιστεί, αλλά ορισμένες λειτουργίες μπορεί να απενεργοποιηθούν. - + This program will ask you some questions and set up %2 on your computer. Το πρόγραμμα θα σας κάνει μερικές ερωτήσεις και θα ρυθμίσει το %2 στον υπολογιστή σας. - + For best results, please ensure that this computer: Για καλύτερο αποτέλεσμα, παρακαλώ βεβαιωθείτε ότι ο υπολογιστής: - + System requirements Απαιτήσεις συστήματος @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Το όνομα χρήστη είναι πολύ μακρύ. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Το όνομα υπολογιστή είναι πολύ σύντομο. - + Your hostname is too long. Το όνομα υπολογιστή είναι πολύ μακρύ. - + Your passwords do not match! Οι κωδικοί πρόσβασης δεν ταιριάζουν! diff --git a/lang/calamares_en.ts b/lang/calamares_en.ts index 08595d4e0..e88d97377 100644 --- a/lang/calamares_en.ts +++ b/lang/calamares_en.ts @@ -1,6 +1,4 @@ - - - + BootInfoWidget @@ -212,18 +210,12 @@ Waiting for %n module(s). - - Waiting for %n module(s). - Waiting for %n module(s). - + Waiting for %n module(s).Waiting for %n module(s). (%n second(s)) - - (%n second(s)) - (%n second(s)) - + (%n second(s))(%n second(s)) @@ -3432,4 +3424,4 @@ Output: Welcome - + \ No newline at end of file diff --git a/lang/calamares_en_GB.ts b/lang/calamares_en_GB.ts index 049093900..f0eb9799c 100644 --- a/lang/calamares_en_GB.ts +++ b/lang/calamares_en_GB.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. Unknown error - + Password is empty @@ -2780,37 +2780,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: For best results, please ensure that this computer: - + System requirements System requirements @@ -3196,47 +3196,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Your hostname is too short. - + Your hostname is too long. Your hostname is too long. - + Your passwords do not match! Your passwords do not match! diff --git a/lang/calamares_eo.ts b/lang/calamares_eo.ts index f7b0c8700..33bde53d5 100644 --- a/lang/calamares_eo.ts +++ b/lang/calamares_eo.ts @@ -1421,22 +1421,22 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 3c87a2036..a31b3d36a 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -1422,22 +1422,22 @@ Saldrá del instalador y se perderán todos los cambios. Acepto los términos y condiciones anteriores. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acuerdo de licencia</ h1> Este procedimiento de instalación instalará el software propietario que está sujeto a los términos de licencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor, revise los acuerdos de licencia de usuario final (EULAs) anterior. <br/>Si usted no está de acuerdo con los términos, el procedimiento de instalación no puede continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acuerdo de licencia</ h1> Este procedimiento de configuración se puede instalar el software propietario que está sujeta a condiciones de licencia con el fin de proporcionar características adicionales y mejorar la experiencia del usuario. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor, revise los acuerdos de licencia de usuario final (EULAs) anterior.<br/>Si usted no está de acuerdo con los términos, el software propietario no se instalará, y las alternativas de código abierto se utilizarán en su lugar. @@ -1921,7 +1921,7 @@ Saldrá del instalador y se perderán todos los cambios. Error desconocido - + Password is empty @@ -2781,37 +2781,37 @@ Salida: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este ordenador no cumple los requisitos mínimos para la instalación. %1.<br/>La instalación no puede continuar. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este ordenador no cumple alguno de los requisitos recomendados para la instalación %1.<br/>La instalación puede continuar, pero algunas funcionalidades podrían ser deshabilitadas. - + This program will ask you some questions and set up %2 on your computer. El programa le preguntará algunas cuestiones y configurará %2 en su ordenador. - + For best results, please ensure that this computer: Para obtener los mejores resultados, por favor asegúrese que este ordenador: - + System requirements Requisitos del sistema @@ -3197,47 +3197,47 @@ Salida: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Su nombre de usuario es demasiado largo. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. El nombre del Host es demasiado corto. - + Your hostname is too long. El nombre del Host es demasiado largo. - + Your passwords do not match! ¡Sus contraseñas no coinciden! diff --git a/lang/calamares_es_MX.ts b/lang/calamares_es_MX.ts index 38a1ca28f..863b8ca91 100644 --- a/lang/calamares_es_MX.ts +++ b/lang/calamares_es_MX.ts @@ -1423,22 +1423,22 @@ El instalador terminará y se perderán todos los cambios. Acepto los terminos y condiciones anteriores. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acuerdo de Licencia</h1>Este procediemiento de configuración instalará software que está sujeto a terminos de la licencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor, revise el acuerdo de licencia de usuario final (EULAs) anterior. <br/>Si usted no está de acuerdo con los términos, el procedimiento de configuración no podrá continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acuerdo de licencia</ h1> Este procedimiento de configuración se puede instalar software privativo que está sujeto a condiciones de licencia con el fin de proporcionar características adicionales y mejorar la experiencia del usuario. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor revise los acuerdos de licencia de usuario final (EULAs) anterior.<br/>Si usted no está de acuerdo con los términos, el software privativo no se instalará, y las alternativas de código abierto se utilizarán en su lugar. @@ -1922,7 +1922,7 @@ El instalador terminará y se perderán todos los cambios. Error desconocido - + Password is empty @@ -2783,37 +2783,37 @@ Salida ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este equipo no cumple los requisitos mínimos para la instalación. %1.<br/>La instalación no puede continuar. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este equipo no cumple alguno de los requisitos recomendados para la instalación %1.<br/>La instalación puede continuar, pero algunas funcionalidades podrían ser deshabilitadas. - + This program will ask you some questions and set up %2 on your computer. El programa le hará algunas preguntas y configurará %2 en su ordenador. - + For best results, please ensure that this computer: Para mejores resultados, por favor verifique que esta computadora: - + System requirements Requisitos de sistema @@ -3199,47 +3199,47 @@ Salida UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Si más de una persona usará esta computadora, puede crear múltiples cuentas después de la configuración</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Si más de una persona usará esta computadora, puede crear varias cuentas después de la instalación.</small> - + Your username is too long. Tu nombre de usuario es demasiado largo. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. El nombre de tu equipo es demasiado corto. - + Your hostname is too long. El nombre de tu equipo es demasiado largo. - + Your passwords do not match! Las contraseñas no coinciden! diff --git a/lang/calamares_es_PR.ts b/lang/calamares_es_PR.ts index c12732c58..bcc26fab5 100644 --- a/lang/calamares_es_PR.ts +++ b/lang/calamares_es_PR.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_et.ts b/lang/calamares_et.ts index fc8df547f..3e58daea3 100644 --- a/lang/calamares_et.ts +++ b/lang/calamares_et.ts @@ -1421,22 +1421,22 @@ Paigaldaja sulgub ning kõik muutused kaovad. Ma nõustun alljärgevate tingimustega. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Litsensileping</h1>See seadistusprotseduur paigaldab omandiõigusega tarkvara, mis vastab litsensitingimustele. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).<br/>Kui sa tingimustega ei nõustu, ei saa seadistusprotseduur jätkata. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Litsensileping</h1>See seadistusprotseduur võib paigaldada omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).<br/>Kui sa tingimustega ei nõustu, ei paigaldata omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive. @@ -1920,7 +1920,7 @@ Paigaldaja sulgub ning kõik muutused kaovad. Tundmatu viga - + Password is empty @@ -2780,37 +2780,37 @@ Väljund: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> See arvuti ei rahulda %1 paigldamiseks vajalikke minimaaltingimusi.<br/>Paigaldamine ei saa jätkuda. <a href="#details">Detailid...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.<br/>Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud. - + This program will ask you some questions and set up %2 on your computer. See programm küsib sult mõned küsimused ja seadistab %2 sinu arvutisse. - + For best results, please ensure that this computer: Parimate tulemuste jaoks palun veendu, et see arvuti: - + System requirements Süsteeminõudmised @@ -3196,47 +3196,47 @@ Väljund: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Sinu kasutajanimi on liiga pikk. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Sinu hostinimi on liiga lühike. - + Your hostname is too long. Sinu hostinimi on liiga pikk. - + Your passwords do not match! Sinu paroolid ei ühti! diff --git a/lang/calamares_eu.ts b/lang/calamares_eu.ts index c19581766..a95c90977 100644 --- a/lang/calamares_eu.ts +++ b/lang/calamares_eu.ts @@ -1421,22 +1421,22 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. Goiko baldintzak onartzen ditut. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. Hutsegite ezezaguna - + Password is empty @@ -2779,37 +2779,37 @@ Irteera: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Konputagailu honek ez dauzka gutxieneko eskakizunak %1 instalatzeko. <br/>Instalazioak ezin du jarraitu. <a href="#details">Xehetasunak...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Konputagailu honek ez du betetzen gomendatutako zenbait eskakizun %1 instalatzeko. <br/>Instalazioak jarraitu ahal du, baina zenbait ezaugarri desgaituko dira. - + This program will ask you some questions and set up %2 on your computer. Konputagailuan %2 ezartzeko programa honek hainbat galdera egingo dizkizu. - + For best results, please ensure that this computer: Emaitza egokienak lortzeko, ziurtatu ordenagailu honek baduela: - + System requirements Sistemaren betebeharrak @@ -3195,47 +3195,47 @@ Irteera: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Zure erabiltzaile-izena luzeegia da. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Zure ostalari-izena laburregia da. - + Your hostname is too long. Zure ostalari-izena luzeegia da. - + Your passwords do not match! Pasahitzak ez datoz bat! diff --git a/lang/calamares_fa.ts b/lang/calamares_fa.ts index ab7405444..277c58558 100644 --- a/lang/calamares_fa.ts +++ b/lang/calamares_fa.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_fi_FI.ts b/lang/calamares_fi_FI.ts index 02fc59b47..b65b7cea1 100644 --- a/lang/calamares_fi_FI.ts +++ b/lang/calamares_fi_FI.ts @@ -1423,22 +1423,22 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. Hyväksyn yllä olevat ehdot ja edellytykset. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Lisenssisopimus</h1>Tämä asennustoiminto asentaa ohjelmistoja, joihin sovelletaan lisenssiehtoja. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Katso yllä olevat käyttöoikeussopimukset (EULA).<br/>Jos et hyväksy ehtoja, asennus ei voi jatkua. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Lisenssisopimus</h1>Tämä asennustoiminto voi asentaa tekijänoikeuksin rajattua ohjelmistoja, joihin sovelletaan lisenssiehtoja, jotta voidaan tarjota lisäominaisuuksia ja parantaa käyttäjäkokemusta. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Katso yllä olevat käyttöoikeussopimukset (EULA).<br/>Jos et hyväksy ehtoja, tekijänoikeuksin rajattua ohjelmistoa ei asenneta, ja avoimen lähdekoodin vaihtoehtoja käytetään sen sijaan. @@ -1922,7 +1922,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. Tuntematon virhe - + Password is empty Salasana on tyhjä @@ -2782,38 +2782,38 @@ Ulostulo: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Tämä tietokone ei täytä vähimmäisvaatimuksia, %1.<br/>Asennusta ei voi jatkaa. <a href="#details">Yksityiskohdat...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Tämä tietokone ei täytä asennuksen vähimmäisvaatimuksia, %1.<br/>Asennus ei voi jatkua. <a href="#details">Yksityiskohdat...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.<br/>Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1. Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + This program will ask you some questions and set up %2 on your computer. Tämä ohjelma kysyy joitakin kysymyksiä %2 ja asentaa tietokoneeseen. - + For best results, please ensure that this computer: Saadaksesi parhaan lopputuloksen, tarkista että tämä tietokone: - + System requirements Järjestelmävaatimukset @@ -3199,47 +3199,47 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Jos useampi kuin yksi henkilö käyttää tätä tietokonetta, voit luoda useita tilejä asennuksen jälkeen.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Jos useampi kuin yksi henkilö käyttää tätä tietokonetta, voit luoda useita tilejä asennuksen jälkeen.</small> - + Your username is too long. Käyttäjänimesi on liian pitkä. - + Your username must start with a lowercase letter or underscore. Käyttäjätunnuksesi täytyy alkaa pienillä kirjaimilla tai alaviivoilla. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Vain pienet kirjaimet, numerot, alaviivat ja tavuviivat ovat sallittuja. - + Only letters, numbers, underscore and hyphen are allowed. Vain kirjaimet, numerot, alaviivat ja tavuviivat ovat sallittuja. - + Your hostname is too short. Isäntänimesi on liian lyhyt. - + Your hostname is too long. Isäntänimesi on liian pitkä. - + Your passwords do not match! Salasanasi eivät täsmää! diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index c5b055f5a..7404fee68 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -1423,22 +1423,22 @@ L'installateur se fermera et les changements seront perdus. J'accepte les termes et conditions ci-dessus. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Accord de licence</h1>Cette procédure de configuration va installer des logiciels propriétaire sujet à des termes de licence. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Merci de relire les Contrats de Licence Utilisateur Final (CLUF/EULA) ci-dessus.<br/>Si vous n'acceptez pas les termes, la procédure ne peut pas continuer. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Accord de licence</h1>Cette procédure peut installer des logiciels propriétaires qui sont soumis à des termes de licence afin d'ajouter des fonctionnalités et améliorer l'expérience utilisateur. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Merci de relire les Contrats de Licence Utilisateur Final (CLUF/EULA) ci-dessus.<br/>Si vous n'acceptez pas les termes, les logiciels propriétaires ne seront pas installés, et des alternatives open-source seront utilisées à la place. @@ -1922,7 +1922,7 @@ L'installateur se fermera et les changements seront perdus. Erreur inconnue - + Password is empty Le mot de passe est vide @@ -2783,37 +2783,37 @@ Sortie ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Cet ordinateur ne satisfait pas les minimum prérequis pour configurer %1.<br/>La configuration ne peut pas continuer. <a href="#details">Détails...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Cet ordinateur ne satisfait pas les minimum prérequis pour installer %1.<br/>L'installation ne peut pas continuer. <a href="#details">Détails...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Cet ordinateur ne satisfait pas certains des prérequis recommandés pour configurer %1.<br/>La configuration peut continuer, mais certaines fonctionnalités pourraient être désactivées. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Cet ordinateur ne satisfait pas certains des prérequis recommandés pour installer %1.<br/>L'installation peut continuer, mais certaines fonctionnalités pourraient être désactivées. - + This program will ask you some questions and set up %2 on your computer. Ce programme va vous poser quelques questions et configurer %2 sur votre ordinateur. - + For best results, please ensure that this computer: Pour de meilleur résultats, merci de s'assurer que cet ordinateur : - + System requirements Prérequis système @@ -3199,47 +3199,47 @@ Sortie UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>si plusieurs personnes utilisent cet ordinateur, vous pourrez créer plusieurs comptes après la configuration.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>si plusieurs personnes utilisent cet ordinateur, vous pourrez créer plusieurs comptes après l'installation.</small> - + Your username is too long. Votre nom d'utilisateur est trop long. - + Your username must start with a lowercase letter or underscore. Votre nom d'utilisateur doit commencer avec une lettre minuscule ou un underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Seuls les minuscules, nombres, underscores et tirets sont autorisés. - + Only letters, numbers, underscore and hyphen are allowed. Seuls les lettres, nombres, underscores et tirets sont autorisés. - + Your hostname is too short. Le nom d'hôte est trop petit. - + Your hostname is too long. Le nom d'hôte est trop long. - + Your passwords do not match! Vos mots de passe ne correspondent pas ! diff --git a/lang/calamares_fr_CH.ts b/lang/calamares_fr_CH.ts index 50604f03f..1e77c7bb6 100644 --- a/lang/calamares_fr_CH.ts +++ b/lang/calamares_fr_CH.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_gl.ts b/lang/calamares_gl.ts index 4b98e819f..49990b796 100644 --- a/lang/calamares_gl.ts +++ b/lang/calamares_gl.ts @@ -1422,22 +1422,22 @@ O instalador pecharase e perderanse todos os cambios. Acepto os termos e condicións anteriores. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acordo de licencia</h1>Este proceso de configuración instalará programas privativos suxeito a termos de licencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Faga o favor de revisalos Acordos de Licencia de Usuario Final (ALUF) seguintes. <br/>De non estar dacordo cos termos non se pode seguir co proceso de configuración. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acordo de licencia</h1>Este proceso de configuración pode instalar programas privativos suxeito a termos de licencia para fornecer características adicionaís e mellorala experiencia do usuario. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Faga o favor de revisalos Acordos de Licencia de Usuario Final (ALUF) seguintes. <br/>De non estar dacordo cos termos non se instalará o programa privativo e no seu lugar usaranse alternativas de código aberto. @@ -1921,7 +1921,7 @@ O instalador pecharase e perderanse todos os cambios. Erro descoñecido - + Password is empty @@ -2781,37 +2781,37 @@ Saída: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este ordenador non satisfai os requerimentos mínimos ara a instalación de %1.<br/>A instalación non pode continuar. <a href="#details">Máis información...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este ordenador non satisfai algúns dos requisitos recomendados para instalar %1.<br/> A instalación pode continuar, pero pode que algunhas características sexan desactivadas. - + This program will ask you some questions and set up %2 on your computer. Este programa faralle algunhas preguntas mentres prepara %2 no seu ordenador. - + For best results, please ensure that this computer: Para os mellores resultados, por favor, asegúrese que este ordenador: - + System requirements Requisitos do sistema @@ -3197,47 +3197,47 @@ Saída: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. O nome de usuario é demasiado longo. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. O nome do computador é demasiado curto. - + Your hostname is too long. O nome do computador é demasiado longo. - + Your passwords do not match! Os contrasinais non coinciden! diff --git a/lang/calamares_gu.ts b/lang/calamares_gu.ts index dc182c84f..9718c0450 100644 --- a/lang/calamares_gu.ts +++ b/lang/calamares_gu.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts index 7261ef830..311d76bc6 100644 --- a/lang/calamares_he.ts +++ b/lang/calamares_he.ts @@ -1423,22 +1423,22 @@ The installer will quit and all changes will be lost. התנאים וההגבלות שלמעלה מקובלים עלי. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>הסכם רישיון</h1>אשף התקנה זה יבצע התקנה של תכניות קנייניות אשר כפופות לתנאי רישיון. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. נא לעיין בהסכם משתמש הקצה (EULA) מעלה.<br/> אם התנאים אינם מקובלים עליך, תהליך ההתקנה יופסק. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>הסכם רישיון</h1>אשף התקנה זה יכול לבצע התקנה של תוכנות קנייניות אשר כפופות לתנאי רישיון בכדי לספק תכולות נוספות ולשדרג את חווית המשתמש. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. נא לעיין בהסכם משתמש הקצה (EULA) מעלה.<br/> אם התנאים אינם מקובלים עליך, לא תותקנה תכניות קנייניות, במקומן תותקנה תכניות חלופיות מבוססות קוד פתוח. @@ -1922,7 +1922,7 @@ The installer will quit and all changes will be lost. שגיאה לא ידועה - + Password is empty הססמה ריקה @@ -2782,37 +2782,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> המחשב לא עומד ברף הדרישות המזערי להתקנת %1. <br/>להתקנה אין אפשרות להמשיך. <a href="#details">פרטים…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> המחשב לא עומד ברף דרישות המינימום להתקנת %1. <br/>ההתקנה לא יכולה להמשיך. <a href="#details"> פרטים...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. המחשב לא עומד בחלק מרף דרישות המזערי להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. המחשב לא עומד בחלק מרף דרישות המינימום להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. - + This program will ask you some questions and set up %2 on your computer. תכנית זו תשאל אותך מספר שאלות ותתקין את %2 על המחשב שלך. - + For best results, please ensure that this computer: לקבלת התוצאות הטובות ביותר, נא לוודא כי מחשב זה: - + System requirements דרישות מערכת @@ -3198,47 +3198,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>אם מחשב זה מיועד לשימוש לטובת למעלה ממשתמש אחד, ניתן ליצור מגוון חשבונות לאחר ההתקנה.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>אם מחשב זה מיועד לשימוש לטובת למעלה ממשתמש אחד, ניתן ליצור מגוון חשבונות לאחר ההתקנה.</small> - + Your username is too long. שם המשתמש ארוך מדי. - + Your username must start with a lowercase letter or underscore. שם המשתמש שלך חייב להתחיל באות קטנה או בקו תחתי. - + Only lowercase letters, numbers, underscore and hyphen are allowed. מותר להשתמש רק באותיות קטנות, ספרות, קווים תחתיים ומינוסים. - + Only letters, numbers, underscore and hyphen are allowed. מותר להשתמש רק באותיות, ספרות, קווים תחתיים ומינוסים. - + Your hostname is too short. שם המחשב קצר מדי. - + Your hostname is too long. שם המחשב ארוך מדי. - + Your passwords do not match! הססמאות לא תואמות! diff --git a/lang/calamares_hi.ts b/lang/calamares_hi.ts index 6457384d9..dcf86aae9 100644 --- a/lang/calamares_hi.ts +++ b/lang/calamares_hi.ts @@ -1422,22 +1422,22 @@ The installer will quit and all changes will be lost. मैं उपरोक्त नियम व शर्तें स्वीकार करता हूँ। - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>लाइसेंस अनुबंध</h1>यह लाइसेंस शर्तों के अधीन अमुक्त सॉफ्टवेयर को इंस्टॉल करेगा। - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. कृपया ऊपर दिए गए लक्षित उपयोक्ता लाइसेंस अनुबंध (EULAs) ध्यानपूर्वक पढ़ें।<br/> यदि आप शर्तों से असहमत है, तो सेटअप को ज़ारी नहीं रखा जा सकता। - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>लाइसेंस अनुबंध</h1> यह सेटअप प्रक्रिया अतिरिक्त सुविधाएँ प्रदान करने व उपयोक्ता अनुभव में वृद्धि हेतु लाइसेंस शर्तों के अधीन अमुक्त सॉफ्टवेयर को इंस्टॉल कर सकती है। - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. कृपया ऊपर दिए गए लक्षित उपयोक्ता लाइसेंस अनुबंध (EULAs) ध्यानपूर्वक पढ़ें।<br/> यदि आप शर्तों से असहमत है, तो अमुक्त सॉफ्टवेयर इंस्टाल नहीं किया जाएगा व उनके मुक्त विकल्प उपयोग किए जाएँगे। @@ -1921,7 +1921,7 @@ The installer will quit and all changes will be lost. अज्ञात त्रुटि - + Password is empty @@ -2781,37 +2781,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> यह कंप्यूटर %1 को सेटअप करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> यह कंप्यूटर %1 को इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. यह कंप्यूटर %1 को सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ को निष्क्रिय किया जा सकता हैं। - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. यह कंप्यूटर %1 को इंस्टॉल करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ को निष्क्रिय किया जा सकता हैं। - + This program will ask you some questions and set up %2 on your computer. यह प्रोग्राम एक प्रश्नावली के आधार पर आपके कंप्यूटर पर %2 को सेट करेगा। - + For best results, please ensure that this computer: उत्तम परिणाम हेतु, कृपया सुनिश्चित करें कि यह कंप्यूटर : - + System requirements सिस्टम इंस्टॉल हेतु आवश्यकताएँ @@ -3197,47 +3197,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>यदि एक से अधिक व्यक्ति इस कंप्यूटर का उपयोग करेंगे, तो आप सेटअप के उपरांत एकाधिक अकाउंट बना सकते हैं।</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>यदि एक से अधिक व्यक्ति इस कंप्यूटर का उपयोग करेंगे, तो आप इंस्टॉल के उपरांत एकाधिक अकाउंट बना सकते हैं।</small> - + Your username is too long. आपका उपयोक्ता नाम काफ़ी लंबा है। - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. आपका होस्ट नाम काफ़ी छोटा है। - + Your hostname is too long. आपका होस्ट नाम काफ़ी लंबा है। - + Your passwords do not match! आपके कूटशब्द मेल नहीं खाते! diff --git a/lang/calamares_hr.ts b/lang/calamares_hr.ts index 5aa64c25f..ad215ad99 100644 --- a/lang/calamares_hr.ts +++ b/lang/calamares_hr.ts @@ -1423,22 +1423,22 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Prihvaćam gore navedene uvjete i odredbe. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licencni ugovor</h1>Instalacijska procedura će instalirati vlasnički program koji podliježe uvjetima licenciranja. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Molimo vas da pogledate gore navedene End User License Agreements (EULAs).<br/>Ako se ne slažete s navedenim uvjetima, instalacijska procedura se ne može nastaviti. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licencni ugovor</h1>Instalacijska procedura može instalirati vlasnički program, koji podliježe uvjetima licenciranja, kako bi pružio dodatne mogućnosti i poboljšao korisničko iskustvo. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Molimo vas da pogledate gore navedene End User License Agreements (EULAs).<br/>Ako se ne slažete s navedenim uvjetima, vlasnički program se ne će instalirati te će se umjesto toga koristiti program otvorenog koda. @@ -1922,7 +1922,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Nepoznata greška - + Password is empty Lozinka je prazna @@ -2782,37 +2782,37 @@ Izlaz: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ovo računalo ne zadovoljava minimalne zahtjeve za instalaciju %1.<br/>Instalacija se ne može nastaviti.<a href="#details">Detalji...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ovo računalo ne zadovoljava minimalne uvijete za instalaciju %1.<br/>Instalacija se ne može nastaviti.<a href="#details">Detalji...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Računalo ne zadovoljava neke od preporučenih uvjeta za instalaciju %1.<br/>Instalacija se može nastaviti, ali neke značajke možda neće biti dostupne. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Računalo ne zadovoljava neke od preporučenih uvjeta za instalaciju %1.<br/>Instalacija se može nastaviti, ali neke značajke možda neće biti dostupne. - + This program will ask you some questions and set up %2 on your computer. Ovaj program će vam postaviti neka pitanja i instalirati %2 na vaše računalo. - + For best results, please ensure that this computer: Za najbolje rezultate, pobrinite se da ovo računalo: - + System requirements Zahtjevi sustava @@ -3198,47 +3198,47 @@ Izlaz: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Ako će više osoba koristiti ovo računalo, možete postaviti više korisničkih računa poslije instalacije.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Ako će više osoba koristiti ovo računalo, možete postaviti više korisničkih računa poslije instalacije.</small> - + Your username is too long. Vaše korisničko ime je predugačko. - + Your username must start with a lowercase letter or underscore. Vaše korisničko ime mora započeti malim slovom ili podvlakom. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Dopuštena su samo mala slova, brojevi, podvlake i crtice. - + Only letters, numbers, underscore and hyphen are allowed. Dopuštena su samo slova, brojevi, podvlake i crtice. - + Your hostname is too short. Ime računala je kratko. - + Your hostname is too long. Ime računala je predugačko. - + Your passwords do not match! Lozinke se ne podudaraju! diff --git a/lang/calamares_hu.ts b/lang/calamares_hu.ts index a3b9f0689..d723515dd 100644 --- a/lang/calamares_hu.ts +++ b/lang/calamares_hu.ts @@ -1422,22 +1422,22 @@ Minden változtatás elveszik, ha kilépsz a telepítőből. Elfogadom a fentebbi felhasználási feltételeket. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licensz</h1>A telepítő szabadalmaztatott szoftvert fog telepíteni. Információ a licenszben. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Kérlek, olvasd el a fenti végfelhasználói licenszfeltételeket (EULAs)<br/>Ha nem értesz egyet a feltételekkel, akkor a telepítés nem folytatódik. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licensz</h1>A telepítő szabadalmaztatott szoftvert fog telepíteni. Információ a licenszben. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Kérlek, olvasd el a fenti végfelhasználói licenszfeltételeket (EULAs)<br/>Ha nem értesz egyet a feltételekkel, akkor a szabadalmaztatott program telepítése nem folytatódik és nyílt forrású program lesz telepítve helyette. @@ -1921,7 +1921,7 @@ Minden változtatás elveszik, ha kilépsz a telepítőből. Ismeretlen hiba - + Password is empty @@ -2781,38 +2781,38 @@ Kimenet: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez. <br/>A telepítés nem folytatható. <a href="#details">Részletek...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez.<br/> Telepítés nem folytatható. <a href="#details">Részletek...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Ez a számítógép nem felel meg néhány követelménynek a %1 telepítéséhez. <br/>A telepítés folytatható de előfordulhat néhány képesség nem lesz elérhető. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez.<br/>Telepítés folytatható de néhány tulajdonság valószínűleg nem lesz elérhető. - + This program will ask you some questions and set up %2 on your computer. Ez a program fel fog tenni néhány kérdést és %2 -t telepíti a számítógépre. - + For best results, please ensure that this computer: A legjobb eredményért győződjünk meg, hogy ez a számítógép: - + System requirements Rendszer követelmények @@ -3199,47 +3199,47 @@ Calamares hiba %1. UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Ha egynél több személy használja a számítógépet akkor létrehozhat több felhasználói fiókot telepítés után.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Ha egynél több személy használja a számítógépet akkor létrehozhat több felhasználói fiókot telepítés után.</small> - + Your username is too long. A felhasználónév túl hosszú. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. A hálózati név túl rövid. - + Your hostname is too long. A hálózati név túl hosszú. - + Your passwords do not match! A két jelszó nem egyezik! diff --git a/lang/calamares_id.ts b/lang/calamares_id.ts index a1be501a6..7515e0b57 100644 --- a/lang/calamares_id.ts +++ b/lang/calamares_id.ts @@ -1421,22 +1421,22 @@ Instalasi akan ditutup dan semua perubahan akan hilang. Saya menyetujui segala persyaratan di atas. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Persetujuan Lisensi</h1>Prosedur ini akan memasang perangkat lunak berpemilik yang terkait dengan lisensi. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Mohon periksa End User License Agreements (EULA) di atas.<br/>Bila Anda tidak setuju, maka prosedur tidak bisa dilanjutkan. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Persetujuan Lisensi</h1>Prosedur ini dapat memasang perangkat lunak yang terkait dengan lisensi agar bisa menyediakan fitur tambahan dan meningkatkan pengalaman pengguna. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Mohon periksa End User License Agreements(EULA) di atas.<br/>Bila Anda tidak setuju, perangkat lunak proprietary tidak akan diinstal, dan alternatif open source akan diinstal sebagai gantinya @@ -1920,7 +1920,7 @@ Instalasi akan ditutup dan semua perubahan akan hilang. Ada kesalahan yang tidak diketahui - + Password is empty @@ -2780,39 +2780,39 @@ Keluaran: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Komputer ini tidak memenuhi syarat minimum untuk memasang %1. Installer tidak dapat dilanjutkan. <a href=" - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Komputer ini tidak memenuhi beberapa syarat yang dianjurkan untuk memasang %1. Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. - + This program will ask you some questions and set up %2 on your computer. Program ini akan mengajukan beberapa pertanyaan dan menyetel %2 pada komputer Anda. - + For best results, please ensure that this computer: Untuk hasil terbaik, mohon pastikan bahwa komputer ini: - + System requirements Kebutuhan sistem @@ -3198,47 +3198,47 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Nama pengguna Anda terlalu panjang. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Hostname Anda terlalu pendek. - + Your hostname is too long. Hostname Anda terlalu panjang. - + Your passwords do not match! Sandi Anda tidak sama! diff --git a/lang/calamares_is.ts b/lang/calamares_is.ts index 39e283550..70b6b64b3 100644 --- a/lang/calamares_is.ts +++ b/lang/calamares_is.ts @@ -1421,22 +1421,22 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Ég samþykki skilyrði leyfissamningsins hér að ofan. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Óþekkt villa - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Þessi tölva uppfyllir ekki lágmarkskröfur um uppsetningu %1.<br/>Uppsetningin getur ekki haldið áfram. <a href="#details">Upplýsingar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Þessi tölva uppfyllir ekki lágmarkskröfur um uppsetningu %1.<br/>Uppsetningin getur haldið áfram, en sumir eiginleikar gætu verið óvirk. - + This program will ask you some questions and set up %2 on your computer. Þetta forrit mun spyrja þig nokkurra spurninga og setja upp %2 á tölvunni þinni. - + For best results, please ensure that this computer: Fyrir bestu niðurstöður, skaltu tryggja að þessi tölva: - + System requirements Kerfiskröfur @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Notandanafnið þitt er of langt. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Notandanafnið þitt er of stutt. - + Your hostname is too long. Notandanafnið þitt er of langt. - + Your passwords do not match! Lykilorð passa ekki! diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index 6ee635240..c8dc8186a 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -1421,22 +1421,22 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Accetto i termini e le condizioni sopra indicati. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Accordo di licenza</h1>Questa procedura di configurazione installerà software proprietario sottoposto a termini di licenza. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Leggere attentamente le licenze d'uso (EULA) riportate sopra.<br/>Se non ne accetti i termini, la procedura di configurazione non può proseguire. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Accordo di licenza</h1>Questa procedura di configurazione installerà software proprietario sottoposto a termini di licenza, per fornire caratteristiche aggiuntive e migliorare l'esperienza utente. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Si prega di leggere attentamente gli accordi di licenza dell'utente finale (EULA) riportati sopra.</br>Se non se ne accettano i termini, il software proprietario non verrà installato e al suo posto saranno utilizzate alternative open source. @@ -1920,7 +1920,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Errore sconosciuto - + Password is empty @@ -2780,37 +2780,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Questo computer non soddisfa i requisiti minimi per l'installazione di %1.<br/>L'installazione non può continuare. <a href="#details">Dettagli...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Questo computer non soddisfa i requisiti minimi per installare %1. <br/>L'installazione non può proseguire. <a href="#details">Dettagli...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Questo computer non soddisfa alcuni requisiti raccomandati per l'installazione di %1.<br/>L'installazione può continuare, ma alcune funzionalità potrebbero essere disabilitate. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Questo computer non soddisfa alcuni requisiti consigliati per l'installazione di %1. <br/>L'installazione può proseguire ma alcune funzionalità potrebbero non essere disponibili. - + This program will ask you some questions and set up %2 on your computer. Questo programma chiederà alcune informazioni e configurerà %2 sul computer. - + For best results, please ensure that this computer: Per ottenere prestazioni ottimali, assicurarsi che questo computer: - + System requirements Requisiti di sistema @@ -3196,47 +3196,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Il nome utente è troppo lungo. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Hostname è troppo corto. - + Your hostname is too long. Hostname è troppo lungo. - + Your passwords do not match! Le password non corrispondono! diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index abb3a4fe3..cfb74f0ae 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -1424,22 +1424,22 @@ The installer will quit and all changes will be lost. 上記の項目及び条件に同意します。 - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>ライセンス契約条項</h1> このセットアップはライセンス条項に従うことが必要なプロプライエタリなソフトウェアをインストールします。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 上記のエンドユーザーライセンス条項 (EULAs) を確認してください。<br/>もしライセンス条項に同意できない場合、セットアップを続行することはできません。 - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>ライセンス契約条項</h1> このセットアップは、機能を追加し、ユーザーの使いやすさを向上させるために、ライセンス条項に従うことが必要なプロプライエタリなソフトウェアをインストールします。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 上記のエンドユーザーライセンス条項 (EULAs) を確認してください。<br/>もしライセンス条項に同意できない場合、プロプライエタリなソフトウェアはインストールされず、代わりにオープンソースのソフトウェアが使用されます。 @@ -1923,7 +1923,7 @@ The installer will quit and all changes will be lost. 未知のエラー - + Password is empty パスワードが空です @@ -2783,37 +2783,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> このコンピュータは %1 をセットアップするための最低要件を満たしていません。<br/>セットアップは続行できません。 <a href="#details">詳細...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> このコンピュータは %1 をインストールするための最低要件を満たしていません。<br/>インストールは続行できません。<a href="#details">詳細...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. このコンピュータは、 %1 をセットアップするための推奨条件をいくつか満たしていません。<br/>インストールは続行しますが、一部の機能が無効になる場合があります。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. このコンピュータは、 %1 をインストールするための推奨条件をいくつか満たしていません。<br/>インストールは続行しますが、一部の機能が無効になる場合があります。 - + This program will ask you some questions and set up %2 on your computer. このプログラムはあなたにいくつか質問をして、コンピュータに %2 を設定します。 - + For best results, please ensure that this computer: 良好な結果を得るために、このコンピュータについて以下の項目を確認してください: - + System requirements システム要件 @@ -3199,47 +3199,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>もし複数の人間がこのコンピュータを使用する場合、セットアップの後で複数のアカウントを作成できます。</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>もし複数の人間がこのコンピュータを使用する場合、インストールの後で複数のアカウントを作成できます。</small> - + Your username is too long. ユーザー名が長すぎます。 - + Your username must start with a lowercase letter or underscore. ユーザー名はアルファベットの小文字または _ で始めてください。 - + Only lowercase letters, numbers, underscore and hyphen are allowed. 使用できるのはアルファベットの小文字と数字と _ と - だけです。 - + Only letters, numbers, underscore and hyphen are allowed. 使用できるのはアルファベットと数字と _ と - だけです。 - + Your hostname is too short. ホスト名が短すぎます。 - + Your hostname is too long. ホスト名が長過ぎます。 - + Your passwords do not match! パスワードが一致していません! diff --git a/lang/calamares_kk.ts b/lang/calamares_kk.ts index 24db00620..5231b1609 100644 --- a/lang/calamares_kk.ts +++ b/lang/calamares_kk.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_kn.ts b/lang/calamares_kn.ts index f79a6491a..33fc05e06 100644 --- a/lang/calamares_kn.ts +++ b/lang/calamares_kn.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_ko.ts b/lang/calamares_ko.ts index 4a123f5e9..cef2eb1ff 100644 --- a/lang/calamares_ko.ts +++ b/lang/calamares_ko.ts @@ -1422,22 +1422,22 @@ The installer will quit and all changes will be lost. 상기 계약 조건을 모두 동의합니다. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>라이센스 동의</h1>이 설치 절차는 라이센스 조항의 적용을 받는 독점 소프트웨어를 설치합니다. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 상기 최종 사용자 라이센스 동의 (EULAs) 를 검토해주시길 바랍니다.<br/>조건에 동의하지 않는다면, 설치 절차를 계속할 수 없습니다. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>라이센스 동의</h1>이 설치 절차는 추가적인 기능들을 제공하고 사용자 환경을 개선하기 위한 독점 소프트웨어를 설치할 수 있으며, 이 소프트웨어는 라이센스 조항의 적용을 받습니다. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 상기 최종 사용자 라이센스 동의 (EULAs) 를 검토해주시길 바랍니다. <br/>조건에 동의하지 않는다면, 독점 소프트웨어는 설치되지 않을 것이며, 대체하여 사용할 수 있는 오픈 소스 소프트웨어가 사용될 것입니다. @@ -1921,7 +1921,7 @@ The installer will quit and all changes will be lost. 알 수 없는 오류 - + Password is empty @@ -2781,37 +2781,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 이 컴퓨터는 %1 설치를 위한 최소 요구 사항을 충족하지 않습니다.<br/>설치를 계속할 수 없습니다.<a href="#details">세부 정보...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 이 컴퓨터는 %1 설치를 위한 최소 요구 사항을 충족하지 않습니다.<br/>설치를 계속할 수 없습니다. <a href="#details">세부 사항입니다...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 이 컴퓨터는 %1 설치를 위한 권장 요구 사항 중 일부를 충족하지 않습니다.<br/>설치를 계속할 수는 있지만 일부 기능을 사용하지 않도록 설정할 수도 있습니다. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 이 컴퓨터는 %1 설치를 위한 권장 요구 사항 중 일부를 충족하지 않습니다.<br/>설치를 계속할 수 있지만 일부 기능을 사용하지 않도록 설정할 수 있습니다. - + This program will ask you some questions and set up %2 on your computer. 이 프로그램은 몇 가지 질문을 하고 컴퓨터에 %2을 설정합니다. - + For best results, please ensure that this computer: 최상의 결과를 얻으려면 이 컴퓨터가 다음 사항을 충족해야 합니다. - + System requirements 시스템 요구 사항 @@ -3197,47 +3197,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>둘 이상의 사용자가 이 컴퓨터를 사용할 경우, 설정 후 계정을 여러 개 만들 수 있습니다.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>둘 이상의 사용자가 이 컴퓨터를 사용할 경우 설치 후 계정을 여러 개 만들 수 있습니다.</small> - + Your username is too long. 사용자 이름이 너무 깁니다. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. 호스트 이름이 너무 짧습니다. - + Your hostname is too long. 호스트 이름이 너무 깁니다. - + Your passwords do not match! 암호가 일치하지 않습니다! diff --git a/lang/calamares_lo.ts b/lang/calamares_lo.ts index 881e690ea..ec763b44c 100644 --- a/lang/calamares_lo.ts +++ b/lang/calamares_lo.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts index 76550756b..5bd78dd13 100644 --- a/lang/calamares_lt.ts +++ b/lang/calamares_lt.ts @@ -1423,22 +1423,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Sutinku su aukščiau išdėstytomis nuostatomis ir sąlygomis. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licencijos Sutartis</h1>Ši sąrankos procedūra įdiegs nuosavybinę programinę įrangą, kuriai yra taikomos licencijavimo nuostatos. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Prašome aukščiau peržiūrėti Galutinio Vartotojo Licencijos Sutartis (angl. EULA).<br/>Jeigu nesutiksite su nuostatomis, sąrankos procedūra negalės būti tęsiama. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licencijos Sutartis</h1>Tam, kad pateiktų papildomas ypatybes ir pagerintų naudotojo patirtį, ši sąrankos procedūra gali įdiegti nuosavybinę programinę įrangą, kuriai yra taikomos licencijavimo nuostatos. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Prašome aukščiau peržiūrėti Galutinio Vartotojo Licencijos Sutartis (angl. EULA).<br/>Jeigu nesutiksite su nuostatomis, tuomet nuosavybinė programinė įranga nebus įdiegta, o vietoj jos, bus naudojamos atviro kodo alternatyvos. @@ -1922,7 +1922,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Nežinoma klaida - + Password is empty Slaptažodis yra tuščias @@ -2782,37 +2782,37 @@ Išvestis: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Šis kompiuteris netenkina minimalių %1 nustatymo reikalavimų.<br/>Sąranka negali būti tęsiama. <a href="#details">Išsamiau...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Šis kompiuteris netenkina minimalių %1 diegimo reikalavimų.<br/>Diegimas negali būti tęsiamas. <a href="#details">Išsamiau...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Šis kompiuteris netenkina kai kurių %1 nustatymui rekomenduojamų reikalavimų.<br/>Sąranką galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.<br/>Diegimą galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos. - + This program will ask you some questions and set up %2 on your computer. Programa užduos kelis klausimus ir padės įsidiegti %2. - + For best results, please ensure that this computer: Norėdami pasiekti geriausių rezultatų, įsitikinkite kad šis kompiuteris: - + System requirements Sistemos reikalavimai @@ -3198,47 +3198,47 @@ Išvestis: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Jei šiuo kompiuteriu naudosis keli žmonės, po sąrankos galite sukurti papildomas paskyras.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Jei šiuo kompiuteriu naudosis keli žmonės, po diegimo galite sukurti papildomas paskyras.</small> - + Your username is too long. Jūsų naudotojo vardas yra pernelyg ilgas. - + Your username must start with a lowercase letter or underscore. Jūsų naudotojo vardas privalo prasidėti mažąja raide arba pabraukimo brūkšniu. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Yra leidžiamos tik mažosios raidės, skaitmenys, pabraukimo brūkšniai ir brūkšneliai. - + Only letters, numbers, underscore and hyphen are allowed. Yra leidžiamos tik raidės, skaitmenys, pabraukimo brūkšniai ir brūkšneliai. - + Your hostname is too short. Jūsų kompiuterio vardas yra pernelyg trumpas. - + Your hostname is too long. Jūsų kompiuterio vardas yra pernelyg ilgas. - + Your passwords do not match! Jūsų slaptažodžiai nesutampa! diff --git a/lang/calamares_mk.ts b/lang/calamares_mk.ts index f735ed7af..956b0af4c 100644 --- a/lang/calamares_mk.ts +++ b/lang/calamares_mk.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_ml.ts b/lang/calamares_ml.ts index 900ad109c..2d18379e1 100644 --- a/lang/calamares_ml.ts +++ b/lang/calamares_ml.ts @@ -1295,7 +1295,7 @@ The installer will quit and all changes will be lost. Collecting information about your machine. - + താങ്കളുടെ മെഷീനെ പറ്റിയുള്ള വിവരങ്ങൾ ശേഖരിക്കുന്നു. @@ -1423,22 +1423,22 @@ The installer will quit and all changes will be lost. മുകളിലുള്ള നിബന്ധനകളും വ്യവസ്ഥകളും ഞാൻ അംഗീകരിക്കുന്നു. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>ലൈസൻസ് ഉടമ്പടി</h1>ഈ സജ്ജീകരണ നടപടിക്രമം ലൈസൻസിംഗ് നിബന്ധനകൾക്ക് വിധേയമായ കുത്തക സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യും. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. മുകളിലുള്ള അന്തിമ ഉപയോക്തൃ ലൈസൻസ് കരാറുകൾ (EULAs) അവലോകനം ചെയ്യുക.<br/>നിങ്ങൾ നിബന്ധനകളോട് യോജിക്കുന്നില്ലെങ്കിൽ, സജ്ജീകരണ നടപടിക്രമം തുടരാനാവില്ല. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>ലൈസൻസ് ഉടമ്പടി</h1>അധിക സവിശേഷതകൾ നൽകുന്നതിനും ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നതിനും ഈ സജ്ജീകരണ നടപടിക്രമത്തിന് ലൈസൻസിംഗ് നിബന്ധനകൾക്ക് വിധേയമായ കുത്തക സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. മുകളിലുള്ള അന്തിമ ഉപയോക്തൃ ലൈസൻസ് കരാറുകൾ (EULAs) അവലോകനം ചെയ്യുക.<br/>നിങ്ങൾ നിബന്ധനകളോട് യോജിക്കുന്നില്ലെങ്കിൽ, പ്രൊപ്രൈറ്ററി സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യില്ല, പകരം ഓപ്പൺ സോഴ്‌സ് ഇതരമാർഗങ്ങൾ ഉപയോഗിക്കും. @@ -1922,9 +1922,9 @@ The installer will quit and all changes will be lost. അപരിചിതമായ പിശക് - + Password is empty - + രഹസ്യവാക്ക് ശൂന്യമാണ് @@ -2782,37 +2782,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> %1 സജ്ജീകരിക്കുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>സജ്ജീകരണം തുടരാനാവില്ല. <a href="#details">വിവരങ്ങൾ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> %1 ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>ഇൻസ്റ്റളേഷൻ തുടരാനാവില്ല. <a href="#details">വിവരങ്ങൾ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. %1 സജ്ജീകരിക്കുന്നതിനുള്ള ചില ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>സജ്ജീകരണം തുടരാം, പക്ഷേ ചില സവിശേഷതകൾ നിഷ്ക്രിയമായിരിക്കാം. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. %1 ഇൻസ്റ്റാൾ ചെയ്യാൻ ശുപാർശ ചെയ്യപ്പെട്ടിട്ടുള്ള ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>ഇൻസ്റ്റളേഷൻ തുടരാം, പക്ഷേ ചില സവിശേഷതകൾ നിഷ്ക്രിയമായിരിക്കാം. - + This program will ask you some questions and set up %2 on your computer. ഈ പ്രക്രിയ താങ്കളോട് ചില ചോദ്യങ്ങൾ ചോദിക്കുകയും %2 താങ്കളുടെ കമ്പ്യൂട്ടറിൽ സജ്ജീകരിക്കുകയും ചെയ്യും. - + For best results, please ensure that this computer: മികച്ച ഫലങ്ങൾക്കായി ഈ കമ്പ്യൂട്ടർ താഴെപ്പറയുന്നവ നിറവേറ്റുന്നു എന്നുറപ്പുവരുത്തുക: - + System requirements സിസ്റ്റം ആവശ്യകതകൾ @@ -3198,47 +3198,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>ഒന്നിലധികം ആളുകൾ ഈ കമ്പ്യൂട്ടർ ഉപയോഗിക്കുമെങ്കിൽ, താങ്കൾക്ക് സജ്ജീകരണത്തിന് ശേഷം നിരവധി അക്കൗണ്ടുകൾ സൃഷ്ടിക്കാം.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>ഒന്നിലധികം ആളുകൾ ഈ കമ്പ്യൂട്ടർ ഉപയോഗിക്കുമെങ്കിൽ, താങ്കൾക്ക് ഇൻസ്റ്റളേഷന് ശേഷം നിരവധി അക്കൗണ്ടുകൾ സൃഷ്ടിക്കാം.</small> - + Your username is too long. നിങ്ങളുടെ ഉപയോക്തൃനാമം വളരെ വലുതാണ്. - + Your username must start with a lowercase letter or underscore. താങ്കളുടെ ഉപയോക്തൃനാമം ഒരു ചെറിയ അക്ഷരമോ അണ്ടർസ്കോറോ ഉപയോഗിച്ച് വേണം തുടങ്ങാൻ. - + Only lowercase letters, numbers, underscore and hyphen are allowed. ചെറിയ അക്ഷരങ്ങൾ, അക്കങ്ങൾ, അണ്ടർസ്കോർ, ഹൈഫൺ എന്നിവയേ അനുവദിച്ചിട്ടുള്ളൂ. - + Only letters, numbers, underscore and hyphen are allowed. അക്ഷരങ്ങൾ, അക്കങ്ങൾ, അണ്ടർസ്കോർ, ഹൈഫൺ എന്നിവയേ അനുവദിച്ചിട്ടുള്ളൂ. - + Your hostname is too short. നിങ്ങളുടെ ഹോസ്റ്റ്നാമം വളരെ ചെറുതാണ് - + Your hostname is too long. നിങ്ങളുടെ ഹോസ്റ്റ്നാമം ദൈർഘ്യമേറിയതാണ് - + Your passwords do not match! നിങ്ങളുടെ പാസ്‌വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല! diff --git a/lang/calamares_mr.ts b/lang/calamares_mr.ts index 4dcdef53f..e6477c073 100644 --- a/lang/calamares_mr.ts +++ b/lang/calamares_mr.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements प्रणालीची आवशक्यता @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. तुमचा वापरकर्तानाव खूप लांब आहे - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. तुमचा संगणकनाव खूप लहान आहे - + Your hostname is too long. तुमचा संगणकनाव खूप लांब आहे - + Your passwords do not match! तुमचा परवलीशब्द जुळत नाही diff --git a/lang/calamares_nb.ts b/lang/calamares_nb.ts index f5e19308c..0f937c093 100644 --- a/lang/calamares_nb.ts +++ b/lang/calamares_nb.ts @@ -1421,22 +1421,22 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt.Ukjent feil - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Denne datamaskinen oppfyller ikke minimumskravene for installering %1.<br/> Installeringen kan ikke fortsette. <a href="#details">Detaljer..</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements Systemkrav @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Brukernavnet ditt er for langt. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_ne_NP.ts b/lang/calamares_ne_NP.ts index 03bb50c71..da257191f 100644 --- a/lang/calamares_ne_NP.ts +++ b/lang/calamares_ne_NP.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts index 3920d4901..a35297828 100644 --- a/lang/calamares_nl.ts +++ b/lang/calamares_nl.ts @@ -1421,22 +1421,22 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Ik aanvaard de bovenstaande algemene voorwaarden. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licentieovereenkomst</h1>Deze installatieprocedure zal propriëtaire software installeren die onderworpen is aan licentievoorwaarden. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Gelieve bovenstaande licentieovereenkomsten voor eindgebruikers (EULA's) na te kijken.<br/>Indien je de voorwaarden niet aanvaardt, kan de installatie niet doorgaan. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licentieovereenkomst</h1>Deze installatieprocedure kan mogelijk propriëtaire software, onderworpen aan licentievoorwaarden, installeren om bijkomende functies aan te bieden of de gebruikservaring te verbeteren. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Gelieve bovenstaande licentieovereenkomsten voor eindgebruikers (EULA's) na te kijken.<br/>Indien je de voorwaarden niet aanvaardt zal de propriëtaire software vervangen worden door openbron alternatieven. @@ -1920,7 +1920,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Onbekende fout - + Password is empty @@ -2780,37 +2780,37 @@ Uitvoer: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Deze computer voldoet niet aan de minimumvereisten om %1 te installeren.<br/>De installatie kan niet doorgaan. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Deze computer voldoet niet aan enkele van de aanbevolen specificaties om %1 te installeren.<br/>De installatie kan doorgaan, maar sommige functies kunnen uitgeschakeld zijn. - + This program will ask you some questions and set up %2 on your computer. Dit programma stelt je enkele vragen en installeert %2 op jouw computer. - + For best results, please ensure that this computer: Voor de beste resultaten is het aangeraden dat deze computer: - + System requirements Systeemvereisten @@ -3196,47 +3196,47 @@ Uitvoer: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. De gebruikersnaam is te lang. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. De hostnaam is te kort. - + Your hostname is too long. De hostnaam is te lang. - + Your passwords do not match! Je wachtwoorden komen niet overeen! diff --git a/lang/calamares_pl.ts b/lang/calamares_pl.ts index ba91b7d8d..b5eafd6aa 100644 --- a/lang/calamares_pl.ts +++ b/lang/calamares_pl.ts @@ -1421,22 +1421,22 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Akceptuję powyższe warunki korzystania. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Umowy licencyjne</h1>Ten etap instalacji zainstaluje własnościowe oprogramowanie, którego dotyczą zasady licencji. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Przeczytaj znajdujące się poniżej Umowy Licencyjne Końcowego Użytkownika (EULA).<br/>Jeżeli nie zgadzasz się z tymi warunkami, nie możesz kontynuować. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Umowy licencyjne</h1>Ten etap instalacji pozwoli zainstalować własnościowe oprogramowanie, którego dotyczą zasady licencji w celu poprawienia doświadczenia i zapewnienia dodatkowych funkcji. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Przeczytaj znajdujące się poniżej Umowy Licencyjne Końcowego Użytkownika (EULA).<br/>Jeżeli nie zaakceptujesz tych warunków, własnościowe oprogramowanie nie zostanie zainstalowane, zamiast tego zostaną użyte otwartoźródłowe odpowiedniki. @@ -1920,7 +1920,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Nieznany błąd - + Password is empty @@ -2781,37 +2781,37 @@ i nie uruchomi się ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ten komputer nie spełnia minimalnych wymagań, niezbędnych do instalacji %1.<br/>Instalacja nie może być kontynuowana. <a href="#details">Szczegóły...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ten komputer nie spełnia wszystkich, zalecanych do instalacji %1 wymagań.<br/>Instalacja może być kontynuowana, ale niektóre opcje mogą być niedostępne. - + This program will ask you some questions and set up %2 on your computer. Ten program zada Ci garść pytań i ustawi %2 na Twoim komputerze. - + For best results, please ensure that this computer: Dla osiągnięcia najlepszych rezultatów upewnij się, że ten komputer: - + System requirements Wymagania systemowe @@ -3197,47 +3197,47 @@ i nie uruchomi się UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Twoja nazwa użytkownika jest za długa. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Twoja nazwa komputera jest za krótka. - + Your hostname is too long. Twoja nazwa komputera jest za długa. - + Your passwords do not match! Twoje hasła nie są zgodne! diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index d4bf6aa45..ce5dc315f 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -1423,22 +1423,22 @@ O instalador será fechado e todas as alterações serão perdidas.Aceito os termos e condições acima. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Termos de licença</h1>Este procedimento de configuração irá instalar software proprietário, que está sujeito aos termos de licenciamento. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor, revise os acordos de licença de usuário final (EULAs) acima.<br/>Se você não concordar com os termos, o procedimento de configuração não pode continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Termos de licença</h1>Este procedimento de instalação pode instalar o software proprietário, que está sujeito a termos de licenciamento, a fim de fornecer recursos adicionais e melhorar a experiência do usuário. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor, revise os acordos de licença de usuário final (EULAs) acima.<br/>Se você não concordar com os termos, o software proprietário não será instalado e as alternativas de código aberto serão utilizadas em seu lugar. @@ -1922,7 +1922,7 @@ O instalador será fechado e todas as alterações serão perdidas.Erro desconhecido - + Password is empty A senha está em branco @@ -2782,37 +2782,37 @@ Saída: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requerimentos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1.<br/>A instalação não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Este computador não satisfaz alguns dos requerimentos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funções podem ser desativadas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para instalar %1.<br/>A instalação pode continuar, mas alguns recursos podem ser desativados. - + This program will ask you some questions and set up %2 on your computer. Este programa irá fazer-lhe algumas perguntas e configurar %2 no computador. - + For best results, please ensure that this computer: Para melhores resultados, por favor, certifique-se de que este computador: - + System requirements Requisitos do sistema @@ -3198,47 +3198,47 @@ Saída: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Se mais de uma pessoa for utilizar este computador, você poderá criar múltiplas contas após terminar a configuração.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Se mais de uma pessoa for utilizar este computador, você poderá criar múltiplas contas após terminar de instalar.</small> - + Your username is too long. O nome de usuário é grande demais. - + Your username must start with a lowercase letter or underscore. Seu nome de usuário deve começar com uma letra maiúscula ou com um sublinhado. - + Only lowercase letters, numbers, underscore and hyphen are allowed. É permitido apenas letras minúsculas, números, sublinhado e hífen. - + Only letters, numbers, underscore and hyphen are allowed. É permitido apenas letras, números, sublinhado e hífen. - + Your hostname is too short. O nome da máquina é muito curto. - + Your hostname is too long. O nome da máquina é muito grande. - + Your passwords do not match! As senhas não estão iguais! diff --git a/lang/calamares_pt_PT.ts b/lang/calamares_pt_PT.ts index 283e31a32..91bafc2c4 100644 --- a/lang/calamares_pt_PT.ts +++ b/lang/calamares_pt_PT.ts @@ -1423,22 +1423,22 @@ O instalador será encerrado e todas as alterações serão perdidas.Aceito os termos e condições acima descritos. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acordo de Licença</h1>Este procedimento instalará programas proprietários que estão sujeitos a termos de licenciamento. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor reveja o Acordo de Utilização do Utilizador Final (EULA) acima.<br/>Se não concordar com os termos, o procedimento de instalação não pode continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acordo de Licença</h1>Este procedimento pode instalar programas proprietários que estão sujeitos a termos de licenciamento com vista a proporcionar funcionalidades adicionais e melhorar a experiência do utilizador. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor reveja o Acordo de Utilização do Utilizador Final (EULA) acima.<br/>Se não concordar com os termos, programas proprietários não serão instalados, e em vez disso serão usadas soluções alternativas de código aberto. @@ -1922,7 +1922,7 @@ O instalador será encerrado e todas as alterações serão perdidas.Erro desconhecido - + Password is empty @@ -2782,37 +2782,37 @@ Saída de Dados: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1.<br/>A instalação não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para instalar %1.<br/>A instalação pode continuar, mas algumas funcionalidades poderão ser desativadas. - + This program will ask you some questions and set up %2 on your computer. Este programa vai fazer-lhe algumas perguntas e configurar o %2 no seu computador. - + For best results, please ensure that this computer: Para melhores resultados, por favor certifique-se que este computador: - + System requirements Requisitos de sistema @@ -3198,47 +3198,47 @@ Saída de Dados: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Se mais de uma pessoa usar este computador, você pode criar várias contas após a configuração.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Se mais de uma pessoa usar este computador, você pode criar várias contas após a instalação.</small> - + Your username is too long. O seu nome de utilizador é demasiado longo. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. O nome da sua máquina é demasiado curto. - + Your hostname is too long. O nome da sua máquina é demasiado longo. - + Your passwords do not match! As suas palavras-passe não coincidem! diff --git a/lang/calamares_ro.ts b/lang/calamares_ro.ts index 8dec90353..261088b5c 100644 --- a/lang/calamares_ro.ts +++ b/lang/calamares_ro.ts @@ -1421,22 +1421,22 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Sunt de acord cu termenii și condițiile de mai sus. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acord de licențiere</h1>Această procedură va instala software proprietar supus unor termeni de licențiere. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Vă rugăm să citiți Licența de utilizare (EULA) de mai sus.<br>Dacă nu sunteți de acord cu termenii, procedura de instalare nu poate continua. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acord de licențiere</h1>Această procedură de instalare poate instala software proprietar supus unor termeni de licențiere, pentru a putea oferi funcții suplimentare și pentru a îmbunătăți experiența utilizatorilor. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Vă rugăm să citiți Licența de utilizare (EULA) de mai sus.<br/>Dacă nu sunteți de acord cu termenii, softwareul proprietar nu va fi instalat și se vor folosi alternative open-source în loc. @@ -1923,7 +1923,7 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Eroare necunoscuta - + Password is empty @@ -2783,37 +2783,37 @@ Output ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Acest calculator nu satisface cerințele minimale pentru instalarea %1.<br/>Instalarea nu poate continua. <a href="#details">Detalii...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Acest calculator nu satisface unele din cerințele recomandate pentru instalarea %1.<br/>Instalarea poate continua, dar unele funcții ar putea fi dezactivate. - + This program will ask you some questions and set up %2 on your computer. Acest program vă va pune mai multe întrebări și va seta %2 pe calculatorul dumneavoastră. - + For best results, please ensure that this computer: Pentru rezultate optime, asigurați-vă că acest calculator: - + System requirements Cerințe de sistem @@ -3199,47 +3199,47 @@ Output UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Numele de utilizator este prea lung. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Hostname este prea scurt. - + Your hostname is too long. Hostname este prea lung. - + Your passwords do not match! Parolele nu se potrivesc! diff --git a/lang/calamares_ru.ts b/lang/calamares_ru.ts index 48a66cfd3..ef565bf0b 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. Я принимаю приведенные выше условия. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Лицензионное соглашение</h1>На этом этапе будет установлено программное обеспечение с проприетарной лицензией. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Ознакомьтесь с приведенными выше Лицензионными соглашениями пользователя (EULA).<br/>Если не согласны с условиями, продолжение установки невозможно. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Лицензионное соглашение</h1>На этом этапе можно установить программное обеспечение с проприетарной лицензией, дающее дополнительные возможности и повышающее удобство работы. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Ознакомьтесь выше, с Лицензионными соглашениями конечного пользователя (EULA).<br/>Если вы не согласны с условиями, проприетарное программное обеспечение будет заменено на альтернативное открытое программное обеспечение. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. Неизвестная ошибка - + Password is empty @@ -2780,37 +2780,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Этот компьютер не соответствует минимальным требованиям для установки %1.<br/>Невозможно продолжить установку. <a href="#details">Подробнее...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Этот компьютер не соответствует минимальным требованиям для установки %1.<br/>Невозможно продолжить установку. <a href="#details">Подробнее...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Этот компьютер соответствует не всем рекомендуемым требованиям для установки %1.<br/>Можно продолжить установку, но некоторые возможности могут быть недоступны. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Этот компьютер соответствует не всем рекомендуемым требованиям для установки %1.<br/>Можно продолжить установку, но некоторые возможности могут быть недоступны. - + This program will ask you some questions and set up %2 on your computer. Эта программа задаст вам несколько вопросов и поможет установить %2 на ваш компьютер. - + For best results, please ensure that this computer: Для наилучших результатов, убедитесь, что этот компьютер: - + System requirements Системные требования @@ -3196,47 +3196,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Если этот компьютер будет использоваться несколькими людьми, вы сможете создать учетные записи для них после установки.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Если этот компьютер используется несколькими людьми, Вы сможете создать соответствующие учетные записи сразу после установки.</small> - + Your username is too long. Ваше имя пользователя слишком длинное. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Имя вашего компьютера слишком коротко. - + Your hostname is too long. Имя вашего компьютера слишком длинное. - + Your passwords do not match! Пароли не совпадают! diff --git a/lang/calamares_sk.ts b/lang/calamares_sk.ts index dee982553..43d4c9a6e 100644 --- a/lang/calamares_sk.ts +++ b/lang/calamares_sk.ts @@ -1422,22 +1422,22 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Prijímam podmienky vyššie. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licenčné podmienky</h1>Tento proces inštalácie môže nainštalovať uzavretý softvér, ktorý je predmetom licenčných podmienok. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Prosím, prečítajte si licenčnú zmluvu koncového používateľa (EULAs) vyššie.<br/>Ak nesúhlasíte s podmienkami, proces inštalácie nemôže pokračovať. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licenčné podmienky</h1>Tento proces inštalácie môže nainštalovať uzavretý softvér, ktorý je predmetom licenčných podmienok v rámci poskytovania dodatočných funkcií a vylepšenia používateľských skúseností. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Prosím, prečítajte si licenčnú zmluvu koncového používateľa (EULAs) vyššie.<br/>Ak nesúhlasíte s podmienkami, uzavretý softvér nebude nainštalovaný a namiesto neho budú použité alternatívy s otvoreným zdrojom. @@ -1921,7 +1921,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Neznáma chyba - + Password is empty Heslo je prázdne @@ -2781,37 +2781,37 @@ Výstup: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/>Inštalácia nemôže pokračovať. <a href="#details">Podrobnosti...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/>Inštalácia nemôže pokračovať. <a href="#details">Podrobnosti...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/>Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/>Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. - + This program will ask you some questions and set up %2 on your computer. Tento program vám položí niekoľko otázok a nainštaluje distribúciu %2 do vášho počítača. - + For best results, please ensure that this computer: Pre čo najlepší výsledok, sa prosím, uistite, že tento počítač: - + System requirements Systémové požiadavky @@ -3197,47 +3197,47 @@ Výstup: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Ak bude tento počítač používať viac ako jedna osoba, môžete nastaviť viacero účtov po inštalácii.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Ak bude tento počítač používať viac ako jedna osoba, môžete nastaviť viacero účtov po inštalácii.</small> - + Your username is too long. Vaše používateľské meno je príliš dlhé. - + Your username must start with a lowercase letter or underscore. Vaše používateľské meno musí začínať malým písmenom alebo podčiarkovníkom. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Váš názov hostiteľa je príliš krátky. - + Your hostname is too long. Váš názov hostiteľa je príliš dlhý. - + Your passwords do not match! Vaše heslá sa nezhodujú! diff --git a/lang/calamares_sl.ts b/lang/calamares_sl.ts index 72eb60265..648c58aae 100644 --- a/lang/calamares_sl.ts +++ b/lang/calamares_sl.ts @@ -1421,22 +1421,22 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: Za najboljše rezultate se prepričajte, da vaš računalnik izpolnjuje naslednje zahteve: - + System requirements @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_sq.ts b/lang/calamares_sq.ts index d07467162..3624931ce 100644 --- a/lang/calamares_sq.ts +++ b/lang/calamares_sq.ts @@ -1423,22 +1423,22 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. I pranoj termat dhe kushtet më sipër. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Marrëveshje Licence</h1>Kjo procedurë rregullimi do të instalojë software pronësor që është subjekt kushtesh licencimi. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Ju lutemi, shqyrtoni Marrëveshje Licencimi Për Përdorues të Thjeshtë (EULAs) më sipër.<br/>Nëse nuk pajtohemi me kushtet, procedura e rregullimit s’mund të shkojë më tej. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Marrëveshje Licence</h1>Që të furnizojë veçori shtesë dhe të përmirësojë punën e përdoruesit, kjo procedurë rregullimi mundet të instalojë software pronësor që është subjekt kushtesh licencimi. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Ju lutemi, shqyrtoni Marrëveshje Licencimi Për Përdorues të Thjeshtë (EULAs) më sipër.<br/>Nëse nuk pajtohemi me kushtet, nuk do të instalohet software pronësor, dhe në vend të tij do të përdoren alternativa nga burimi i hapët. @@ -1922,7 +1922,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Gabim i panjohur - + Password is empty Fjalëkalimi është i zbrazët @@ -2782,37 +2782,37 @@ Përfundim: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ky kompjuter s’i plotëson kërkesat minimum për rregullimin e %1.<br/>Rregullimi s’mund të vazhdojë. <a href=\"#details\">Hollësi…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ky kompjuter s’i plotëson kërkesat minimum për instalimin e %1.<br/>Instalimi s’mund të vazhdojë. <a href=\"#details\">Hollësi…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Ky kompjuter s’i plotëson disa nga domosdoshmëritë e rekomanduara për rregullimin e %1.<br/>Rregullimi mund të vazhdojë, por disa veçori mund të përfundojnë të çaktivizuara. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ky kompjuter s’i plotëson disa nga domosdoshmëritë e rekomanduara për instalimin e %1.<br/>Instalimi mund të vazhdojë, por disa veçori mund të përfundojnë të çaktivizuara. - + This program will ask you some questions and set up %2 on your computer. Ky program do t’ju bëjë disa pyetje dhe do të rregullojë %2 në kompjuterin tuaj. - + For best results, please ensure that this computer: Për përfundime më të mira, ju lutemi, garantoni që ky kompjuter: - + System requirements Sistem i domosdoshëm @@ -3198,47 +3198,47 @@ Përfundim: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Nëse këtë kompjuter do ta përdorë më shumë se një person, mund të krijoni disa llogari, pas rregullimit.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Nëse këtë kompjuter do ta përdorë më shumë se një person, mund të krijoni disa llogari, pas instalimit.</small> - + Your username is too long. Emri juaj i përdoruesit është shumë i gjatë. - + Your username must start with a lowercase letter or underscore. Emri juaj i përdoruesit duhet të fillojë me një shkronjë të vogël ose nënvijë. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Lejohen vetëm shkronja të vogla, numra, nënvijë dhe vijë ndarëse. - + Only letters, numbers, underscore and hyphen are allowed. Lejohen vetëm shkronja, numra, nënvijë dhe vijë ndarëse. - + Your hostname is too short. Strehëemri juaj është shumë i shkurtër. - + Your hostname is too long. Strehëemri juaj është shumë i gjatë. - + Your passwords do not match! Fjalëkalimet tuaj s’përputhen! diff --git a/lang/calamares_sr.ts b/lang/calamares_sr.ts index 254bf876a..a54ea6c72 100644 --- a/lang/calamares_sr.ts +++ b/lang/calamares_sr.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: За најбоље резултате обезбедите да овај рачунар: - + System requirements Системски захтеви @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Ваше корисничко име је предугачко. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Име вашег "домаћина" - hostname је прекратко. - + Your hostname is too long. Ваше име домаћина је предуго - hostname - + Your passwords do not match! Лозинке се не поклапају! diff --git a/lang/calamares_sr@latin.ts b/lang/calamares_sr@latin.ts index 5692700ab..a610f2266 100644 --- a/lang/calamares_sr@latin.ts +++ b/lang/calamares_sr@latin.ts @@ -1421,22 +1421,22 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: Za najbolje rezultate, uvjetite se da li ovaj računar: - + System requirements @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! Vaše lozinke se ne poklapaju diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index 4860479ef..a40c8849c 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -1421,22 +1421,22 @@ Alla ändringar kommer att gå förlorade. Jag accepterar villkoren och avtalet ovan. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licensavtal</h1>Denna installationsprocedur kommer att installera proprietär mjukvara som omfattas av licensvillkor. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Läs igenom End User Agreements (EULA:s) ovan.<br/>Om du inte accepterar villkoren kan inte installationsproceduren fortsätta. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licensavtal</h1>Denna installationsprocedur kan installera proprietär mjukvara som omfattas av licensvillkor för att tillhandahålla ytterligare funktioner och förbättra användarupplevelsen. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ Alla ändringar kommer att gå förlorade. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Datorn uppfyller inte minimikraven för inställning av %1.<br/>Inga inställningar kan inte göras. <a href="#details">Detaljer...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Denna dator uppfyller inte minimikraven för att installera %1.<br/>Installationen kan inte fortsätta. <a href="#details">Detaljer...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Några av kraven för inställning av %1 uppfylls inte av datorn.<br/>Inställningarna kan ändå göras men vissa funktioner kommer kanske inte att kunna användas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Denna dator uppfyller inte alla rekommenderade krav för att installera %1.<br/>Installationen kan fortsätta, men alla alternativ och funktioner kanske inte kan användas. - + This program will ask you some questions and set up %2 on your computer. Detta program kommer att ställa dig några frågor och installera %2 på din dator. - + For best results, please ensure that this computer: För bästa resultat, vänligen se till att datorn: - + System requirements Systemkrav @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Om mer än en person skall använda datorn så kan du skapa flera användarkonton när inställningarna är klara.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Om mer än en person skall använda datorn så kan du skapa flera användarkonton när installationen är klar.</small> - + Your username is too long. Ditt användarnamn är för långt. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Ditt värdnamn är för kort. - + Your hostname is too long. Ditt värdnamn är för långt. - + Your passwords do not match! Lösenorden överensstämmer inte! diff --git a/lang/calamares_th.ts b/lang/calamares_th.ts index 46f9f27c7..0c24d7669 100644 --- a/lang/calamares_th.ts +++ b/lang/calamares_th.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1920,7 +1920,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2777,37 +2777,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> ขณะที่กำลังติดตั้ง ตัวติดตั้งฟ้องว่า คอมพิวเตอร์นี้มีความต้องการไม่เพียงพอที่จะติดตั้ง %1.<br/>ไม่สามารถทำการติดตั้งต่อไปได้ <a href="#details">รายละเอียด...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. ขณะที่กำลังติดตั้ง ตัวติดตั้งฟ้องว่า คอมพิวเตอร์มีความต้องการไม่เพียงพอที่จะติดตั้ง %1<br/>ไม่สามารถทำการติดตั้งต่อไปได้ และฟีเจอร์บางอย่างจะถูกปิดไว้ - + This program will ask you some questions and set up %2 on your computer. โปรแกรมนี้จะถามคุณบางอย่าง เพื่อติดตั้ง %2 ไว้ในคอมพิวเตอร์ของคุณ - + For best results, please ensure that this computer: สำหรับผลลัพธ์ที่ดีขึ้น โปรดตรวจสอบให้แน่ใจว่าคอมพิวเตอร์เครื่องนี้: - + System requirements ความต้องการของระบบ @@ -3193,47 +3193,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. ชื่อผู้ใช้ของคุณยาวเกินไป - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. ชื่อโฮสต์ของคุณสั้นเกินไป - + Your hostname is too long. ชื่อโฮสต์ของคุณยาวเกินไป - + Your passwords do not match! รหัสผ่านของคุณไม่ตรงกัน! diff --git a/lang/calamares_tr_TR.ts b/lang/calamares_tr_TR.ts index bf1766a12..0fc3c054f 100644 --- a/lang/calamares_tr_TR.ts +++ b/lang/calamares_tr_TR.ts @@ -1297,7 +1297,7 @@ Sistem güç kaynağına bağlı değil. Collecting information about your machine. - + Makineniz hakkında bilgi toplama. @@ -1425,22 +1425,22 @@ Sistem güç kaynağına bağlı değil. Yukarıdaki şartları ve koşulları kabul ediyorum. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Lisans Anlaşması</h1> Sistem yükleyici uygulaması belli lisans şartlarına bağlıdır ve şimdi sisteminizi kuracaktır. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Yukarıdaki son kullanıcı lisans sözleşmesini (EULA) gözden geçiriniz.<br/>Şartları kabul etmiyorsanız kurulum devam etmeyecektir. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Lisans Sözleşmesi</h1>Bu kurulum işlemi kullanıcı deneyimini ölçümlemek, ek özellikler sağlamak ve geliştirmek amacıyla lisansa tabi özel yazılım yükleyebilir. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Yukarıdaki Son Kullanıcı Lisans Sözleşmelerini (EULA) gözden geçirin.<br/>Eğer şartları kabul etmiyorsanız kapalı kaynak yazılımların yerine açık kaynak alternatifleri yüklenecektir. @@ -1924,9 +1924,9 @@ Sistem güç kaynağına bağlı değil. Bilinmeyen hata - + Password is empty - + Şifre boş @@ -2785,39 +2785,39 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Bu bilgisayar %1 kurulumu için minimum gereksinimleri karşılamıyor.<br/>Kurulum devam etmeyecek. <a href="#details">Detaylar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Bu bilgisayara %1 yüklemek için minimum gereksinimler karşılanamadı. Kurulum devam edemiyor. <a href="#detaylar">Detaylar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Bu bilgisayar %1 kurulumu için önerilen gereksinimlerin bazılarına uymuyor. Kurulum devam edebilirsiniz ancak bazı özellikler devre dışı bırakılabilir. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Bu bilgisayara %1 yüklemek için önerilen gereksinimlerin bazıları karşılanamadı.<br/> Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. - + This program will ask you some questions and set up %2 on your computer. Bu program size bazı sorular soracak ve bilgisayarınıza %2 kuracak. - + For best results, please ensure that this computer: En iyi sonucu elde etmek için bilgisayarınızın aşağıdaki gereksinimleri karşıladığından emin olunuz: - + System requirements Sistem gereksinimleri @@ -3203,47 +3203,47 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>Bu bilgisayarı birden fazla kişi kullanacaksa, kurulumdan sonra birden fazla kullanıcı hesabı oluşturabilirsiniz.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>Bu bilgisayarı birden fazla kişi kullanacaksa, yükleme bittikten sonra birden fazla kullanıcı hesabı oluşturabilirsiniz.</small> - + Your username is too long. Kullanıcı adınız çok uzun. - + Your username must start with a lowercase letter or underscore. Kullanıcı adınız küçük harf veya alt çizgi ile başlamalıdır. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Sadece küçük harflere, sayılara, alt çizgi ve kısa çizgilere izin verilir. - + Only letters, numbers, underscore and hyphen are allowed. Sadece harfler, rakamlar, alt çizgi ve kısa çizgi izin verilir. - + Your hostname is too short. Makine adınız çok kısa. - + Your hostname is too long. Makine adınız çok uzun. - + Your passwords do not match! Parolanız eşleşmiyor! diff --git a/lang/calamares_uk.ts b/lang/calamares_uk.ts index 50abd8696..50221dd87 100644 --- a/lang/calamares_uk.ts +++ b/lang/calamares_uk.ts @@ -1421,22 +1421,22 @@ The installer will quit and all changes will be lost. Я приймаю положення та умови, що наведені вище. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Ліцензійна угода</h1>Процедура встановить пропрієтарне програмне забезпечення, яке підлягає умовам ліцензування. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Будь-ласка, перегляньте Ліцензійні Угоди Кінцевого Користувача (EULAs), що наведені вище.<br/>Якщо ви не згодні з умовами, процедуру встановлення не можна продовжити. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Ліцензійна угода</h1>Для надання додаткових можливостей та з метою покращення користувацького досвіду, процедура може встановити пропрієтарне програмне забезпечення, яке підлягає умовам ліцензування. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Будь-ласка, перегляньте Ліцензійні Угоди Кінцевого Користувача (EULAs), що наведені вище.<br/>Якщо ви не згодні з умовами, пропрієтарне програмне забезпечення не буде встановлено, та замість нього буде використано альтернативи з відкритим сирцевим кодом. @@ -1921,7 +1921,7 @@ The installer will quit and all changes will be lost. Невідома помилка - + Password is empty @@ -2778,37 +2778,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Цей комп'ютер не задовільняє мінімальним вимогам для встановлення %1.<br/>Встановлення неможливо продовжити. <a href="#details">Докладніше...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Цей комп'ютер не задовільняє рекомендованим вимогам для встановлення %1.<br/>Встановлення можна продовжити, але деякі особливості можуть бути вимкненими. - + This program will ask you some questions and set up %2 on your computer. Ця програма поставить кілька питань та встановить %2 на ваш комп'ютер. - + For best results, please ensure that this computer: Щоб отримати найкращий результат, будь-ласка переконайтеся, що цей комп'ютер: - + System requirements Системні вимоги @@ -3194,47 +3194,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. Ваше ім'я задовге. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Ім'я машини занадто коротке. - + Your hostname is too long. Ім'я машини задовге. - + Your passwords do not match! Паролі не збігаються! diff --git a/lang/calamares_ur.ts b/lang/calamares_ur.ts index 682616aed..52414fc36 100644 --- a/lang/calamares_ur.ts +++ b/lang/calamares_ur.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_uz.ts b/lang/calamares_uz.ts index 2889a9112..a93944322 100644 --- a/lang/calamares_uz.ts +++ b/lang/calamares_uz.ts @@ -1420,22 +1420,22 @@ The installer will quit and all changes will be lost. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. @@ -1919,7 +1919,7 @@ The installer will quit and all changes will be lost. - + Password is empty @@ -2776,37 +2776,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - + For best results, please ensure that this computer: - + System requirements @@ -3192,47 +3192,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. - + Your hostname is too long. - + Your passwords do not match! diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts index d477b66f1..b6d05aaab 100644 --- a/lang/calamares_zh_CN.ts +++ b/lang/calamares_zh_CN.ts @@ -1423,22 +1423,22 @@ The installer will quit and all changes will be lost. 我同意如上条款。 - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>许可协定</h1>此安装程序将会安装受授权条款所限制的专有软件。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 请仔细上方的最终用户许可协定 (EULA)。<br/>若您不同意上述条款,安装程序将不会继续。 - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>许可协定</h1>此安装程序可以安装受授权条款限制的专有软件,以提供额外的功能并增强用户体验。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 请仔细上方的最终用户许可协定 (EULA)。<br/>若您不同意上述条款,将不会安装专有软件,而会使用其开源替代品。 @@ -1922,7 +1922,7 @@ The installer will quit and all changes will be lost. 未知错误 - + Password is empty @@ -2782,37 +2782,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 此电脑未满足安装 %1 的最低需求。<br/>安装无法继续。<a href="#details">详细信息...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 此电脑未满足一些安装 %1 的推荐需求。<br/>可以继续安装,但一些功能可能会被停用。 - + This program will ask you some questions and set up %2 on your computer. 本程序将会问您一些问题并在您的电脑上安装及设置 %2 。 - + For best results, please ensure that this computer: 为了更好的体验,请确保这台电脑: - + System requirements 系统需求 @@ -3198,47 +3198,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + Your username is too long. 用户名太长。 - + Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. - + Only letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. 主机名太短。 - + Your hostname is too long. 主机名太长。 - + Your passwords do not match! 密码不匹配! diff --git a/lang/calamares_zh_TW.ts b/lang/calamares_zh_TW.ts index fef09fd59..89c88dfb7 100644 --- a/lang/calamares_zh_TW.ts +++ b/lang/calamares_zh_TW.ts @@ -1423,22 +1423,22 @@ The installer will quit and all changes will be lost. 我接受上述的條款與條件。 - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>授權協定</h1>此安裝程式將會安裝受授權條款所限制的專有軟體。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 請仔細上方的最終用戶授權協定 (EULA)。<br/>若您不同意上述條款,安裝程式將不會繼續。 - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>授權協定</h1>此安裝程式可以安裝受授權條款限制的專有軟體,以提供額外的功農與增強使用者體驗。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 請仔細上方的最終用戶授權協定 (EULA)。<br/>若您不同意上述條款,將不會安裝專有軟體,而會使用其開放原始螞碼版本作為替代。 @@ -1922,7 +1922,7 @@ The installer will quit and all changes will be lost. 未知的錯誤 - + Password is empty 密碼為空 @@ -2782,37 +2782,37 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 此電腦未滿足安裝 %1 的最低配備。<br/>設定無法繼續。<a href="#details">詳細資訊...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 此電腦未滿足安裝 %1 的最低配備。<br/>安裝無法繼續。<a href="#details">詳細資訊...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 此電腦未滿足一些安裝 %1 的推薦需求。<br/>設定可以繼續,但部份功能可能會被停用。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 此電腦未滿足一些安裝 %1 的推薦需求。<br/>安裝可以繼續,但部份功能可能會被停用。 - + This program will ask you some questions and set up %2 on your computer. 本程式會問您一些問題,然後在您的電腦安裝及設定 %2。 - + For best results, please ensure that this computer: 為了得到最佳的結果,請確保此電腦: - + System requirements 系統需求 @@ -3198,47 +3198,47 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>如果將會有多於一人使用這臺電腦,您可以在安裝後設定多個帳號。</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>如果將會有多於一人使用這臺電腦,您可以在安裝後設定多個帳號。</small> - + Your username is too long. 您的使用者名稱太長了。 - + Your username must start with a lowercase letter or underscore. 您的使用者名稱必須以小寫字母或底線開頭。 - + Only lowercase letters, numbers, underscore and hyphen are allowed. 僅允許小寫字母、數字、底線與連接號。 - + Only letters, numbers, underscore and hyphen are allowed. 僅允許字母、數字、底線與連接號。 - + Your hostname is too short. 您的主機名稱太短了。 - + Your hostname is too long. 您的主機名稱太長了。 - + Your passwords do not match! 密碼不符! From a034b1a9abb8b207fdbe89a9e0d7029daca9c30a Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 3 Dec 2019 11:17:52 +0100 Subject: [PATCH 024/101] i18n: [dummypythonqt] Automatic merge of Transifex translations --- src/modules/dummypythonqt/lang/dummypythonqt.pot | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modules/dummypythonqt/lang/dummypythonqt.pot b/src/modules/dummypythonqt/lang/dummypythonqt.pot index dd46fa0ce..88dbde612 100644 --- a/src/modules/dummypythonqt/lang/dummypythonqt.pot +++ b/src/modules/dummypythonqt/lang/dummypythonqt.pot @@ -2,7 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# #, fuzzy msgid "" msgstr "" @@ -12,31 +12,31 @@ msgstr "" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: \n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "Click me!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "A new QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "Dummy PythonQt ViewStep" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "The Dummy PythonQt Job" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "This is the Dummy PythonQt Job. The dummy job says: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "A status message for Dummy PythonQt Job." From 0c128d42d2f6b23384b0f563556e4ed3b03f739e Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 3 Dec 2019 11:17:53 +0100 Subject: [PATCH 025/101] i18n: [python] Automatic merge of Transifex translations --- lang/python.pot | 161 ++++++++++-------- lang/python/ar/LC_MESSAGES/python.po | 2 +- lang/python/ast/LC_MESSAGES/python.po | 2 +- lang/python/be/LC_MESSAGES/python.po | 2 +- lang/python/bg/LC_MESSAGES/python.po | 2 +- lang/python/ca/LC_MESSAGES/python.po | 2 +- lang/python/ca@valencia/LC_MESSAGES/python.po | 2 +- lang/python/cs_CZ/LC_MESSAGES/python.po | 2 +- lang/python/da/LC_MESSAGES/python.po | 2 +- lang/python/de/LC_MESSAGES/python.po | 2 +- lang/python/el/LC_MESSAGES/python.po | 2 +- lang/python/en_GB/LC_MESSAGES/python.po | 2 +- lang/python/eo/LC_MESSAGES/python.po | 2 +- lang/python/es/LC_MESSAGES/python.po | 2 +- lang/python/es_MX/LC_MESSAGES/python.po | 2 +- lang/python/es_PR/LC_MESSAGES/python.po | 2 +- lang/python/et/LC_MESSAGES/python.po | 2 +- lang/python/eu/LC_MESSAGES/python.po | 2 +- lang/python/fa/LC_MESSAGES/python.po | 2 +- lang/python/fi_FI/LC_MESSAGES/python.po | 2 +- lang/python/fr/LC_MESSAGES/python.po | 2 +- lang/python/fr_CH/LC_MESSAGES/python.po | 2 +- lang/python/gl/LC_MESSAGES/python.po | 2 +- lang/python/gu/LC_MESSAGES/python.po | 2 +- lang/python/he/LC_MESSAGES/python.po | 2 +- lang/python/hi/LC_MESSAGES/python.po | 2 +- lang/python/hr/LC_MESSAGES/python.po | 2 +- lang/python/hu/LC_MESSAGES/python.po | 2 +- lang/python/id/LC_MESSAGES/python.po | 2 +- lang/python/is/LC_MESSAGES/python.po | 2 +- lang/python/it_IT/LC_MESSAGES/python.po | 2 +- lang/python/ja/LC_MESSAGES/python.po | 2 +- lang/python/kk/LC_MESSAGES/python.po | 2 +- lang/python/kn/LC_MESSAGES/python.po | 2 +- lang/python/ko/LC_MESSAGES/python.po | 2 +- lang/python/lo/LC_MESSAGES/python.po | 2 +- lang/python/lt/LC_MESSAGES/python.po | 2 +- lang/python/mk/LC_MESSAGES/python.po | 2 +- lang/python/ml/LC_MESSAGES/python.po | 2 +- lang/python/mr/LC_MESSAGES/python.po | 2 +- lang/python/nb/LC_MESSAGES/python.po | 2 +- lang/python/ne_NP/LC_MESSAGES/python.po | 2 +- lang/python/nl/LC_MESSAGES/python.po | 2 +- lang/python/pl/LC_MESSAGES/python.po | 2 +- lang/python/pt_BR/LC_MESSAGES/python.po | 2 +- lang/python/pt_PT/LC_MESSAGES/python.po | 2 +- lang/python/ro/LC_MESSAGES/python.po | 2 +- lang/python/ru/LC_MESSAGES/python.po | 2 +- lang/python/sk/LC_MESSAGES/python.po | 2 +- lang/python/sl/LC_MESSAGES/python.po | 2 +- lang/python/sq/LC_MESSAGES/python.po | 2 +- lang/python/sr/LC_MESSAGES/python.po | 2 +- lang/python/sr@latin/LC_MESSAGES/python.po | 2 +- lang/python/sv/LC_MESSAGES/python.po | 2 +- lang/python/th/LC_MESSAGES/python.po | 2 +- lang/python/tr_TR/LC_MESSAGES/python.po | 2 +- lang/python/uk/LC_MESSAGES/python.po | 2 +- lang/python/ur/LC_MESSAGES/python.po | 2 +- lang/python/uz/LC_MESSAGES/python.po | 2 +- lang/python/zh_CN/LC_MESSAGES/python.po | 2 +- lang/python/zh_TW/LC_MESSAGES/python.po | 2 +- 61 files changed, 148 insertions(+), 133 deletions(-) diff --git a/lang/python.pot b/lang/python.pot index 939e2c2a9..ebd00315a 100644 --- a/lang/python.pot +++ b/lang/python.pot @@ -2,7 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# #, fuzzy msgid "" msgstr "" @@ -12,19 +12,19 @@ msgstr "" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: \n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: src/modules/grubcfg/main.py:37 msgid "Configure GRUB." -msgstr "" +msgstr "Configure GRUB." #: src/modules/mount/main.py:38 msgid "Mounting partitions." -msgstr "" +msgstr "Mounting partitions." #: src/modules/mount/main.py:145 src/modules/initcpiocfg/main.py:187 #: src/modules/initcpiocfg/main.py:191 @@ -36,302 +36,317 @@ msgstr "" #: src/modules/fstab/main.py:328 src/modules/localecfg/main.py:144 #: src/modules/networkcfg/main.py:48 msgid "Configuration Error" -msgstr "" +msgstr "Configuration Error" #: src/modules/mount/main.py:146 src/modules/initcpiocfg/main.py:188 #: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:172 #: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 #: src/modules/fstab/main.py:323 msgid "No partitions are defined for
{!s}
to use." -msgstr "" +msgstr "No partitions are defined for
{!s}
to use." #: src/modules/services-systemd/main.py:35 msgid "Configure systemd services" -msgstr "" +msgstr "Configure systemd services" #: src/modules/services-systemd/main.py:68 #: src/modules/services-openrc/main.py:102 msgid "Cannot modify service" -msgstr "" +msgstr "Cannot modify service" #: src/modules/services-systemd/main.py:69 msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"systemctl {arg!s} call in chroot returned error code {num!s}." #: src/modules/services-systemd/main.py:72 #: src/modules/services-systemd/main.py:76 msgid "Cannot enable systemd service {name!s}." -msgstr "" +msgstr "Cannot enable systemd service {name!s}." #: src/modules/services-systemd/main.py:74 msgid "Cannot enable systemd target {name!s}." -msgstr "" +msgstr "Cannot enable systemd target {name!s}." #: src/modules/services-systemd/main.py:78 msgid "Cannot disable systemd target {name!s}." -msgstr "" +msgstr "Cannot disable systemd target {name!s}." #: src/modules/services-systemd/main.py:80 msgid "Cannot mask systemd unit {name!s}." -msgstr "" +msgstr "Cannot mask systemd unit {name!s}." #: src/modules/services-systemd/main.py:82 msgid "" -"Unknown systemd commands {command!s} and {suffix!s} for unit {name!s}." +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." #: src/modules/umount/main.py:40 msgid "Unmount file systems." -msgstr "" +msgstr "Unmount file systems." #: src/modules/unpackfs/main.py:41 msgid "Filling up filesystems." -msgstr "" +msgstr "Filling up filesystems." #: src/modules/unpackfs/main.py:180 msgid "rsync failed with error code {}." -msgstr "" +msgstr "rsync failed with error code {}." #: src/modules/unpackfs/main.py:241 src/modules/unpackfs/main.py:264 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "Failed to unpack image \"{}\"" #: src/modules/unpackfs/main.py:242 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" #: src/modules/unpackfs/main.py:366 msgid "No mount point for root partition" -msgstr "" +msgstr "No mount point for root partition" #: src/modules/unpackfs/main.py:367 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" -msgstr "" +msgstr "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" #: src/modules/unpackfs/main.py:372 msgid "Bad mount point for root partition" -msgstr "" +msgstr "Bad mount point for root partition" #: src/modules/unpackfs/main.py:373 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "rootMountPoint is \"{}\", which does not exist, doing nothing" #: src/modules/unpackfs/main.py:385 src/modules/unpackfs/main.py:389 #: src/modules/unpackfs/main.py:403 msgid "Bad unsquash configuration" -msgstr "" +msgstr "Bad unsquash configuration" #: src/modules/unpackfs/main.py:386 msgid "The filesystem for \"{}\" ({}) is not supported" -msgstr "" +msgstr "The filesystem for \"{}\" ({}) is not supported" #: src/modules/unpackfs/main.py:390 msgid "The source filesystem \"{}\" does not exist" -msgstr "" +msgstr "The source filesystem \"{}\" does not exist" #: src/modules/unpackfs/main.py:404 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "" +msgstr "The destination \"{}\" in the target system is not a directory" #: src/modules/displaymanager/main.py:515 msgid "Cannot write KDM configuration file" -msgstr "" +msgstr "Cannot write KDM configuration file" #: src/modules/displaymanager/main.py:516 msgid "KDM config file {!s} does not exist" -msgstr "" +msgstr "KDM config file {!s} does not exist" #: src/modules/displaymanager/main.py:577 msgid "Cannot write LXDM configuration file" -msgstr "" +msgstr "Cannot write LXDM configuration file" #: src/modules/displaymanager/main.py:578 msgid "LXDM config file {!s} does not exist" -msgstr "" +msgstr "LXDM config file {!s} does not exist" #: src/modules/displaymanager/main.py:661 msgid "Cannot write LightDM configuration file" -msgstr "" +msgstr "Cannot write LightDM configuration file" #: src/modules/displaymanager/main.py:662 msgid "LightDM config file {!s} does not exist" -msgstr "" +msgstr "LightDM config file {!s} does not exist" #: src/modules/displaymanager/main.py:736 msgid "Cannot configure LightDM" -msgstr "" +msgstr "Cannot configure LightDM" #: src/modules/displaymanager/main.py:737 msgid "No LightDM greeter installed." -msgstr "" +msgstr "No LightDM greeter installed." #: src/modules/displaymanager/main.py:768 msgid "Cannot write SLIM configuration file" -msgstr "" +msgstr "Cannot write SLIM configuration file" #: src/modules/displaymanager/main.py:769 msgid "SLIM config file {!s} does not exist" -msgstr "" +msgstr "SLIM config file {!s} does not exist" #: src/modules/displaymanager/main.py:895 msgid "No display managers selected for the displaymanager module." -msgstr "" +msgstr "No display managers selected for the displaymanager module." #: src/modules/displaymanager/main.py:896 msgid "" "The displaymanagers list is empty or undefined in bothglobalstorage and " "displaymanager.conf." msgstr "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." #: src/modules/displaymanager/main.py:978 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "Display manager configuration was incomplete" #: src/modules/initcpiocfg/main.py:36 msgid "Configuring mkinitcpio." -msgstr "" +msgstr "Configuring mkinitcpio." #: src/modules/initcpiocfg/main.py:192 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/machineid/main.py:50 -#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 -#: src/modules/fstab/main.py:329 src/modules/localecfg/main.py:145 -#: src/modules/networkcfg/main.py:49 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/machineid/main.py:50 src/modules/initramfscfg/main.py:99 +#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/fstab/main.py:329 +#: src/modules/localecfg/main.py:145 src/modules/networkcfg/main.py:49 msgid "No root mount point is given for
{!s}
to use." -msgstr "" +msgstr "No root mount point is given for
{!s}
to use." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." -msgstr "" +msgstr "Configuring encrypted swap." #: src/modules/rawfs/main.py:35 msgid "Installing data." -msgstr "" +msgstr "Installing data." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" -msgstr "" +msgstr "Configure OpenRC services" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "" +msgstr "Cannot add service {name!s} to run-level {level!s}." #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "" +msgstr "Cannot remove service {name!s} from run-level {level!s}." #: src/modules/services-openrc/main.py:70 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." #: src/modules/services-openrc/main.py:103 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" +"rc-update {arg!s} call in chroot returned error code {num!s}." #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "" +msgstr "Target runlevel does not exist" #: src/modules/services-openrc/main.py:111 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "" +msgstr "Target service does not exist" #: src/modules/services-openrc/main.py:120 msgid "" -"The path for service {name!s} is {path!s}, which does not exist." +"The path for service {name!s} is {path!s}, which does not " +"exist." msgstr "" +"The path for service {name!s} is {path!s}, which does not " +"exist." #: src/modules/plymouthcfg/main.py:36 msgid "Configure Plymouth theme" -msgstr "" +msgstr "Configure Plymouth theme" #: src/modules/machineid/main.py:36 msgid "Generate machine-id." -msgstr "" +msgstr "Generate machine-id." #: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Processing packages (%(count)d / %(total)d)" #: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "Install packages." #: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Installing one package." +msgstr[1] "Installing %(num)d packages." #: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Removing one package." +msgstr[1] "Removing %(num)d packages." #: src/modules/bootloader/main.py:51 msgid "Install bootloader." -msgstr "" +msgstr "Install bootloader." #: src/modules/removeuser/main.py:34 msgid "Remove live user from target system" -msgstr "" +msgstr "Remove live user from target system" #: src/modules/hwclock/main.py:35 msgid "Setting hardware clock." -msgstr "" +msgstr "Setting hardware clock." #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." -msgstr "" +msgstr "Creating initramfs with dracut." #: src/modules/dracut/main.py:58 msgid "Failed to run dracut on the target" -msgstr "" +msgstr "Failed to run dracut on the target" #: src/modules/dracut/main.py:59 msgid "The exit code was {}" -msgstr "" +msgstr "The exit code was {}" #: src/modules/initramfscfg/main.py:41 msgid "Configuring initramfs." -msgstr "" +msgstr "Configuring initramfs." #: src/modules/openrcdmcryptcfg/main.py:34 msgid "Configuring OpenRC dmcrypt service." -msgstr "" +msgstr "Configuring OpenRC dmcrypt service." #: src/modules/fstab/main.py:38 msgid "Writing fstab." -msgstr "" +msgstr "Writing fstab." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "Dummy python job." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "" +msgstr "Dummy python step {}" #: src/modules/localecfg/main.py:39 msgid "Configuring locales." -msgstr "" +msgstr "Configuring locales." #: src/modules/networkcfg/main.py:37 msgid "Saving network configuration." -msgstr "" +msgstr "Saving network configuration." diff --git a/lang/python/ar/LC_MESSAGES/python.po b/lang/python/ar/LC_MESSAGES/python.po index 8e8618632..043d609ef 100644 --- a/lang/python/ar/LC_MESSAGES/python.po +++ b/lang/python/ar/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: aboodilankaboot, 2019\n" "Language-Team: Arabic (https://www.transifex.com/calamares/teams/20061/ar/)\n" diff --git a/lang/python/ast/LC_MESSAGES/python.po b/lang/python/ast/LC_MESSAGES/python.po index 1bae26123..11cab6997 100644 --- a/lang/python/ast/LC_MESSAGES/python.po +++ b/lang/python/ast/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: enolp , 2019\n" "Language-Team: Asturian (https://www.transifex.com/calamares/teams/20061/ast/)\n" diff --git a/lang/python/be/LC_MESSAGES/python.po b/lang/python/be/LC_MESSAGES/python.po index 529232df5..4e7bd0b47 100644 --- a/lang/python/be/LC_MESSAGES/python.po +++ b/lang/python/be/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Zmicer Turok , 2019\n" "Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n" diff --git a/lang/python/bg/LC_MESSAGES/python.po b/lang/python/bg/LC_MESSAGES/python.po index 1c0243dce..6d486db2f 100644 --- a/lang/python/bg/LC_MESSAGES/python.po +++ b/lang/python/bg/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Georgi Georgiev , 2018\n" "Language-Team: Bulgarian (https://www.transifex.com/calamares/teams/20061/bg/)\n" diff --git a/lang/python/ca/LC_MESSAGES/python.po b/lang/python/ca/LC_MESSAGES/python.po index 374e1e5fb..6017b5d1a 100644 --- a/lang/python/ca/LC_MESSAGES/python.po +++ b/lang/python/ca/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Davidmp , 2019\n" "Language-Team: Catalan (https://www.transifex.com/calamares/teams/20061/ca/)\n" diff --git a/lang/python/ca@valencia/LC_MESSAGES/python.po b/lang/python/ca@valencia/LC_MESSAGES/python.po index 0a80fecdd..1b632c8f8 100644 --- a/lang/python/ca@valencia/LC_MESSAGES/python.po +++ b/lang/python/ca@valencia/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Catalan (Valencian) (https://www.transifex.com/calamares/teams/20061/ca@valencia/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/cs_CZ/LC_MESSAGES/python.po b/lang/python/cs_CZ/LC_MESSAGES/python.po index aa53f6a1d..3687be0a0 100644 --- a/lang/python/cs_CZ/LC_MESSAGES/python.po +++ b/lang/python/cs_CZ/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Pavel Borecki , 2019\n" "Language-Team: Czech (Czech Republic) (https://www.transifex.com/calamares/teams/20061/cs_CZ/)\n" diff --git a/lang/python/da/LC_MESSAGES/python.po b/lang/python/da/LC_MESSAGES/python.po index 1b6d19d66..b5552a8ff 100644 --- a/lang/python/da/LC_MESSAGES/python.po +++ b/lang/python/da/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: scootergrisen, 2019\n" "Language-Team: Danish (https://www.transifex.com/calamares/teams/20061/da/)\n" diff --git a/lang/python/de/LC_MESSAGES/python.po b/lang/python/de/LC_MESSAGES/python.po index 39cd34fc3..f90c4ccb5 100644 --- a/lang/python/de/LC_MESSAGES/python.po +++ b/lang/python/de/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Andreas Eitel , 2019\n" "Language-Team: German (https://www.transifex.com/calamares/teams/20061/de/)\n" diff --git a/lang/python/el/LC_MESSAGES/python.po b/lang/python/el/LC_MESSAGES/python.po index 15559cb9e..71f3e2800 100644 --- a/lang/python/el/LC_MESSAGES/python.po +++ b/lang/python/el/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Efstathios Iosifidis , 2017\n" "Language-Team: Greek (https://www.transifex.com/calamares/teams/20061/el/)\n" diff --git a/lang/python/en_GB/LC_MESSAGES/python.po b/lang/python/en_GB/LC_MESSAGES/python.po index 16cd7b3c5..0882788c1 100644 --- a/lang/python/en_GB/LC_MESSAGES/python.po +++ b/lang/python/en_GB/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Jason Collins , 2018\n" "Language-Team: English (United Kingdom) (https://www.transifex.com/calamares/teams/20061/en_GB/)\n" diff --git a/lang/python/eo/LC_MESSAGES/python.po b/lang/python/eo/LC_MESSAGES/python.po index 540ed464e..81fbde1b3 100644 --- a/lang/python/eo/LC_MESSAGES/python.po +++ b/lang/python/eo/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Kurt Ankh Phoenix , 2018\n" "Language-Team: Esperanto (https://www.transifex.com/calamares/teams/20061/eo/)\n" diff --git a/lang/python/es/LC_MESSAGES/python.po b/lang/python/es/LC_MESSAGES/python.po index 5fb4ed9ed..1aa22db98 100644 --- a/lang/python/es/LC_MESSAGES/python.po +++ b/lang/python/es/LC_MESSAGES/python.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Adolfo Jayme-Barrientos, 2019\n" "Language-Team: Spanish (https://www.transifex.com/calamares/teams/20061/es/)\n" diff --git a/lang/python/es_MX/LC_MESSAGES/python.po b/lang/python/es_MX/LC_MESSAGES/python.po index db5c5bb3e..8340b7aee 100644 --- a/lang/python/es_MX/LC_MESSAGES/python.po +++ b/lang/python/es_MX/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Logan 8192 , 2018\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" diff --git a/lang/python/es_PR/LC_MESSAGES/python.po b/lang/python/es_PR/LC_MESSAGES/python.po index 110d03ac2..ef52c83d7 100644 --- a/lang/python/es_PR/LC_MESSAGES/python.po +++ b/lang/python/es_PR/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Spanish (Puerto Rico) (https://www.transifex.com/calamares/teams/20061/es_PR/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/et/LC_MESSAGES/python.po b/lang/python/et/LC_MESSAGES/python.po index dc237f9d2..f2cabea7f 100644 --- a/lang/python/et/LC_MESSAGES/python.po +++ b/lang/python/et/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Madis Otenurm, 2019\n" "Language-Team: Estonian (https://www.transifex.com/calamares/teams/20061/et/)\n" diff --git a/lang/python/eu/LC_MESSAGES/python.po b/lang/python/eu/LC_MESSAGES/python.po index 448f6ba93..91c43dd37 100644 --- a/lang/python/eu/LC_MESSAGES/python.po +++ b/lang/python/eu/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Ander Elortondo, 2019\n" "Language-Team: Basque (https://www.transifex.com/calamares/teams/20061/eu/)\n" diff --git a/lang/python/fa/LC_MESSAGES/python.po b/lang/python/fa/LC_MESSAGES/python.po index f61e74567..953f05494 100644 --- a/lang/python/fa/LC_MESSAGES/python.po +++ b/lang/python/fa/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Persian (https://www.transifex.com/calamares/teams/20061/fa/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/fi_FI/LC_MESSAGES/python.po b/lang/python/fi_FI/LC_MESSAGES/python.po index 9a7761088..caa90ad3e 100644 --- a/lang/python/fi_FI/LC_MESSAGES/python.po +++ b/lang/python/fi_FI/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Kimmo Kujansuu , 2019\n" "Language-Team: Finnish (Finland) (https://www.transifex.com/calamares/teams/20061/fi_FI/)\n" diff --git a/lang/python/fr/LC_MESSAGES/python.po b/lang/python/fr/LC_MESSAGES/python.po index 65f2a232d..35811e6d7 100644 --- a/lang/python/fr/LC_MESSAGES/python.po +++ b/lang/python/fr/LC_MESSAGES/python.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Arnaud Ferraris , 2019\n" "Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n" diff --git a/lang/python/fr_CH/LC_MESSAGES/python.po b/lang/python/fr_CH/LC_MESSAGES/python.po index afe3e2b09..ad1e6e10c 100644 --- a/lang/python/fr_CH/LC_MESSAGES/python.po +++ b/lang/python/fr_CH/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: French (Switzerland) (https://www.transifex.com/calamares/teams/20061/fr_CH/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/gl/LC_MESSAGES/python.po b/lang/python/gl/LC_MESSAGES/python.po index ab6a30218..4ed2b9414 100644 --- a/lang/python/gl/LC_MESSAGES/python.po +++ b/lang/python/gl/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Xosé, 2018\n" "Language-Team: Galician (https://www.transifex.com/calamares/teams/20061/gl/)\n" diff --git a/lang/python/gu/LC_MESSAGES/python.po b/lang/python/gu/LC_MESSAGES/python.po index 78f447d4c..b5da5797c 100644 --- a/lang/python/gu/LC_MESSAGES/python.po +++ b/lang/python/gu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Gujarati (https://www.transifex.com/calamares/teams/20061/gu/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/he/LC_MESSAGES/python.po b/lang/python/he/LC_MESSAGES/python.po index bffcaf3c3..c0d0ba96c 100644 --- a/lang/python/he/LC_MESSAGES/python.po +++ b/lang/python/he/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Yaron Shahrabani , 2019\n" "Language-Team: Hebrew (https://www.transifex.com/calamares/teams/20061/he/)\n" diff --git a/lang/python/hi/LC_MESSAGES/python.po b/lang/python/hi/LC_MESSAGES/python.po index 90bec6ff5..c2cf6a48a 100644 --- a/lang/python/hi/LC_MESSAGES/python.po +++ b/lang/python/hi/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Panwar108 , 2019\n" "Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n" diff --git a/lang/python/hr/LC_MESSAGES/python.po b/lang/python/hr/LC_MESSAGES/python.po index ac5d226d6..916cdab64 100644 --- a/lang/python/hr/LC_MESSAGES/python.po +++ b/lang/python/hr/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Lovro Kudelić , 2019\n" "Language-Team: Croatian (https://www.transifex.com/calamares/teams/20061/hr/)\n" diff --git a/lang/python/hu/LC_MESSAGES/python.po b/lang/python/hu/LC_MESSAGES/python.po index 87353e392..e3508552a 100644 --- a/lang/python/hu/LC_MESSAGES/python.po +++ b/lang/python/hu/LC_MESSAGES/python.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Lajos Pasztor , 2019\n" "Language-Team: Hungarian (https://www.transifex.com/calamares/teams/20061/hu/)\n" diff --git a/lang/python/id/LC_MESSAGES/python.po b/lang/python/id/LC_MESSAGES/python.po index c5aa3f262..866eac25f 100644 --- a/lang/python/id/LC_MESSAGES/python.po +++ b/lang/python/id/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Wantoyo , 2018\n" "Language-Team: Indonesian (https://www.transifex.com/calamares/teams/20061/id/)\n" diff --git a/lang/python/is/LC_MESSAGES/python.po b/lang/python/is/LC_MESSAGES/python.po index 7aa34b548..7246cefd4 100644 --- a/lang/python/is/LC_MESSAGES/python.po +++ b/lang/python/is/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Kristján Magnússon, 2018\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" diff --git a/lang/python/it_IT/LC_MESSAGES/python.po b/lang/python/it_IT/LC_MESSAGES/python.po index be850430d..0f77ddd4a 100644 --- a/lang/python/it_IT/LC_MESSAGES/python.po +++ b/lang/python/it_IT/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Pierfrancesco Passerini , 2019\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" diff --git a/lang/python/ja/LC_MESSAGES/python.po b/lang/python/ja/LC_MESSAGES/python.po index 19a7f5da4..61ce7a838 100644 --- a/lang/python/ja/LC_MESSAGES/python.po +++ b/lang/python/ja/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: UTUMI Hirosi , 2019\n" "Language-Team: Japanese (https://www.transifex.com/calamares/teams/20061/ja/)\n" diff --git a/lang/python/kk/LC_MESSAGES/python.po b/lang/python/kk/LC_MESSAGES/python.po index cf698330b..466e6b56c 100644 --- a/lang/python/kk/LC_MESSAGES/python.po +++ b/lang/python/kk/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Kazakh (https://www.transifex.com/calamares/teams/20061/kk/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/kn/LC_MESSAGES/python.po b/lang/python/kn/LC_MESSAGES/python.po index b1f815062..e92b8153d 100644 --- a/lang/python/kn/LC_MESSAGES/python.po +++ b/lang/python/kn/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Kannada (https://www.transifex.com/calamares/teams/20061/kn/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/ko/LC_MESSAGES/python.po b/lang/python/ko/LC_MESSAGES/python.po index 38dc9e4c1..dd4ab1807 100644 --- a/lang/python/ko/LC_MESSAGES/python.po +++ b/lang/python/ko/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: 이정희 , 2019\n" "Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n" diff --git a/lang/python/lo/LC_MESSAGES/python.po b/lang/python/lo/LC_MESSAGES/python.po index 5520cad3a..a4619e2eb 100644 --- a/lang/python/lo/LC_MESSAGES/python.po +++ b/lang/python/lo/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Lao (https://www.transifex.com/calamares/teams/20061/lo/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/lt/LC_MESSAGES/python.po b/lang/python/lt/LC_MESSAGES/python.po index 9566485b0..7a740715f 100644 --- a/lang/python/lt/LC_MESSAGES/python.po +++ b/lang/python/lt/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Mindaugas , 2019\n" "Language-Team: Lithuanian (https://www.transifex.com/calamares/teams/20061/lt/)\n" diff --git a/lang/python/mk/LC_MESSAGES/python.po b/lang/python/mk/LC_MESSAGES/python.po index 0b94bc9b2..679efcf24 100644 --- a/lang/python/mk/LC_MESSAGES/python.po +++ b/lang/python/mk/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Martin Ristovski , 2018\n" "Language-Team: Macedonian (https://www.transifex.com/calamares/teams/20061/mk/)\n" diff --git a/lang/python/ml/LC_MESSAGES/python.po b/lang/python/ml/LC_MESSAGES/python.po index 1a57b2c02..937388f97 100644 --- a/lang/python/ml/LC_MESSAGES/python.po +++ b/lang/python/ml/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Balasankar C , 2019\n" "Language-Team: Malayalam (https://www.transifex.com/calamares/teams/20061/ml/)\n" diff --git a/lang/python/mr/LC_MESSAGES/python.po b/lang/python/mr/LC_MESSAGES/python.po index 48a7b7c44..57d2e4ee4 100644 --- a/lang/python/mr/LC_MESSAGES/python.po +++ b/lang/python/mr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Marathi (https://www.transifex.com/calamares/teams/20061/mr/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/nb/LC_MESSAGES/python.po b/lang/python/nb/LC_MESSAGES/python.po index 0ec1bf1b0..44a42e763 100644 --- a/lang/python/nb/LC_MESSAGES/python.po +++ b/lang/python/nb/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Tyler Moss , 2017\n" "Language-Team: Norwegian Bokmål (https://www.transifex.com/calamares/teams/20061/nb/)\n" diff --git a/lang/python/ne_NP/LC_MESSAGES/python.po b/lang/python/ne_NP/LC_MESSAGES/python.po index b63e7d6b8..d8ee5133e 100644 --- a/lang/python/ne_NP/LC_MESSAGES/python.po +++ b/lang/python/ne_NP/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Nepali (Nepal) (https://www.transifex.com/calamares/teams/20061/ne_NP/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/nl/LC_MESSAGES/python.po b/lang/python/nl/LC_MESSAGES/python.po index 1d928be3b..59593f43f 100644 --- a/lang/python/nl/LC_MESSAGES/python.po +++ b/lang/python/nl/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Adriaan de Groot , 2019\n" "Language-Team: Dutch (https://www.transifex.com/calamares/teams/20061/nl/)\n" diff --git a/lang/python/pl/LC_MESSAGES/python.po b/lang/python/pl/LC_MESSAGES/python.po index d00704461..cc892f839 100644 --- a/lang/python/pl/LC_MESSAGES/python.po +++ b/lang/python/pl/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Piotr Strębski , 2019\n" "Language-Team: Polish (https://www.transifex.com/calamares/teams/20061/pl/)\n" diff --git a/lang/python/pt_BR/LC_MESSAGES/python.po b/lang/python/pt_BR/LC_MESSAGES/python.po index 55d421e18..b414efd85 100644 --- a/lang/python/pt_BR/LC_MESSAGES/python.po +++ b/lang/python/pt_BR/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Guilherme , 2019\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/calamares/teams/20061/pt_BR/)\n" diff --git a/lang/python/pt_PT/LC_MESSAGES/python.po b/lang/python/pt_PT/LC_MESSAGES/python.po index c0f6933d3..06b6e7355 100644 --- a/lang/python/pt_PT/LC_MESSAGES/python.po +++ b/lang/python/pt_PT/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Hugo Carvalho , 2019\n" "Language-Team: Portuguese (Portugal) (https://www.transifex.com/calamares/teams/20061/pt_PT/)\n" diff --git a/lang/python/ro/LC_MESSAGES/python.po b/lang/python/ro/LC_MESSAGES/python.po index 1ee4f97a9..03ba3971d 100644 --- a/lang/python/ro/LC_MESSAGES/python.po +++ b/lang/python/ro/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Sebastian Brici , 2018\n" "Language-Team: Romanian (https://www.transifex.com/calamares/teams/20061/ro/)\n" diff --git a/lang/python/ru/LC_MESSAGES/python.po b/lang/python/ru/LC_MESSAGES/python.po index 386918c4d..72e00c105 100644 --- a/lang/python/ru/LC_MESSAGES/python.po +++ b/lang/python/ru/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Aleksey Kabanov , 2018\n" "Language-Team: Russian (https://www.transifex.com/calamares/teams/20061/ru/)\n" diff --git a/lang/python/sk/LC_MESSAGES/python.po b/lang/python/sk/LC_MESSAGES/python.po index 09aac3647..9794e591a 100644 --- a/lang/python/sk/LC_MESSAGES/python.po +++ b/lang/python/sk/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Dušan Kazik , 2019\n" "Language-Team: Slovak (https://www.transifex.com/calamares/teams/20061/sk/)\n" diff --git a/lang/python/sl/LC_MESSAGES/python.po b/lang/python/sl/LC_MESSAGES/python.po index 78e6c3b54..cf0d3be5d 100644 --- a/lang/python/sl/LC_MESSAGES/python.po +++ b/lang/python/sl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Slovenian (https://www.transifex.com/calamares/teams/20061/sl/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/sq/LC_MESSAGES/python.po b/lang/python/sq/LC_MESSAGES/python.po index e7901576f..f32d4cf24 100644 --- a/lang/python/sq/LC_MESSAGES/python.po +++ b/lang/python/sq/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Besnik , 2019\n" "Language-Team: Albanian (https://www.transifex.com/calamares/teams/20061/sq/)\n" diff --git a/lang/python/sr/LC_MESSAGES/python.po b/lang/python/sr/LC_MESSAGES/python.po index 85ed4da58..ea6fb5f2f 100644 --- a/lang/python/sr/LC_MESSAGES/python.po +++ b/lang/python/sr/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Slobodan Simić , 2019\n" "Language-Team: Serbian (https://www.transifex.com/calamares/teams/20061/sr/)\n" diff --git a/lang/python/sr@latin/LC_MESSAGES/python.po b/lang/python/sr@latin/LC_MESSAGES/python.po index a92769139..2edb835b7 100644 --- a/lang/python/sr@latin/LC_MESSAGES/python.po +++ b/lang/python/sr@latin/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Serbian (Latin) (https://www.transifex.com/calamares/teams/20061/sr@latin/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/sv/LC_MESSAGES/python.po b/lang/python/sv/LC_MESSAGES/python.po index 9903ab729..e6e0a943d 100644 --- a/lang/python/sv/LC_MESSAGES/python.po +++ b/lang/python/sv/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Jan-Olof Svensson, 2019\n" "Language-Team: Swedish (https://www.transifex.com/calamares/teams/20061/sv/)\n" diff --git a/lang/python/th/LC_MESSAGES/python.po b/lang/python/th/LC_MESSAGES/python.po index 76bc6d834..f6b491c76 100644 --- a/lang/python/th/LC_MESSAGES/python.po +++ b/lang/python/th/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Thai (https://www.transifex.com/calamares/teams/20061/th/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/tr_TR/LC_MESSAGES/python.po b/lang/python/tr_TR/LC_MESSAGES/python.po index 048e088e4..978775296 100644 --- a/lang/python/tr_TR/LC_MESSAGES/python.po +++ b/lang/python/tr_TR/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Demiray Muhterem , 2019\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/calamares/teams/20061/tr_TR/)\n" diff --git a/lang/python/uk/LC_MESSAGES/python.po b/lang/python/uk/LC_MESSAGES/python.po index 113eaeada..7ff597bd5 100644 --- a/lang/python/uk/LC_MESSAGES/python.po +++ b/lang/python/uk/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Paul S , 2019\n" "Language-Team: Ukrainian (https://www.transifex.com/calamares/teams/20061/uk/)\n" diff --git a/lang/python/ur/LC_MESSAGES/python.po b/lang/python/ur/LC_MESSAGES/python.po index 16097fa3e..8a7a63407 100644 --- a/lang/python/ur/LC_MESSAGES/python.po +++ b/lang/python/ur/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Urdu (https://www.transifex.com/calamares/teams/20061/ur/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/uz/LC_MESSAGES/python.po b/lang/python/uz/LC_MESSAGES/python.po index 750ea2fc3..cf3b0147a 100644 --- a/lang/python/uz/LC_MESSAGES/python.po +++ b/lang/python/uz/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Uzbek (https://www.transifex.com/calamares/teams/20061/uz/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/zh_CN/LC_MESSAGES/python.po b/lang/python/zh_CN/LC_MESSAGES/python.po index 1d1fd08fe..14e358903 100644 --- a/lang/python/zh_CN/LC_MESSAGES/python.po +++ b/lang/python/zh_CN/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: leonfeng , 2018\n" "Language-Team: Chinese (China) (https://www.transifex.com/calamares/teams/20061/zh_CN/)\n" diff --git a/lang/python/zh_TW/LC_MESSAGES/python.po b/lang/python/zh_TW/LC_MESSAGES/python.po index 3c80b1c10..faf332736 100644 --- a/lang/python/zh_TW/LC_MESSAGES/python.po +++ b/lang/python/zh_TW/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-08 15:08+0100\n" +"POT-Creation-Date: 2019-11-28 16:51+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: 黃柏諺 , 2019\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/calamares/teams/20061/zh_TW/)\n" From 1fc31cde32df061d9021c890b72869bed2ec8d3a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 3 Dec 2019 11:29:46 +0100 Subject: [PATCH 026/101] CI: make tag consistent between txpush and txcheck --- ci/txpush.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/txpush.sh b/ci/txpush.sh index 15b301109..890026417 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -40,7 +40,7 @@ else # tx is the regular transifex command # txtag is used to tag in git to measure changes txtag() { - git tag -f translations + git tag -f translation } fi From 0eb666c56abf3b2113ce304c09034ac9e82b3306 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 3 Dec 2019 11:37:28 +0100 Subject: [PATCH 027/101] CMake: support TWEAK releases in version-information --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index edea611cf..691f8245d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -449,6 +449,10 @@ add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro targe ### CALAMARES PROPER # set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} ) +# In rare cases we have hotfix-releases with a tweak +if( CALAMARES_VERSION_TWEAK ) + set( CALAMARES_VERSION "${CALAMARES_VERSION}.${CALAMARES_VERSION_TWEAK}" ) +endif() set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" ) if( CALAMARES_VERSION_RC ) set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} ) From 162ab2129e1ceae03900f8a6c6fdd1eae684ee88 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 3 Dec 2019 11:57:25 +0100 Subject: [PATCH 028/101] Changes: post-release housekeeping --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 691f8245d..2b823ccbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,10 +40,10 @@ cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.17.1 + VERSION 3.2.18 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From 72ee9742f3404439acb83705b8b38fa49c170a6c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 3 Dec 2019 12:24:47 +0100 Subject: [PATCH 029/101] [tracking] Correct the example URLs --- src/modules/tracking/tracking.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/tracking/tracking.conf b/src/modules/tracking/tracking.conf index 84c3f553f..46ba7fed6 100644 --- a/src/modules/tracking/tracking.conf +++ b/src/modules/tracking/tracking.conf @@ -50,7 +50,7 @@ # If blank or commented out, no link is displayed on the tracking # page. It is recommended to either provide policy URLs for each # area, *or* one general link, and not to mix them. -policy: "https://github.com/calamares/calamares/wiki/Users-Guide#installation-tracking" +policy: "https://github.com/calamares/calamares/wiki/Use-Guide#installation-tracking" # This is the default level to enable for tracking. If commented out, # empty, or otherwise invalid, "none" is used, so no tracking by default. @@ -71,7 +71,7 @@ default: user # module then. install: enabled: false - policy: "https://github.com/calamares/calamares/wiki/Users-Guide#installation-tracking" + policy: "https://github.com/calamares/calamares/wiki/Use-Guide#installation-tracking" # url: "https://example.com/install.php?c=$CPU&m=$MEMORY" # The machine area has one specific configuration key: From 0b126b2c62d7a8f31a5d116895645fd05665f087 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 3 Dec 2019 12:49:11 +0100 Subject: [PATCH 030/101] [license] Massage the messages some more - split shared

message off - do some string-concatenation, but only of whole sentences - shave off some vertical space by dropping the mainsubtext item --- src/modules/license/LicensePage.cpp | 25 ++++++++++++++++--------- src/modules/license/LicensePage.ui | 10 ---------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 45205dcd4..915b396a7 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -144,7 +144,7 @@ LicensePage::setEntries( const QList< LicenseEntry >& entriesList ) m_allLicensesOptional &= !entry.isRequired(); } - ui->acceptCheckBox->setChecked(false); + ui->acceptCheckBox->setChecked( false ); checkAcceptance( false ); } @@ -152,20 +152,27 @@ void LicensePage::retranslate() { ui->acceptCheckBox->setText( tr( "I accept the terms and conditions above." ) ); + + QString header = tr( "

License Agreement

" ); + QString review = tr( "Please review the End User License Agreements (EULAs)." ); + const auto br = QStringLiteral( "
" ); + if ( !m_allLicensesOptional ) { - ui->mainText->setText( tr( "

License Agreement

" - "This setup procedure will install proprietary " - "software that is subject to licensing terms." ) ); + ui->mainText->setText( header + + tr( "This setup procedure will install proprietary " + "software that is subject to licensing terms." ) + + br + review ); ui->additionalText->setText( tr( "If you do not agree with the terms, the setup procedure cannot continue." ) ); } else { - ui->mainText->setText( tr( "

License Agreement

" - "This setup procedure can install proprietary " - "software that is subject to licensing terms " - "in order to provide additional features and enhance the user " - "experience." ) ); + ui->mainText->setText( header + + tr( "This setup procedure can install proprietary " + "software that is subject to licensing terms " + "in order to provide additional features and enhance the user " + "experience." ) + + br + review ); ui->additionalText->setText( tr( "If you do not agree with the terms, proprietary software will not " "be installed, and open source alternatives will be used instead." ) ); } diff --git a/src/modules/license/LicensePage.ui b/src/modules/license/LicensePage.ui index c5857a716..13c4d94b1 100644 --- a/src/modules/license/LicensePage.ui +++ b/src/modules/license/LicensePage.ui @@ -32,16 +32,6 @@
- - - - - - - Please review the End User License Agreements (EULAs). - - - From 9fa021e3c6b5d92bfdb7a1758573ee3637489ead Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 3 Dec 2019 13:00:12 +0100 Subject: [PATCH 031/101] [license] Reduce margins hugely - Move layouting code into the .ui file - Reduce margins hugely -- atop the title block, around the scroll area, etc -- so that more license is visible at once. --- src/modules/license/LicensePage.cpp | 26 ++++++++------------------ src/modules/license/LicensePage.ui | 18 +++++++++++++++++- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 915b396a7..fc90d843c 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -98,21 +98,14 @@ LicensePage::LicensePage( QWidget* parent ) { ui->setupUi( this ); - ui->verticalLayout->insertSpacing( 1, CalamaresUtils::defaultFontHeight() ); + // ui->verticalLayout->insertSpacing( 1, CalamaresUtils::defaultFontHeight() ); + CalamaresUtils::unmarginLayout( ui->verticalLayout ); - ui->mainText->setAlignment( Qt::AlignCenter ); ui->mainText->setWordWrap( true ); ui->mainText->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); ui->additionalText->setWordWrap( true ); - ui->verticalLayout->insertSpacing( 4, CalamaresUtils::defaultFontHeight() / 2 ); - - ui->verticalLayout->setContentsMargins( CalamaresUtils::defaultFontHeight(), - CalamaresUtils::defaultFontHeight() * 3, - CalamaresUtils::defaultFontHeight(), - CalamaresUtils::defaultFontHeight() ); - ui->acceptFrame->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); ui->acceptFrame->setStyleSheet( "#acceptFrame { border: 1px solid red;" "background-color: #fff6f6;" @@ -153,25 +146,22 @@ LicensePage::retranslate() { ui->acceptCheckBox->setText( tr( "I accept the terms and conditions above." ) ); - QString header = tr( "

License Agreement

" ); QString review = tr( "Please review the End User License Agreements (EULAs)." ); const auto br = QStringLiteral( "
" ); if ( !m_allLicensesOptional ) { - ui->mainText->setText( header - + tr( "This setup procedure will install proprietary " - "software that is subject to licensing terms." ) + ui->mainText->setText( tr( "This setup procedure will install proprietary " + "software that is subject to licensing terms." ) + br + review ); ui->additionalText->setText( tr( "If you do not agree with the terms, the setup procedure cannot continue." ) ); } else { - ui->mainText->setText( header - + tr( "This setup procedure can install proprietary " - "software that is subject to licensing terms " - "in order to provide additional features and enhance the user " - "experience." ) + ui->mainText->setText( tr( "This setup procedure can install proprietary " + "software that is subject to licensing terms " + "in order to provide additional features and enhance the user " + "experience." ) + br + review ); ui->additionalText->setText( tr( "If you do not agree with the terms, proprietary software will not " "be installed, and open source alternatives will be used instead." ) ); diff --git a/src/modules/license/LicensePage.ui b/src/modules/license/LicensePage.ui index 13c4d94b1..a81fae2b8 100644 --- a/src/modules/license/LicensePage.ui +++ b/src/modules/license/LicensePage.ui @@ -16,6 +16,16 @@ + + + + <h1>License Agreement</h1> + + + Qt::AlignCenter + + + @@ -30,6 +40,12 @@ <Calamares license text> + + Qt::AlignCenter + + + true + @@ -71,7 +87,7 @@ 0 0 765 - 86 + 81
From d3857521555e93f50d47ae50874e6b1e6d1b2203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Fri, 6 Dec 2019 08:28:42 +0100 Subject: [PATCH 032/101] [initcpio] add usr hook as needed --- src/modules/initcpiocfg/main.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 608e7852c..a3a93801e 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -144,6 +144,9 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): and "luksMapperName" not in partition): unencrypted_separate_boot = True + if (partition["mountPoint"] == "/usr" + hooks.append("usr") + if encrypt_hook: hooks.append("encrypt") if not unencrypted_separate_boot and \ From 6e1504fafc947aa7ca53e75bafd60577352e05ef Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 14:52:54 +0100 Subject: [PATCH 033/101] [license] Use just one button - replace the text plus toolbutton (which has an ambiguous arrow in it) by a single button with text saying what it will do. --- src/modules/license/LicenseWidget.cpp | 62 ++++++--------------------- src/modules/license/LicenseWidget.h | 6 +-- 2 files changed, 16 insertions(+), 52 deletions(-) diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index a4c1dfaaa..0d4190d57 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -27,13 +27,9 @@ #include #include #include -#include +#include #include -static constexpr const auto ArrowOpenExternalLink = Qt::RightArrow; -static constexpr const auto ArrowLocalLicenseIsCollapsed = Qt::UpArrow; -static constexpr const auto ArrowLocalLicenseIsExpanded = Qt::DownArrow; - static QString loadLocalFile( const QUrl& u ) { @@ -56,9 +52,9 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) : QWidget( parent ) , m_entry( std::move( entry ) ) , m_label( new QLabel( this ) ) - , m_viewLicenseLabel( new QLabel( this ) ) - , m_expandLicenseButton( nullptr ) + , m_viewLicenseButton( new QPushButton( this ) ) , m_fullText( nullptr ) + , m_isExpanded( m_entry.expandByDefault() ) { QPalette pal( palette() ); pal.setColor( QPalette::Background, palette().window().color().lighter( 108 ) ); @@ -76,46 +72,28 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) m_label->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum ); wiLayout->addWidget( m_label ); - m_viewLicenseLabel->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ); - m_viewLicenseLabel->setAlignment( Qt::AlignVCenter | Qt::AlignRight ); - wiLayout->addWidget( m_viewLicenseLabel ); + m_viewLicenseButton->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum ); + wiLayout->addWidget( m_viewLicenseButton ); - m_expandLicenseButton = new QToolButton( this ); - wiLayout->addWidget( m_expandLicenseButton ); if ( m_entry.isLocal() ) { QVBoxLayout* vLayout = new QVBoxLayout; - - m_expandLicenseButton->setArrowType( ArrowLocalLicenseIsCollapsed ); - connect( m_expandLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::expandClicked ); - vLayout->addLayout( wiLayout ); m_fullText = new QLabel( this ); m_fullText->setText( loadLocalFile( m_entry.m_url ) ); - m_fullText->hide(); m_fullText->setStyleSheet( "border-top: 1px solid black; margin-top: 1em; padding-top: 1em;" ); m_fullText->setObjectName( "licenseItemFullText" ); + m_fullText->setHidden( !m_isExpanded ); + vLayout->addWidget( m_fullText ); setLayout( vLayout ); - - if ( m_entry.expandByDefault() ) - { - // Since we started in a collapsed state, toggle it to expand. - // This can only be done once the full text has been added. - expandClicked(); - } + connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::expandClicked ); } else { - m_expandLicenseButton->setArrowType( ArrowOpenExternalLink ); - connect( m_expandLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked ); - - // Normally setOpenExternalLinks( true ) would do, but we need the - // open code anyway for the toolbutton, let's share it. - connect( m_viewLicenseLabel, &QLabel::linkActivated, this, &LicenseWidget::viewClicked ); - setLayout( wiLayout ); // Only the horizontal layout needed + connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked ); } retranslateUi(); @@ -174,19 +152,11 @@ LicenseWidget::retranslateUi() void LicenseWidget::expandClicked() { - if ( m_expandLicenseButton->arrowType() == ArrowLocalLicenseIsExpanded ) - { - m_expandLicenseButton->setArrowType( ArrowLocalLicenseIsCollapsed ); - } - else - { - m_expandLicenseButton->setArrowType( ArrowLocalLicenseIsExpanded ); - } - + m_isExpanded = !m_isExpanded; // Show/hide based on the new arrow direction. if ( m_fullText ) { - m_fullText->setHidden( m_expandLicenseButton->arrowType() == ArrowLocalLicenseIsCollapsed ); + m_fullText->setHidden( !m_isExpanded ); } updateExpandToolTip(); @@ -198,17 +168,11 @@ LicenseWidget::updateExpandToolTip() { if ( m_entry.isLocal() ) { - const bool isNowCollapsed = m_expandLicenseButton->arrowType() == ArrowLocalLicenseIsCollapsed; - - m_expandLicenseButton->setToolTip( isNowCollapsed ? tr( "Shows the complete license text" ) - : tr( "Hide license text" ) ); - m_viewLicenseLabel->setText( isNowCollapsed ? tr( "Show license agreement" ) : tr( "Hide license agreement" ) ); + m_viewLicenseButton->setText( m_isExpanded ? tr( "Hide license text" ) : tr( "Show the license text" ) ); } else { - m_expandLicenseButton->setToolTip( tr( "Opens the license agreement in a browser window." ) ); - m_viewLicenseLabel->setText( - tr( "View license agreement" ).arg( m_entry.m_url.toString() ) ); + m_viewLicenseButton->setText( tr( "Open license agreement in browser." ) ); } } diff --git a/src/modules/license/LicenseWidget.h b/src/modules/license/LicenseWidget.h index e11d7a746..600516d6d 100644 --- a/src/modules/license/LicenseWidget.h +++ b/src/modules/license/LicenseWidget.h @@ -27,7 +27,7 @@ #include #include -class QToolButton; +class QPushButton; class LicenseWidget : public QWidget { @@ -44,8 +44,8 @@ private: LicenseEntry m_entry; QLabel* m_label; - QLabel* m_viewLicenseLabel; - QToolButton* m_expandLicenseButton; + QPushButton* m_viewLicenseButton; QLabel* m_fullText; + bool m_isExpanded; }; #endif From 7330afd96ad90d4cc0999aca7a220ed5aa9bb614 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 16:49:43 +0100 Subject: [PATCH 034/101] [license] Massage display of buttons - try to keep them the same height - show the URL that will be opened --- src/modules/license/LicenseWidget.cpp | 48 +++++++++++++++++---------- src/modules/license/LicenseWidget.h | 3 +- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 0d4190d57..0d6ef76d6 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -53,7 +53,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) , m_entry( std::move( entry ) ) , m_label( new QLabel( this ) ) , m_viewLicenseButton( new QPushButton( this ) ) - , m_fullText( nullptr ) + , m_licenceTextLabel( new QLabel( this ) ) , m_isExpanded( m_entry.expandByDefault() ) { QPalette pal( palette() ); @@ -69,33 +69,40 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) QHBoxLayout* wiLayout = new QHBoxLayout; m_label->setWordWrap( true ); - m_label->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum ); + m_label->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); wiLayout->addWidget( m_label ); - m_viewLicenseButton->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum ); + wiLayout->addSpacing( 1 ); + m_viewLicenseButton->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); wiLayout->addWidget( m_viewLicenseButton ); + QVBoxLayout* vLayout = new QVBoxLayout; + vLayout->addLayout( wiLayout ); + m_licenceTextLabel->setStyleSheet( "border-top: 1px solid black; margin-top: 0px; padding-top: 1em;" ); + m_licenceTextLabel->setObjectName( "licenseItemFullText" ); + if ( m_entry.isLocal() ) { - QVBoxLayout* vLayout = new QVBoxLayout; - vLayout->addLayout( wiLayout ); - m_fullText = new QLabel( this ); - m_fullText->setText( loadLocalFile( m_entry.m_url ) ); - m_fullText->setStyleSheet( "border-top: 1px solid black; margin-top: 1em; padding-top: 1em;" ); - m_fullText->setObjectName( "licenseItemFullText" ); - - m_fullText->setHidden( !m_isExpanded ); - - vLayout->addWidget( m_fullText ); - setLayout( vLayout ); + m_fullTextContents = loadLocalFile( m_entry.m_url ); + if ( m_isExpanded ) + { + m_licenceTextLabel->setText( m_fullTextContents ); + } + else + { + m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); + } connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::expandClicked ); } else { - setLayout( wiLayout ); // Only the horizontal layout needed + m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked ); } + vLayout->addWidget( m_licenceTextLabel ); + setLayout( vLayout ); + retranslateUi(); } @@ -154,9 +161,16 @@ LicenseWidget::expandClicked() { m_isExpanded = !m_isExpanded; // Show/hide based on the new arrow direction. - if ( m_fullText ) + if ( !m_fullTextContents.isEmpty() ) { - m_fullText->setHidden( !m_isExpanded ); + if ( m_isExpanded ) + { + m_licenceTextLabel->setText( m_fullTextContents ); + } + else + { + m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); + } } updateExpandToolTip(); diff --git a/src/modules/license/LicenseWidget.h b/src/modules/license/LicenseWidget.h index 600516d6d..ffbb9d3c3 100644 --- a/src/modules/license/LicenseWidget.h +++ b/src/modules/license/LicenseWidget.h @@ -45,7 +45,8 @@ private: LicenseEntry m_entry; QLabel* m_label; QPushButton* m_viewLicenseButton; - QLabel* m_fullText; + QLabel* m_licenceTextLabel; + QString m_fullTextContents; bool m_isExpanded; }; #endif From 8a912e6ca1ead0b47c70ed3d9a34356151a05aaa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 17:08:35 +0100 Subject: [PATCH 035/101] [license] Fix the height of each item - needs a qwidget to put the top-items (license name, button) in - fixes issue where the gap between the button and the hrule would change depending on what is expanded --- src/modules/license/LicenseWidget.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 0d6ef76d6..4fb338d46 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -66,18 +66,21 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); setContentsMargins( 4, 4, 4, 4 ); + QVBoxLayout* vLayout = new QVBoxLayout; + QWidget* topPart = new QWidget( this ); + vLayout->addWidget( topPart ); + QHBoxLayout* wiLayout = new QHBoxLayout; + topPart->setLayout( wiLayout ); m_label->setWordWrap( true ); m_label->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); wiLayout->addWidget( m_label ); - wiLayout->addSpacing( 1 ); - m_viewLicenseButton->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); + wiLayout->addSpacing( 10 ); + m_viewLicenseButton->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed ); wiLayout->addWidget( m_viewLicenseButton ); - QVBoxLayout* vLayout = new QVBoxLayout; - vLayout->addLayout( wiLayout ); m_licenceTextLabel->setStyleSheet( "border-top: 1px solid black; margin-top: 0px; padding-top: 1em;" ); m_licenceTextLabel->setObjectName( "licenseItemFullText" ); From c22022056369cee5c91804684c55d069420ca154 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 17:14:35 +0100 Subject: [PATCH 036/101] [license] Give stylesheets meaningful names --- src/modules/license/LicensePage.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index fc90d843c..8f6f700ca 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -44,6 +44,12 @@ #include +static const char mustAccept[] = "#acceptFrame { border: 1px solid red;" + "background-color: #fff6f6;" + "border-radius: 4px;" + "padding: 2px; }"; +static const char okAccept[] = "#acceptFrame { padding: 3px }"; + const NamedEnumTable< LicenseEntry::Type >& LicenseEntry::typeNames() { @@ -107,10 +113,7 @@ LicensePage::LicensePage( QWidget* parent ) ui->additionalText->setWordWrap( true ); ui->acceptFrame->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); - ui->acceptFrame->setStyleSheet( "#acceptFrame { border: 1px solid red;" - "background-color: #fff6f6;" - "border-radius: 4px;" - "padding: 2px; }" ); + ui->acceptFrame->setStyleSheet( mustAccept ); ui->acceptFrame->layout()->setMargin( CalamaresUtils::defaultFontHeight() / 2 ); updateGlobalStorage( false ); // Have not agreed yet @@ -195,14 +198,11 @@ LicensePage::checkAcceptance( bool checked ) m_isNextEnabled = checked || m_allLicensesOptional; if ( !m_isNextEnabled ) { - ui->acceptFrame->setStyleSheet( "#acceptFrame { border: 1px solid red;" - "background-color: #fff8f8;" - "border-radius: 4px;" - "padding: 2px; }" ); + ui->acceptFrame->setStyleSheet( mustAccept ); } else { - ui->acceptFrame->setStyleSheet( "#acceptFrame { padding: 3px }" ); + ui->acceptFrame->setStyleSheet( okAccept ); } emit nextStatusChanged( m_isNextEnabled ); } From 59ea0417fc693adb45c4a4d72dc46a467f834f64 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 17:25:07 +0100 Subject: [PATCH 037/101] [license] Move a less-useful message to tooltip - the message about setup continuing can be a tooltip --- src/modules/license/LicensePage.cpp | 10 +++++----- src/modules/license/LicensePage.ui | 20 ++------------------ 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 8f6f700ca..526820920 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -110,8 +110,6 @@ LicensePage::LicensePage( QWidget* parent ) ui->mainText->setWordWrap( true ); ui->mainText->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); - ui->additionalText->setWordWrap( true ); - ui->acceptFrame->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); ui->acceptFrame->setStyleSheet( mustAccept ); ui->acceptFrame->layout()->setMargin( CalamaresUtils::defaultFontHeight() / 2 ); @@ -157,7 +155,8 @@ LicensePage::retranslate() ui->mainText->setText( tr( "This setup procedure will install proprietary " "software that is subject to licensing terms." ) + br + review ); - ui->additionalText->setText( tr( "If you do not agree with the terms, the setup procedure cannot continue." ) ); + QString mustAcceptText( tr( "If you do not agree with the terms, the setup procedure cannot continue." ) ); + ui->acceptCheckBox->setToolTip( mustAcceptText ); } else { @@ -166,8 +165,9 @@ LicensePage::retranslate() "in order to provide additional features and enhance the user " "experience." ) + br + review ); - ui->additionalText->setText( tr( "If you do not agree with the terms, proprietary software will not " - "be installed, and open source alternatives will be used instead." ) ); + QString okAcceptText( tr( "If you do not agree with the terms, proprietary software will not " + "be installed, and open source alternatives will be used instead." ) ); + ui->acceptCheckBox->setToolTip( okAcceptText ); } ui->retranslateUi( this ); diff --git a/src/modules/license/LicensePage.ui b/src/modules/license/LicensePage.ui index a81fae2b8..b5936d5de 100644 --- a/src/modules/license/LicensePage.ui +++ b/src/modules/license/LicensePage.ui @@ -15,7 +15,7 @@ - + @@ -87,7 +87,7 @@ 0 0 765 - 81 + 89 @@ -107,22 +107,6 @@
- - - - - 0 - 0 - - - - - - - <additionalText> - - - From ac1c0d97d2027507517c6e49704253d3b419ca7e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 17:34:46 +0100 Subject: [PATCH 038/101] [license] Prevent single item from expanding - the last item would expand vertically to fill the scroll area; add a spacer that pushes against it --- src/modules/license/LicensePage.cpp | 1 + src/modules/license/LicenseWidget.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 526820920..237e8d0dc 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -137,6 +137,7 @@ LicensePage::setEntries( const QList< LicenseEntry >& entriesList ) m_entries.append( w ); m_allLicensesOptional &= !entry.isRequired(); } + ui->licenseEntriesLayout->addSpacerItem( new QSpacerItem( 10, 10, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); ui->acceptCheckBox->setChecked( false ); checkAcceptance( false ); diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 4fb338d46..b78972c00 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -68,6 +68,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) QVBoxLayout* vLayout = new QVBoxLayout; QWidget* topPart = new QWidget( this ); + topPart->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); vLayout->addWidget( topPart ); QHBoxLayout* wiLayout = new QHBoxLayout; @@ -102,6 +103,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked ); } + m_licenceTextLabel->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); vLayout->addWidget( m_licenceTextLabel ); setLayout( vLayout ); From 7d88b6d0cdf1e6cda60f308162917b0cdcd7e54d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 20:47:32 +0100 Subject: [PATCH 039/101] [license] Show filenames as filenames - Use File: to display filenames, rather than URL: plus a file:-scheme - Document the change in CHANGES --- CHANGES | 4 ++- src/modules/license/LicenseWidget.cpp | 36 +++++++++++++++------------ src/modules/license/LicenseWidget.h | 1 + 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/CHANGES b/CHANGES index 1f721faca..b82024769 100644 --- a/CHANGES +++ b/CHANGES @@ -12,7 +12,9 @@ This release contains contributions from (alphabetically by first name): - No changes to core functionality. ## Modules ## - - No changes to modules. + - The *license* module has seen a significant change to its looks. + Actions are now labeled more clearly, and the URL (or filename) + for each license is displayed. # 3.2.17.1 (2019-12-02) # diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index b78972c00..09d2230e5 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -88,14 +88,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent ) if ( m_entry.isLocal() ) { m_fullTextContents = loadLocalFile( m_entry.m_url ); - if ( m_isExpanded ) - { - m_licenceTextLabel->setText( m_fullTextContents ); - } - else - { - m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); - } + showLocalLicenseText(); connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::expandClicked ); } else @@ -161,6 +154,24 @@ LicenseWidget::retranslateUi() updateExpandToolTip(); } +void +LicenseWidget::showLocalLicenseText() +{ + if ( m_isExpanded ) + { + m_licenceTextLabel->setText( m_fullTextContents ); + } + else + { + QString fileName = m_entry.m_url.toDisplayString(); + if ( fileName.startsWith( "file:" ) ) + { + fileName = fileName.remove( 0, 5 ); + } + m_licenceTextLabel->setText( tr( "File: %1" ).arg( fileName ) ); + } +} + void LicenseWidget::expandClicked() { @@ -168,14 +179,7 @@ LicenseWidget::expandClicked() // Show/hide based on the new arrow direction. if ( !m_fullTextContents.isEmpty() ) { - if ( m_isExpanded ) - { - m_licenceTextLabel->setText( m_fullTextContents ); - } - else - { - m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); - } + showLocalLicenseText(); } updateExpandToolTip(); diff --git a/src/modules/license/LicenseWidget.h b/src/modules/license/LicenseWidget.h index ffbb9d3c3..a386ae353 100644 --- a/src/modules/license/LicenseWidget.h +++ b/src/modules/license/LicenseWidget.h @@ -38,6 +38,7 @@ public: void retranslateUi(); private: + void showLocalLicenseText(); // Display (or hide) the local license text void expandClicked(); // "slot" to toggle show/hide of local license text void viewClicked(); // "slot" to open link void updateExpandToolTip(); From b2c2255f6a7c73e796397ecfa9e5886e8c6e9afb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 21:46:10 +0100 Subject: [PATCH 040/101] [libcalamares] Add a model of timezone regions --- src/libcalamares/locale/TimeZone.cpp | 86 ++++++++++++++++++++++++++++ src/libcalamares/locale/TimeZone.h | 23 ++++++++ 2 files changed, 109 insertions(+) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 420344ed7..75d1e8e38 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -18,8 +18,14 @@ #include "TimeZone.h" +#include +#include +#include + #include +static const char TZ_DATA_FILE[] = "/usr/share/zoneinfo/zone.tab"; + namespace CalamaresUtils { namespace Locale @@ -27,6 +33,8 @@ namespace Locale CStringPair::CStringPair( CStringPair&& t ) + : m_human( nullptr ) + , m_key( nullptr ) { // My pointers are initialized to nullptr std::swap( m_human, t.m_human ); @@ -94,5 +102,83 @@ TZZone::tr() const return QObject::tr( m_human, "tz_names" ); } +TZRegionModel::TZRegionModel() +{ + + QFile file( TZ_DATA_FILE ); + if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) + { + return; + } + + QStringList regions; + + QTextStream in( &file ); + while ( !in.atEnd() ) + { + QString line = in.readLine().trimmed().split( '#', QString::KeepEmptyParts ).first().trimmed(); + if ( line.isEmpty() ) + { + continue; + } + + QStringList list = line.split( QRegExp( "[\t ]" ), QString::SkipEmptyParts ); + if ( list.size() < 3 ) + { + continue; + } + + QStringList timezoneParts = list.at( 2 ).split( '/', QString::SkipEmptyParts ); + if ( timezoneParts.size() < 2 ) + { + continue; + } + + QString region = timezoneParts.first().trimmed(); + ; + if ( region.isEmpty() ) + { + continue; + } + + if ( !regions.contains( region ) ) + { + regions.append( region ); + } + } + + m_regions.reserve( regions.length() ); + for ( int i = 0; i < regions.length(); ++i ) + { + m_regions.append( TZRegion( regions[ i ].toUtf8().data() ) ); + } +} + +TZRegionModel::~TZRegionModel() {} + +int +TZRegionModel::rowCount( const QModelIndex& parent ) const +{ + return m_regions.count(); +} + +QVariant +TZRegionModel::data( const QModelIndex& index, int role ) const +{ + if ( role != LabelRole ) + { + return QVariant(); + } + + if ( !index.isValid() ) + { + return QVariant(); + } + + const TZRegion& region = m_regions.at( index.row() ); + return region.tr(); +} + + } // namespace Locale } // namespace CalamaresUtils diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 8bba1c45d..c08aa6499 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -19,6 +19,9 @@ #ifndef LOCALE_TIMEZONE_H #define LOCALE_TIMEZONE_H +#include "DllMacro.h" + +#include #include #include @@ -72,6 +75,26 @@ public: QString tr() const override; }; +class DLLEXPORT TZRegionModel : public QAbstractListModel +{ +public: + enum + { + LabelRole = Qt::DisplayRole + }; + + /// @brief Create from the zone.tab file + TZRegionModel(); + virtual ~TZRegionModel() override; + + int rowCount( const QModelIndex& parent ) const override; + + QVariant data( const QModelIndex& index, int role ) const override; + +private: + QVector< TZRegion > m_regions; +}; + } // namespace Locale } // namespace CalamaresUtils From b29b89579e3ed49c90cb820fd20b8e386b4438f7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 15:55:04 -0500 Subject: [PATCH 041/101] [libcalamares] Present TZ regions in consistent order --- src/libcalamares/locale/TimeZone.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 75d1e8e38..9a8c605a1 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -146,6 +146,7 @@ TZRegionModel::TZRegionModel() regions.append( region ); } } + regions.sort(); m_regions.reserve( regions.length() ); for ( int i = 0; i < regions.length(); ++i ) From 1d17cf5c778ba497b906102efdb423dbf9c27279 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 17:20:46 -0400 Subject: [PATCH 042/101] [libcalamares] Accessors for key and complete region data --- src/libcalamares/locale/TimeZone.cpp | 9 +++++++++ src/libcalamares/locale/TimeZone.h | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 9a8c605a1..eb82bb3fa 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -180,6 +180,15 @@ TZRegionModel::data( const QModelIndex& index, int role ) const return region.tr(); } +const TZRegion& +TZRegionModel::region( int index ) const +{ + if ( ( index < 0 ) || ( index >= m_regions.count() ) ) + { + index = 0; + } + return m_regions[ index ]; +} } // namespace Locale } // namespace CalamaresUtils diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index c08aa6499..98d87b1b4 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -54,6 +54,8 @@ public: /// @brief Give the localized human-readable form virtual QString tr() const = 0; + const char* key() const { return m_key; } + protected: char* m_human = nullptr; char* m_key = nullptr; @@ -91,6 +93,8 @@ public: QVariant data( const QModelIndex& index, int role ) const override; + const TZRegion& region( int index ) const; + private: QVector< TZRegion > m_regions; }; From 97235e9b3d657f5e932b317209dff7984ea87c8f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 10:11:08 +0100 Subject: [PATCH 043/101] [libcalamares] Switch CStringPair key to QString - the key is used in various places as a key for Qt data structures, so it's more convenient to have QString than a bare char* --- src/libcalamares/locale/TimeZone.cpp | 7 +++---- src/libcalamares/locale/TimeZone.h | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index eb82bb3fa..e04423f8a 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -34,7 +34,7 @@ namespace Locale CStringPair::CStringPair( CStringPair&& t ) : m_human( nullptr ) - , m_key( nullptr ) + , m_key() { // My pointers are initialized to nullptr std::swap( m_human, t.m_human ); @@ -43,7 +43,7 @@ CStringPair::CStringPair( CStringPair&& t ) CStringPair::CStringPair( const CStringPair& t ) : m_human( t.m_human ? strdup( t.m_human ) : nullptr ) - , m_key( t.m_key ? strdup( t.m_key ) : nullptr ) + , m_key( t.m_key ) { } @@ -76,7 +76,7 @@ munge( const char* s ) CStringPair::CStringPair( const char* s1 ) : m_human( s1 ? munge( s1 ) : nullptr ) - , m_key( s1 ? strdup( s1 ) : nullptr ) + , m_key( s1 ? QString( s1 ) : QString() ) { } @@ -84,7 +84,6 @@ CStringPair::CStringPair( const char* s1 ) CStringPair::~CStringPair() { free( m_human ); - free( m_key ); } diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 98d87b1b4..844e94a47 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -54,11 +54,11 @@ public: /// @brief Give the localized human-readable form virtual QString tr() const = 0; - const char* key() const { return m_key; } + QString key() const { return m_key; } protected: char* m_human = nullptr; - char* m_key = nullptr; + QString m_key; }; /// @brief A pair of strings for timezone regions (e.g. "America") From 2625bb18df7b0a6a6edeb07220dcec71551a2a1a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 11:27:02 +0200 Subject: [PATCH 044/101] [libcalamares] TZRegionModel gets a data role --- src/libcalamares/locale/TimeZone.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index e04423f8a..97795ab84 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -165,7 +165,7 @@ TZRegionModel::rowCount( const QModelIndex& parent ) const QVariant TZRegionModel::data( const QModelIndex& index, int role ) const { - if ( role != LabelRole ) + if ( ( role != LabelRole ) && ( role != Qt::UserRole ) ) { return QVariant(); } @@ -176,7 +176,7 @@ TZRegionModel::data( const QModelIndex& index, int role ) const } const TZRegion& region = m_regions.at( index.row() ); - return region.tr(); + return role == LabelRole ? region.tr() : region.key(); } const TZRegion& From afb5430c42b127542c6d499c8454dc9041fb04e4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 11:30:48 +0200 Subject: [PATCH 045/101] [locale] Use TZRegionModel - instead of populating combo box with texts, use the model read in from zone.tab - this **partly** deprecates the LocaleGlobal stuff --- src/modules/locale/LocalePage.cpp | 20 +++++++------------- src/modules/locale/LocalePage.h | 5 +++++ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index fc715e3f3..402351acf 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -28,6 +28,7 @@ #include "Settings.h" #include "locale/Label.h" +#include "locale/TimeZone.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" #include "utils/Retranslator.h" @@ -143,8 +144,8 @@ containsLocation( const QList< LocaleGlobal::Location >& locations, const QStrin void LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) { - m_regionCombo->blockSignals( true ); - m_zoneCombo->blockSignals( true ); + m_regionModel.reset( new CalamaresUtils::Locale::TZRegionModel ); + m_regionCombo->setModel( m_regionModel.get() ); // Setup locations QHash< QString, QList< LocaleGlobal::Location > > regions = LocaleGlobal::getLocations(); @@ -152,14 +153,6 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons QStringList keys = regions.keys(); keys.sort(); - foreach ( const QString& key, keys ) - { - m_regionCombo->addItem( LocaleGlobal::Location::pretty( key ), key ); - } - - m_regionCombo->blockSignals( false ); - m_zoneCombo->blockSignals( false ); - m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); if ( keys.contains( initialRegion ) && containsLocation( regions.value( initialRegion ), initialZone ) ) @@ -402,13 +395,14 @@ LocalePage::updateGlobalStorage() updateLocaleLabels(); } - void LocalePage::regionChanged( int currentIndex ) { Q_UNUSED( currentIndex ) + QString selectedRegion = m_regionCombo->currentData().toString(); + QHash< QString, QList< LocaleGlobal::Location > > regions = LocaleGlobal::getLocations(); - if ( !regions.contains( m_regionCombo->currentData().toString() ) ) + if ( !regions.contains( selectedRegion ) ) { return; } @@ -417,7 +411,7 @@ LocalePage::regionChanged( int currentIndex ) m_zoneCombo->clear(); - const QList< LocaleGlobal::Location > zones = regions.value( m_regionCombo->currentData().toString() ); + const QList< LocaleGlobal::Location > zones = regions.value( selectedRegion ); for ( const LocaleGlobal::Location& zone : zones ) { m_zoneCombo->addItem( LocaleGlobal::Location::pretty( zone.zone ), zone.zone ); diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 73097252b..f4d352ccf 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -24,9 +24,12 @@ #include "timezonewidget/localeglobal.h" #include "Job.h" +#include "locale/TimeZone.h" #include +#include + class QComboBox; class QLabel; class QPushButton; @@ -71,6 +74,8 @@ private: void changeLocale(); void changeFormats(); + std::unique_ptr< CalamaresUtils::Locale::TZRegionModel > m_regionModel; + TimeZoneWidget* m_tzWidget; QComboBox* m_regionCombo; QComboBox* m_zoneCombo; From 01bba7b4668954ffdbb328da961e72bd21887c20 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 23:36:05 -1100 Subject: [PATCH 046/101] [libcalamares] Make explicit when a model comes from a file --- src/libcalamares/locale/TimeZone.cpp | 24 ++++++++++++++++++------ src/libcalamares/locale/TimeZone.h | 9 ++++++++- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 97795ab84..86ecd4097 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -101,13 +101,23 @@ TZZone::tr() const return QObject::tr( m_human, "tz_names" ); } -TZRegionModel::TZRegionModel() -{ +TZRegionModel::TZRegionModel() {} - QFile file( TZ_DATA_FILE ); +std::shared_ptr< TZRegionModel > +TZRegionModel::fromZoneTab() +{ + return TZRegionModel::fromFile( TZ_DATA_FILE ); +} + +std::shared_ptr< TZRegionModel > +TZRegionModel::fromFile( const char* fileName ) +{ + auto model = std::make_shared< TZRegionModel >(); + + QFile file( fileName ); if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) { - return; + return model; } QStringList regions; @@ -147,11 +157,13 @@ TZRegionModel::TZRegionModel() } regions.sort(); - m_regions.reserve( regions.length() ); + model->m_regions.reserve( regions.length() ); for ( int i = 0; i < regions.length(); ++i ) { - m_regions.append( TZRegion( regions[ i ].toUtf8().data() ) ); + model->m_regions.append( TZRegion( regions[ i ].toUtf8().data() ) ); } + + return model; } TZRegionModel::~TZRegionModel() {} diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 844e94a47..ef3ba2477 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -25,6 +25,8 @@ #include #include +#include + namespace CalamaresUtils { namespace Locale @@ -85,10 +87,15 @@ public: LabelRole = Qt::DisplayRole }; - /// @brief Create from the zone.tab file + /// @brief Create empty model (useless) TZRegionModel(); virtual ~TZRegionModel() override; + /// @brief Create model from a zone.tab-like file + static std::shared_ptr< TZRegionModel > fromFile( const char* fileName ); + /// @brief Calls fromFile with the standard zone.tab name + static std::shared_ptr< TZRegionModel > fromZoneTab(); + int rowCount( const QModelIndex& parent ) const override; QVariant data( const QModelIndex& index, int role ) const override; From 9f06903115ab46660154a3ce286320903fecc3fc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 9 Dec 2019 23:36:32 -1100 Subject: [PATCH 047/101] [local] Chase API change in TZRegionModel --- src/modules/locale/LocalePage.cpp | 2 +- src/modules/locale/LocalePage.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 402351acf..5dfad3516 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -144,7 +144,7 @@ containsLocation( const QList< LocaleGlobal::Location >& locations, const QStrin void LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) { - m_regionModel.reset( new CalamaresUtils::Locale::TZRegionModel ); + m_regionModel = CalamaresUtils::Locale::TZRegionModel::fromZoneTab(); m_regionCombo->setModel( m_regionModel.get() ); // Setup locations diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index f4d352ccf..e918076d9 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -74,7 +74,7 @@ private: void changeLocale(); void changeFormats(); - std::unique_ptr< CalamaresUtils::Locale::TZRegionModel > m_regionModel; + std::shared_ptr< CalamaresUtils::Locale::TZRegionModel > m_regionModel; TimeZoneWidget* m_tzWidget; QComboBox* m_regionCombo; From 9a5e614172ccdbe213ab3a13bb9f5d9375289bbd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 17:24:33 +0630 Subject: [PATCH 048/101] [libcalamares] Build the TZRegion list in one pass - read the file and create the regions on-the-fly, then sort the resulting list (instead of building a string list and then building the regions afterwards) --- src/libcalamares/locale/TimeZone.cpp | 23 ++++++++++++----------- src/libcalamares/locale/TimeZone.h | 6 ++++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 86ecd4097..c03afd833 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -120,6 +120,7 @@ TZRegionModel::fromFile( const char* fileName ) return model; } + model->m_regions.reserve( 12 ); // There's 10 in the file right now QStringList regions; QTextStream in( &file ); @@ -153,20 +154,20 @@ TZRegionModel::fromFile( const char* fileName ) if ( !regions.contains( region ) ) { regions.append( region ); + model->m_regions.append( new TZRegion( region.toUtf8().data() ) ); } } - regions.sort(); - - model->m_regions.reserve( regions.length() ); - for ( int i = 0; i < regions.length(); ++i ) - { - model->m_regions.append( TZRegion( regions[ i ].toUtf8().data() ) ); - } + std::sort( model->m_regions.begin(), model->m_regions.end(), []( const TZRegion* l, const TZRegion* r ) { + return *l < *r; + } ); return model; } -TZRegionModel::~TZRegionModel() {} +TZRegionModel::~TZRegionModel() +{ + qDeleteAll( m_regions ); +} int TZRegionModel::rowCount( const QModelIndex& parent ) const @@ -187,11 +188,11 @@ TZRegionModel::data( const QModelIndex& index, int role ) const return QVariant(); } - const TZRegion& region = m_regions.at( index.row() ); - return role == LabelRole ? region.tr() : region.key(); + const TZRegion* region = m_regions.at( index.row() ); + return role == LabelRole ? region->tr() : region->key(); } -const TZRegion& +const TZRegion* TZRegionModel::region( int index ) const { if ( ( index < 0 ) || ( index >= m_regions.count() ) ) diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index ef3ba2477..db54292c9 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -69,6 +69,8 @@ class TZRegion : public CStringPair public: using CStringPair::CStringPair; QString tr() const override; + + bool operator<( const TZRegion& other ) const { return m_key < other.m_key; } }; /// @brief A pair of strings for specific timezone names (e.g. "New_York") @@ -100,10 +102,10 @@ public: QVariant data( const QModelIndex& index, int role ) const override; - const TZRegion& region( int index ) const; + const TZRegion* region( int index ) const; private: - QVector< TZRegion > m_regions; + QList< TZRegion* > m_regions; }; } // namespace Locale From da277fa7baec275ce95247f400d680971f9f2942 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 17:42:32 +0630 Subject: [PATCH 049/101] [libcalamares] Drop superfluous enum --- src/libcalamares/locale/TimeZone.cpp | 4 ++-- src/libcalamares/locale/TimeZone.h | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index c03afd833..8144a407b 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -178,7 +178,7 @@ TZRegionModel::rowCount( const QModelIndex& parent ) const QVariant TZRegionModel::data( const QModelIndex& index, int role ) const { - if ( ( role != LabelRole ) && ( role != Qt::UserRole ) ) + if ( ( role != Qt::DisplayRole ) && ( role != Qt::UserRole ) ) { return QVariant(); } @@ -189,7 +189,7 @@ TZRegionModel::data( const QModelIndex& index, int role ) const } const TZRegion* region = m_regions.at( index.row() ); - return role == LabelRole ? region->tr() : region->key(); + return role == Qt::DisplayRole ? region->tr() : region->key(); } const TZRegion* diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index db54292c9..4311997a4 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -84,11 +84,6 @@ public: class DLLEXPORT TZRegionModel : public QAbstractListModel { public: - enum - { - LabelRole = Qt::DisplayRole - }; - /// @brief Create empty model (useless) TZRegionModel(); virtual ~TZRegionModel() override; From f4509f3380ed67ce2ea0157676dafa7e533bb17d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 10:45:56 -0100 Subject: [PATCH 050/101] [libcalamares] Move loading to TZRegion - don't make the model load files, provide convenience functions for loading in the value classes - create model from lists of value pointers --- src/libcalamares/locale/TimeZone.cpp | 42 +++++++++++++++------------- src/libcalamares/locale/TimeZone.h | 32 ++++++++++++++++----- src/modules/locale/LocalePage.cpp | 8 ++++-- src/modules/locale/LocalePage.h | 3 +- 4 files changed, 55 insertions(+), 30 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 8144a407b..784d77b9c 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -94,25 +94,21 @@ TZRegion::tr() const return QObject::tr( m_human, "tz_regions" ); } -QString -TZZone::tr() const +TZRegion::~TZRegion() { - // NOTE: context name must match what's used in zone-extractor.py - return QObject::tr( m_human, "tz_names" ); + qDeleteAll( m_zones ); } -TZRegionModel::TZRegionModel() {} - -std::shared_ptr< TZRegionModel > -TZRegionModel::fromZoneTab() +TZRegionList +TZRegion::fromZoneTab() { - return TZRegionModel::fromFile( TZ_DATA_FILE ); + return TZRegion::fromFile( TZ_DATA_FILE ); } -std::shared_ptr< TZRegionModel > -TZRegionModel::fromFile( const char* fileName ) +TZRegionList +TZRegion::fromFile( const char* fileName ) { - auto model = std::make_shared< TZRegionModel >(); + TZRegionList model; QFile file( fileName ); if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) @@ -120,7 +116,6 @@ TZRegionModel::fromFile( const char* fileName ) return model; } - model->m_regions.reserve( 12 ); // There's 10 in the file right now QStringList regions; QTextStream in( &file ); @@ -154,21 +149,28 @@ TZRegionModel::fromFile( const char* fileName ) if ( !regions.contains( region ) ) { regions.append( region ); - model->m_regions.append( new TZRegion( region.toUtf8().data() ) ); + model.append( new TZRegion( region.toUtf8().data() ) ); } } - std::sort( model->m_regions.begin(), model->m_regions.end(), []( const TZRegion* l, const TZRegion* r ) { - return *l < *r; - } ); + std::sort( model.begin(), model.end(), []( const TZRegion* l, const TZRegion* r ) { return *l < *r; } ); return model; } -TZRegionModel::~TZRegionModel() +QString +TZZone::tr() const { - qDeleteAll( m_regions ); + // NOTE: context name must match what's used in zone-extractor.py + return QObject::tr( m_human, "tz_names" ); } +TZRegionModel::TZRegionModel( TZRegionList l ) + : m_regions( l ) +{ +} + +TZRegionModel::~TZRegionModel() {} + int TZRegionModel::rowCount( const QModelIndex& parent ) const { @@ -197,7 +199,7 @@ TZRegionModel::region( int index ) const { if ( ( index < 0 ) || ( index >= m_regions.count() ) ) { - index = 0; + return nullptr; } return m_regions[ index ]; } diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 4311997a4..ff92141fa 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -63,14 +63,35 @@ protected: QString m_key; }; +class TZZone; +class TZRegion; +using TZZoneList = QList< TZZone* >; +using TZRegionList = QList< TZRegion* >; + /// @brief A pair of strings for timezone regions (e.g. "America") class TZRegion : public CStringPair { public: using CStringPair::CStringPair; + virtual ~TZRegion(); QString tr() const override; bool operator<( const TZRegion& other ) const { return m_key < other.m_key; } + + /** @brief Create model from a zone.tab-like file + * + * Returns a list of all the regions; each region has a list + * of zones within that region. + * + * The list owns the regions, and the regions own their own list of zones. + * When getting rid of the list, remember to qDeleteAll() on it. + */ + static TZRegionList fromFile( const char* fileName ); + /// @brief Calls fromFile with the standard zone.tab name + static TZRegionList fromZoneTab(); + +private: + TZZoneList m_zones; }; /// @brief A pair of strings for specific timezone names (e.g. "New_York") @@ -84,15 +105,12 @@ public: class DLLEXPORT TZRegionModel : public QAbstractListModel { public: - /// @brief Create empty model (useless) + /// @brief Create empty model TZRegionModel(); + /// @brief Create model from list (non-owning) + TZRegionModel( TZRegionList ); virtual ~TZRegionModel() override; - /// @brief Create model from a zone.tab-like file - static std::shared_ptr< TZRegionModel > fromFile( const char* fileName ); - /// @brief Calls fromFile with the standard zone.tab name - static std::shared_ptr< TZRegionModel > fromZoneTab(); - int rowCount( const QModelIndex& parent ) const override; QVariant data( const QModelIndex& index, int role ) const override; @@ -100,7 +118,7 @@ public: const TZRegion* region( int index ) const; private: - QList< TZRegion* > m_regions; + TZRegionList m_regions; }; } // namespace Locale diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 5dfad3516..e5d14027f 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -110,7 +110,10 @@ LocalePage::LocalePage( QWidget* parent ) } -LocalePage::~LocalePage() {} +LocalePage::~LocalePage() +{ + qDeleteAll( m_regionList ); +} void @@ -144,7 +147,8 @@ containsLocation( const QList< LocaleGlobal::Location >& locations, const QStrin void LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) { - m_regionModel = CalamaresUtils::Locale::TZRegionModel::fromZoneTab(); + m_regionList = CalamaresUtils::Locale::TZRegion::fromZoneTab(); + m_regionModel = std::make_unique< CalamaresUtils::Locale::TZRegionModel >( m_regionList ); m_regionCombo->setModel( m_regionModel.get() ); // Setup locations diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index e918076d9..07f9fe0f2 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -74,7 +74,8 @@ private: void changeLocale(); void changeFormats(); - std::shared_ptr< CalamaresUtils::Locale::TZRegionModel > m_regionModel; + CalamaresUtils::Locale::TZRegionList m_regionList; + std::unique_ptr< CalamaresUtils::Locale::TZRegionModel > m_regionModel; TimeZoneWidget* m_tzWidget; QComboBox* m_regionCombo; From 1a8439069e2706e25b9ef4bd09049d375b42d418 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 15:36:53 +0200 Subject: [PATCH 051/101] [libcalamares] Extend TZ with location and country --- src/libcalamares/locale/TimeZone.cpp | 60 ++++++++++++++++++++++++++++ src/libcalamares/locale/TimeZone.h | 17 ++++++++ 2 files changed, 77 insertions(+) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 784d77b9c..4bf23150a 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -18,6 +18,8 @@ #include "TimeZone.h" +#include "utils/Logger.h" + #include #include #include @@ -26,6 +28,35 @@ static const char TZ_DATA_FILE[] = "/usr/share/zoneinfo/zone.tab"; +static double +getRightGeoLocation( QString str ) +{ + double sign = 1, num = 0.00; + + // Determine sign + if ( str.startsWith( '-' ) ) + { + sign = -1; + str.remove( 0, 1 ); + } + else if ( str.startsWith( '+' ) ) + { + str.remove( 0, 1 ); + } + + if ( str.length() == 4 || str.length() == 6 ) + { + num = str.mid( 0, 2 ).toDouble() + str.mid( 2, 2 ).toDouble() / 60.0; + } + else if ( str.length() == 5 || str.length() == 7 ) + { + num = str.mid( 0, 3 ).toDouble() + str.mid( 3, 2 ).toDouble() / 60.0; + } + + return sign * num; +} + + namespace CalamaresUtils { namespace Locale @@ -151,12 +182,34 @@ TZRegion::fromFile( const char* fileName ) regions.append( region ); model.append( new TZRegion( region.toUtf8().data() ) ); } + + QString countryCode = list.at( 0 ).trimmed(); + if ( countryCode.size() != 2 ) + { + continue; + } + + timezoneParts.removeFirst(); + TZZone z( timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ); + cDebug() << "Region" << region << z; } std::sort( model.begin(), model.end(), []( const TZRegion* l, const TZRegion* r ) { return *l < *r; } ); return model; } +TZZone::TZZone( const char* zoneName, const QString& country, QString position ) + : CStringPair( zoneName ) + , m_country( country ) +{ + int cooSplitPos = position.indexOf( QRegExp( "[-+]" ), 1 ); + if ( cooSplitPos > 0 ) + { + m_latitude = getRightGeoLocation( position.mid( 0, cooSplitPos ) ); + m_longitude = getRightGeoLocation( position.mid( cooSplitPos + 1 ) ); + } +} + QString TZZone::tr() const { @@ -164,6 +217,13 @@ TZZone::tr() const return QObject::tr( m_human, "tz_names" ); } +void +TZZone::print( QDebug& log ) const +{ + log << key() << '(' << m_country << ' ' << m_latitude << ',' << m_longitude << ')'; +} + + TZRegionModel::TZRegionModel( TZRegionList l ) : m_regions( l ) { diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index ff92141fa..6e4ba062d 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -21,6 +21,8 @@ #include "DllMacro.h" +#include "utils/Logger.h" + #include #include #include @@ -100,8 +102,23 @@ class TZZone : public CStringPair public: using CStringPair::CStringPair; QString tr() const override; + + TZZone( const char* zoneName, const QString& country, QString position ); + + void print( QDebug& ) const; + +protected: + QString m_country; + double m_latitude = 0.0, m_longitude = 0.0; }; +inline QDebug& +operator<<( QDebug& log, const TZZone& z ) +{ + z.print( log ); + return log; +} + class DLLEXPORT TZRegionModel : public QAbstractListModel { public: From fc8364ea549e2da518afcda2ee68074d75eb840f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 14:06:22 +0000 Subject: [PATCH 052/101] [libcalamares] Store zones with each region - move operator< to base class - add each zone to the list held by the region - sort zones at the end --- src/libcalamares/locale/TimeZone.cpp | 23 ++++++++++++++++------- src/libcalamares/locale/TimeZone.h | 4 ++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 4bf23150a..dd8ffbf41 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -147,8 +147,7 @@ TZRegion::fromFile( const char* fileName ) return model; } - QStringList regions; - + TZRegion* thisRegion = nullptr; QTextStream in( &file ); while ( !in.atEnd() ) { @@ -177,10 +176,16 @@ TZRegion::fromFile( const char* fileName ) continue; } - if ( !regions.contains( region ) ) + auto it + = std::find_if( model.begin(), model.end(), [®ion]( const TZRegion* r ) { return r->m_key == region; } ); + if ( it != model.end() ) { - regions.append( region ); - model.append( new TZRegion( region.toUtf8().data() ) ); + thisRegion = *it; + } + else + { + thisRegion = new TZRegion( region.toUtf8().data() ); + model.append( thisRegion ); } QString countryCode = list.at( 0 ).trimmed(); @@ -190,11 +195,15 @@ TZRegion::fromFile( const char* fileName ) } timezoneParts.removeFirst(); - TZZone z( timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ); - cDebug() << "Region" << region << z; + thisRegion->m_zones.append( new TZZone( timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ) ); } std::sort( model.begin(), model.end(), []( const TZRegion* l, const TZRegion* r ) { return *l < *r; } ); + for ( auto& r : model ) + { + std::sort( r->m_zones.begin(), r->m_zones.end(), []( const TZZone* l, const TZZone* r ) { return *l < *r; } ); + } + return model; } diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 6e4ba062d..896661b99 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -60,6 +60,8 @@ public: QString key() const { return m_key; } + bool operator<( const CStringPair& other ) const { return m_key < other.m_key; } + protected: char* m_human = nullptr; QString m_key; @@ -78,8 +80,6 @@ public: virtual ~TZRegion(); QString tr() const override; - bool operator<( const TZRegion& other ) const { return m_key < other.m_key; } - /** @brief Create model from a zone.tab-like file * * Returns a list of all the regions; each region has a list From 6092172f8dbdf59628d1794cefd9abc27e9a677a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 15:32:15 +0100 Subject: [PATCH 053/101] [libcalamares] Regions and zones change to QList - By using QList< CStringPair* > consistently, we can save a bunch of model code at the cost of an occasional dynamic_cast; it's fairly rare for there to be a need for the derived pointer. --- src/libcalamares/locale/TimeZone.cpp | 50 ++++++++++++++++------------ src/libcalamares/locale/TimeZone.h | 30 ++++++++--------- src/modules/locale/LocalePage.cpp | 2 +- src/modules/locale/LocalePage.h | 5 +-- 4 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index dd8ffbf41..e2e13c828 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -130,16 +130,16 @@ TZRegion::~TZRegion() qDeleteAll( m_zones ); } -TZRegionList +CStringPairList TZRegion::fromZoneTab() { return TZRegion::fromFile( TZ_DATA_FILE ); } -TZRegionList +CStringPairList TZRegion::fromFile( const char* fileName ) { - TZRegionList model; + CStringPairList model; QFile file( fileName ); if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) @@ -176,11 +176,11 @@ TZRegion::fromFile( const char* fileName ) continue; } - auto it - = std::find_if( model.begin(), model.end(), [®ion]( const TZRegion* r ) { return r->m_key == region; } ); + auto keyMatch = [®ion]( const CStringPair* r ) { return r->key() == region; }; + auto it = std::find_if( model.begin(), model.end(), keyMatch ); if ( it != model.end() ) { - thisRegion = *it; + thisRegion = dynamic_cast< TZRegion* >( *it ); } else { @@ -195,13 +195,19 @@ TZRegion::fromFile( const char* fileName ) } timezoneParts.removeFirst(); - thisRegion->m_zones.append( new TZZone( timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ) ); + thisRegion->m_zones.append( + new TZZone( timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ) ); } - std::sort( model.begin(), model.end(), []( const TZRegion* l, const TZRegion* r ) { return *l < *r; } ); - for ( auto& r : model ) + auto sorter = []( const CStringPair* l, const CStringPair* r ) { return *l < *r; }; + std::sort( model.begin(), model.end(), sorter ); + for ( auto& it : model ) { - std::sort( r->m_zones.begin(), r->m_zones.end(), []( const TZZone* l, const TZZone* r ) { return *l < *r; } ); + TZRegion* r = dynamic_cast< TZRegion* >( it ); + if ( r ) + { + std::sort( r->m_zones.begin(), r->m_zones.end(), sorter ); + } } return model; @@ -233,21 +239,21 @@ TZZone::print( QDebug& log ) const } -TZRegionModel::TZRegionModel( TZRegionList l ) - : m_regions( l ) +CStringListModel::CStringListModel( CStringPairList l ) + : m_list( l ) { } -TZRegionModel::~TZRegionModel() {} +CStringListModel::~CStringListModel() {} int -TZRegionModel::rowCount( const QModelIndex& parent ) const +CStringListModel::rowCount( const QModelIndex& parent ) const { - return m_regions.count(); + return m_list.count(); } QVariant -TZRegionModel::data( const QModelIndex& index, int role ) const +CStringListModel::data( const QModelIndex& index, int role ) const { if ( ( role != Qt::DisplayRole ) && ( role != Qt::UserRole ) ) { @@ -259,18 +265,18 @@ TZRegionModel::data( const QModelIndex& index, int role ) const return QVariant(); } - const TZRegion* region = m_regions.at( index.row() ); - return role == Qt::DisplayRole ? region->tr() : region->key(); + const auto* item = m_list.at( index.row() ); + return item ? ( role == Qt::DisplayRole ? item->tr() : item->key() ) : QVariant(); } -const TZRegion* -TZRegionModel::region( int index ) const +const CStringPair* +CStringListModel::item( int index ) const { - if ( ( index < 0 ) || ( index >= m_regions.count() ) ) + if ( ( index < 0 ) || ( index >= m_list.count() ) ) { return nullptr; } - return m_regions[ index ]; + return m_list[ index ]; } } // namespace Locale diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 896661b99..0f09d48ca 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -57,7 +57,6 @@ public: /// @brief Give the localized human-readable form virtual QString tr() const = 0; - QString key() const { return m_key; } bool operator<( const CStringPair& other ) const { return m_key < other.m_key; } @@ -67,10 +66,7 @@ protected: QString m_key; }; -class TZZone; -class TZRegion; -using TZZoneList = QList< TZZone* >; -using TZRegionList = QList< TZRegion* >; +using CStringPairList = QList< CStringPair* >; /// @brief A pair of strings for timezone regions (e.g. "America") class TZRegion : public CStringPair @@ -80,20 +76,22 @@ public: virtual ~TZRegion(); QString tr() const override; - /** @brief Create model from a zone.tab-like file + /** @brief Create list from a zone.tab-like file * * Returns a list of all the regions; each region has a list - * of zones within that region. + * of zones within that region. Dyamically, the items in the + * returned list are TZRegions; their zones dynamically are + * TZZones even though all those lists have type CStringPairList. * * The list owns the regions, and the regions own their own list of zones. * When getting rid of the list, remember to qDeleteAll() on it. */ - static TZRegionList fromFile( const char* fileName ); + static CStringPairList fromFile( const char* fileName ); /// @brief Calls fromFile with the standard zone.tab name - static TZRegionList fromZoneTab(); + static CStringPairList fromZoneTab(); private: - TZZoneList m_zones; + CStringPairList m_zones; }; /// @brief A pair of strings for specific timezone names (e.g. "New_York") @@ -119,23 +117,23 @@ operator<<( QDebug& log, const TZZone& z ) return log; } -class DLLEXPORT TZRegionModel : public QAbstractListModel +class CStringListModel : public QAbstractListModel { public: /// @brief Create empty model - TZRegionModel(); + CStringListModel(); /// @brief Create model from list (non-owning) - TZRegionModel( TZRegionList ); - virtual ~TZRegionModel() override; + CStringListModel( CStringPairList ); + virtual ~CStringListModel() override; int rowCount( const QModelIndex& parent ) const override; QVariant data( const QModelIndex& index, int role ) const override; - const TZRegion* region( int index ) const; + const CStringPair* item( int index ) const; private: - TZRegionList m_regions; + CStringPairList m_list; }; } // namespace Locale diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index e5d14027f..bce12e817 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -148,7 +148,7 @@ void LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) { m_regionList = CalamaresUtils::Locale::TZRegion::fromZoneTab(); - m_regionModel = std::make_unique< CalamaresUtils::Locale::TZRegionModel >( m_regionList ); + m_regionModel = std::make_unique< CalamaresUtils::Locale::CStringListModel >( m_regionList ); m_regionCombo->setModel( m_regionModel.get() ); // Setup locations diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 07f9fe0f2..7c2eba253 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -74,8 +74,9 @@ private: void changeLocale(); void changeFormats(); - CalamaresUtils::Locale::TZRegionList m_regionList; - std::unique_ptr< CalamaresUtils::Locale::TZRegionModel > m_regionModel; + // Dynamically, QList< TZRegion* > + CalamaresUtils::Locale::CStringPairList m_regionList; + std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_regionModel; TimeZoneWidget* m_tzWidget; QComboBox* m_regionCombo; From c75e87007317b142267338df657b1fa078a6deb1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 15:54:43 +0100 Subject: [PATCH 054/101] [libcalamares] CStringList::find() convenience function - search for a key and return a type-cast pointer to the result - while here, simplify some other code - the find() function could be done with std::find_if but doesn't get any shorter or more elegant --- src/libcalamares/locale/TimeZone.h | 19 ++++++++++++++++++- src/modules/locale/LocalePage.cpp | 10 +++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 0f09d48ca..86ddd516e 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -66,7 +66,22 @@ protected: QString m_key; }; -using CStringPairList = QList< CStringPair* >; +class CStringPairList : public QList< CStringPair* > +{ +public: + template < typename T > + T* find( const QString& key ) const + { + for ( auto* p : *this ) + { + if ( p->key() == key ) + { + return dynamic_cast< T* >( p ); + } + } + return nullptr; + } +}; /// @brief A pair of strings for timezone regions (e.g. "America") class TZRegion : public CStringPair @@ -90,6 +105,8 @@ public: /// @brief Calls fromFile with the standard zone.tab name static CStringPairList fromZoneTab(); + const CStringPairList& zones() const { return m_zones; } + private: CStringPairList m_zones; }; diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index bce12e817..4bda31d00 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -147,10 +147,13 @@ containsLocation( const QList< LocaleGlobal::Location >& locations, const QStrin void LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) { - m_regionList = CalamaresUtils::Locale::TZRegion::fromZoneTab(); - m_regionModel = std::make_unique< CalamaresUtils::Locale::CStringListModel >( m_regionList ); + using namespace CalamaresUtils::Locale; + + m_regionList = TZRegion::fromZoneTab(); + m_regionModel = std::make_unique< CStringListModel >( m_regionList ); m_regionCombo->setModel( m_regionModel.get() ); + // Setup locations QHash< QString, QList< LocaleGlobal::Location > > regions = LocaleGlobal::getLocations(); @@ -159,7 +162,8 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); - if ( keys.contains( initialRegion ) && containsLocation( regions.value( initialRegion ), initialZone ) ) + auto* region = m_regionList.find< TZRegion >( initialRegion ); + if ( region && region->zones().find< TZZone >( initialZone ) ) { m_tzWidget->setCurrentLocation( initialRegion, initialZone ); } From 226530cf6fc2b26b2d41c811d70f82643d44652b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 01:04:09 +1000 Subject: [PATCH 055/101] [locale] Use model functions from locale service - drop the home-grown combo-box filling, use model --- src/modules/locale/LocalePage.cpp | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 4bda31d00..3bfb9bba1 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -152,14 +152,6 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons m_regionList = TZRegion::fromZoneTab(); m_regionModel = std::make_unique< CStringListModel >( m_regionList ); m_regionCombo->setModel( m_regionModel.get() ); - - - // Setup locations - QHash< QString, QList< LocaleGlobal::Location > > regions = LocaleGlobal::getLocations(); - - QStringList keys = regions.keys(); - keys.sort(); - m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); auto* region = m_regionList.find< TZRegion >( initialRegion ); @@ -406,29 +398,20 @@ LocalePage::updateGlobalStorage() void LocalePage::regionChanged( int currentIndex ) { + using namespace CalamaresUtils::Locale; + Q_UNUSED( currentIndex ) QString selectedRegion = m_regionCombo->currentData().toString(); - QHash< QString, QList< LocaleGlobal::Location > > regions = LocaleGlobal::getLocations(); - if ( !regions.contains( selectedRegion ) ) + TZRegion* region = m_regionList.find< TZRegion >( selectedRegion ); + if ( !region ) { return; } m_zoneCombo->blockSignals( true ); - - m_zoneCombo->clear(); - - const QList< LocaleGlobal::Location > zones = regions.value( selectedRegion ); - for ( const LocaleGlobal::Location& zone : zones ) - { - m_zoneCombo->addItem( LocaleGlobal::Location::pretty( zone.zone ), zone.zone ); - } - - m_zoneCombo->model()->sort( 0 ); - + m_zoneCombo->setModel( new CStringListModel( region->zones() ) ); m_zoneCombo->blockSignals( false ); - m_zoneCombo->currentIndexChanged( m_zoneCombo->currentIndex() ); } From a39c77dfaf0acda6746d3f29ab4a2197d9c5b4d7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 01:11:51 +1000 Subject: [PATCH 056/101] [libcalamares] Store region name in each zone as well --- src/libcalamares/locale/TimeZone.cpp | 5 +++-- src/libcalamares/locale/TimeZone.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index e2e13c828..ea77fc39e 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -196,7 +196,7 @@ TZRegion::fromFile( const char* fileName ) timezoneParts.removeFirst(); thisRegion->m_zones.append( - new TZZone( timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ) ); + new TZZone( region, timezoneParts.join( '/' ).toUtf8().constData(), countryCode, list.at( 1 ) ) ); } auto sorter = []( const CStringPair* l, const CStringPair* r ) { return *l < *r; }; @@ -213,8 +213,9 @@ TZRegion::fromFile( const char* fileName ) return model; } -TZZone::TZZone( const char* zoneName, const QString& country, QString position ) +TZZone::TZZone( const QString& region, const char* zoneName, const QString& country, QString position ) : CStringPair( zoneName ) + , m_region( region ) , m_country( country ) { int cooSplitPos = position.indexOf( QRegExp( "[-+]" ), 1 ); diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 86ddd516e..19d0011b2 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -118,11 +118,12 @@ public: using CStringPair::CStringPair; QString tr() const override; - TZZone( const char* zoneName, const QString& country, QString position ); + TZZone( const QString& region, const char* zoneName, const QString& country, QString position ); void print( QDebug& ) const; protected: + QString m_region; QString m_country; double m_latitude = 0.0, m_longitude = 0.0; }; From 4089a01cb1f30350d31d5c87aa5efc7faf262632 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 01:31:56 +1000 Subject: [PATCH 057/101] [locale] Create TZ model earlier --- src/modules/locale/LocalePage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 3bfb9bba1..ecdfb1935 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -42,6 +42,8 @@ LocalePage::LocalePage( QWidget* parent ) : QWidget( parent ) , m_blockTzWidgetSet( false ) + , m_regionList( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) + , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( m_regionList ) ) { QBoxLayout* mainLayout = new QVBoxLayout; @@ -149,8 +151,6 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons { using namespace CalamaresUtils::Locale; - m_regionList = TZRegion::fromZoneTab(); - m_regionModel = std::make_unique< CStringListModel >( m_regionList ); m_regionCombo->setModel( m_regionModel.get() ); m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); From 3f57b929ee2a2a6a0f7c04e4c3a33625b20bde73 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 01:43:53 +1000 Subject: [PATCH 058/101] [libcalamares] Make the zoneTab region list static - there's only one zone.tab, it won't change during a run, load it only once (this allows for a single global list). --- src/libcalamares/locale/TimeZone.cpp | 5 +++-- src/libcalamares/locale/TimeZone.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index ea77fc39e..ad09d82d5 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -130,10 +130,11 @@ TZRegion::~TZRegion() qDeleteAll( m_zones ); } -CStringPairList +const CStringPairList& TZRegion::fromZoneTab() { - return TZRegion::fromFile( TZ_DATA_FILE ); + static CStringPairList zoneTab = TZRegion::fromFile( TZ_DATA_FILE ); + return zoneTab; } CStringPairList diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 19d0011b2..dd1f9714d 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -103,7 +103,7 @@ public: */ static CStringPairList fromFile( const char* fileName ); /// @brief Calls fromFile with the standard zone.tab name - static CStringPairList fromZoneTab(); + static const CStringPairList& fromZoneTab(); const CStringPairList& zones() const { return m_zones; } From 1880eb514811c4e13c8fb9ae4b5a31a23d72ad64 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 16:10:16 +0000 Subject: [PATCH 059/101] [libcalamares] Add accessors for TZZone --- src/libcalamares/locale/TimeZone.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index dd1f9714d..73e73cf85 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -120,6 +120,11 @@ public: TZZone( const QString& region, const char* zoneName, const QString& country, QString position ); + QString region() const { return m_region; } + QString country() const { return m_country; } + double latitude() const { return m_latitude; } + double longitude() const { return m_longitude; } + void print( QDebug& ) const; protected: From 08dc9011d620dca99a13919d30464c6f9e08b8fd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 17:11:10 +0100 Subject: [PATCH 060/101] [libcalamares] Off-by-one folded the world in half - Dropped the sign from longitudes, wrapping the west onto the east --- src/libcalamares/locale/TimeZone.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index ad09d82d5..a9550ebb6 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -223,7 +223,7 @@ TZZone::TZZone( const QString& region, const char* zoneName, const QString& coun if ( cooSplitPos > 0 ) { m_latitude = getRightGeoLocation( position.mid( 0, cooSplitPos ) ); - m_longitude = getRightGeoLocation( position.mid( cooSplitPos + 1 ) ); + m_longitude = getRightGeoLocation( position.mid( cooSplitPos ) ); } } From 1e0492422449c4b6f843a71037f82832ea37e2bf Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 17:29:35 +0100 Subject: [PATCH 061/101] [locale] Drop the TZ-widget's timezone database - use the global TZ service instead - contains hacks to keep some of the API unchanged, which will be removed shortly --- .../locale/timezonewidget/localeglobal.cpp | 88 +++---------------- .../locale/timezonewidget/localeglobal.h | 14 ++- .../locale/timezonewidget/timezonewidget.cpp | 77 ++++++++-------- .../locale/timezonewidget/timezonewidget.h | 7 +- 4 files changed, 68 insertions(+), 118 deletions(-) diff --git a/src/modules/locale/timezonewidget/localeglobal.cpp b/src/modules/locale/timezonewidget/localeglobal.cpp index 683b2bebc..a9c7d3077 100644 --- a/src/modules/locale/timezonewidget/localeglobal.cpp +++ b/src/modules/locale/timezonewidget/localeglobal.cpp @@ -22,6 +22,8 @@ #include "localeglobal.h" +#include "locale/TimeZone.h" + #include //### @@ -29,7 +31,6 @@ //### QHash > > LocaleGlobal::locales; -QHash > LocaleGlobal::locations; //### @@ -53,12 +54,21 @@ LocaleGlobal::Location::comment() const return qtz.comment(); } +LocaleGlobal::Location & LocaleGlobal::Location::operator=(const CalamaresUtils::Locale::TZZone& location) +{ + region = location.region(); + zone = location.key(); + country = location.country(); + latitude = location.latitude(); + longitude = location.longitude(); + return *this; +} + void LocaleGlobal::init() { // TODO: Error handling initLocales(); - initLocations(); } @@ -70,12 +80,6 @@ LocaleGlobal::getLocales() { -QHash< QString, QList< LocaleGlobal::Location > > -LocaleGlobal::getLocations() { - return locations; -} - - //### //### Private methods //### @@ -126,71 +130,3 @@ LocaleGlobal::initLocales() { locales[lang][territory].append(locale); } } - - - -void -LocaleGlobal::initLocations() { - static const char TZ_DATA_FILE[] = "/usr/share/zoneinfo/zone.tab"; - - locations.clear(); - - QFile file(TZ_DATA_FILE); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) - return; - - QTextStream in(&file); - while (!in.atEnd()) { - QString line = in.readLine().trimmed().split('#', QString::KeepEmptyParts).first().trimmed(); - if (line.isEmpty()) - continue; - - QStringList list = line.split(QRegExp("[\t ]"), QString::SkipEmptyParts); - if (list.size() < 3) - continue; - - Location location; - QStringList timezoneParts = list.at(2).split('/', QString::SkipEmptyParts); - int cooSplitPos = QString(list.at(1)).remove(0, 1).indexOf(QRegExp("[-+]")) + 1; - - if (timezoneParts.size() < 2) - continue; - - QString countryCode = list.at(0).trimmed(); - if (countryCode.size() != 2) - continue; - - location.region = timezoneParts.takeFirst(); - location.zone = timezoneParts.join( '/' ); - location.latitude = getRightGeoLocation(list.at(1).mid(0, cooSplitPos)); - location.longitude = getRightGeoLocation(list.at(1).mid(cooSplitPos)); - location.country = countryCode; - - locations[location.region].append(location); - } -} - - - -double -LocaleGlobal::getRightGeoLocation(QString str) { - double sign = 1, num = 0.00; - - // Determind sign - if (str.startsWith('-')) { - sign = -1; - str.remove(0, 1); - } - else if (str.startsWith('+')) { - str.remove(0, 1); - } - - - if (str.length() == 4 || str.length() == 6) - num = str.mid(0, 2).toDouble() + str.mid(2, 2).toDouble() / 60; - else if (str.length() == 5 || str.length() == 7) - num = str.mid(0, 3).toDouble() + str.mid(3, 2).toDouble() / 60; - - return sign * num; -} - diff --git a/src/modules/locale/timezonewidget/localeglobal.h b/src/modules/locale/timezonewidget/localeglobal.h index 1a8f796d4..2b0bf0de7 100644 --- a/src/modules/locale/timezonewidget/localeglobal.h +++ b/src/modules/locale/timezonewidget/localeglobal.h @@ -36,6 +36,14 @@ #include #include "localeconst.h" +namespace CalamaresUtils +{ + namespace Locale + { + class TZZone; + } +} + class LocaleGlobal { public: @@ -50,19 +58,17 @@ public: double latitude, longitude; static QString pretty( const QString& s ); QString comment() const; + + Location& operator=(const CalamaresUtils::Locale::TZZone&); }; static void init(); static QHash > > getLocales(); - static QHash > getLocations(); private: static QHash > > locales; - static QHash > locations; static void initLocales(); - static void initLocations(); - static double getRightGeoLocation( QString str ); }; inline QDebug& operator <<( QDebug& s, const LocaleGlobal::Location& l ) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 33a8f25ac..bcf95cc25 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2019, Adriaan de Groot * * Originally from the Manjaro Installation Framework * by Roland Singer @@ -24,6 +24,7 @@ #include #include "utils/Logger.h" +#include "locale/TimeZone.h" #include "timezonewidget.h" @@ -67,28 +68,27 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : } -void TimeZoneWidget::setCurrentLocation( QString region, QString zone ) +void TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) { - QHash > hash = LocaleGlobal::getLocations(); - - if ( !hash.contains( region ) ) - return; - - QList locations = hash.value( region ); - for ( int i = 0; i < locations.size(); ++i ) + using namespace CalamaresUtils::Locale; + const auto& regions = TZRegion::fromZoneTab(); + auto *region = regions.find( regionName ); + if ( !region ) { - if ( locations.at( i ).zone == zone ) - { - setCurrentLocation( locations.at( i ) ); - break; - } + return; + } + + auto *zone = region->zones().find< TZZone >(zoneName); + if ( zone ) + { + setCurrentLocation( zone ); } } -void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location ) +void TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone *location ) { - currentLocation = location; + currentLocation = *location; // Set zone QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); @@ -259,32 +259,37 @@ void TimeZoneWidget::mousePressEvent( QMouseEvent* event ) // Set nearest location int nX = 999999, mX = event->pos().x(); int nY = 999999, mY = event->pos().y(); - QHash > hash = LocaleGlobal::getLocations(); - QHash >::iterator iter = hash.begin(); - while ( iter != hash.end() ) + using namespace CalamaresUtils::Locale; + const TZZone* closest = nullptr; + for ( const auto* region_p : TZRegion::fromZoneTab() ) { - QList locations = iter.value(); - - for ( int i = 0; i < locations.size(); ++i ) + const auto* region = dynamic_cast(region_p); + if ( region ) { - LocaleGlobal::Location loc = locations[i]; - QPoint locPos = getLocationPosition( loc.longitude, loc.latitude ); - - if ( ( abs( mX - locPos.x() ) + abs( mY - locPos.y() ) < abs( mX - nX ) + abs( mY - nY ) ) ) + for ( const auto* zone_p : region->zones() ) { - currentLocation = loc; - nX = locPos.x(); - nY = locPos.y(); + const auto* zone = dynamic_cast(zone_p); + if ( zone ) + { + QPoint locPos = getLocationPosition( zone->longitude(), zone->latitude() ); + + if ( ( abs( mX - locPos.x() ) + abs( mY - locPos.y() ) < abs( mX - nX ) + abs( mY - nY ) ) ) + { + closest = zone; + nX = locPos.x(); + nY = locPos.y(); + } + } } } - - ++iter; } - // Set zone image and repaint widget - setCurrentLocation( currentLocation ); - - // Emit signal - emit locationChanged( currentLocation ); + if ( closest ) + { + // Set zone image and repaint widget + setCurrentLocation( closest ); + // Emit signal + emit locationChanged( currentLocation ); + } } diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index dd49b3311..5b09709ba 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -24,6 +24,10 @@ #ifndef TIMEZONEWIDGET_H #define TIMEZONEWIDGET_H +#include "localeglobal.h" + +#include "locale/TimeZone.h" + #include #include #include @@ -34,7 +38,6 @@ #include #include #include -#include "localeglobal.h" #define RGB_TRANSPARENT 0 @@ -54,7 +57,7 @@ public: return currentLocation; } void setCurrentLocation( QString region, QString zone ); - void setCurrentLocation( LocaleGlobal::Location location ); + void setCurrentLocation( const CalamaresUtils::Locale::TZZone *location ); signals: void locationChanged( LocaleGlobal::Location location ); From 7354d35fafe5cb99047e496489b42f4e96ed231f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 17:42:58 +0100 Subject: [PATCH 062/101] [locale] Apply coding style to timezonewidget/ --- .../locale/timezonewidget/localeconst.h | 2 +- .../locale/timezonewidget/localeglobal.cpp | 74 ++++++++----- .../locale/timezonewidget/localeglobal.h | 35 +++--- .../locale/timezonewidget/timezonewidget.cpp | 104 ++++++++++++------ .../locale/timezonewidget/timezonewidget.h | 31 +++--- 5 files changed, 153 insertions(+), 93 deletions(-) diff --git a/src/modules/locale/timezonewidget/localeconst.h b/src/modules/locale/timezonewidget/localeconst.h index 2de1b0dac..8648f0c93 100644 --- a/src/modules/locale/timezonewidget/localeconst.h +++ b/src/modules/locale/timezonewidget/localeconst.h @@ -28,4 +28,4 @@ #define USER_IMAGES_PATH "/usr/share/pixmaps/faces" -#endif // LOCALECONST_H +#endif // LOCALECONST_H diff --git a/src/modules/locale/timezonewidget/localeglobal.cpp b/src/modules/locale/timezonewidget/localeglobal.cpp index a9c7d3077..ef7d64d4d 100644 --- a/src/modules/locale/timezonewidget/localeglobal.cpp +++ b/src/modules/locale/timezonewidget/localeglobal.cpp @@ -30,7 +30,7 @@ //### Private variables //### -QHash > > LocaleGlobal::locales; +QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > LocaleGlobal::locales; //### @@ -48,13 +48,12 @@ LocaleGlobal::Location::pretty( const QString& s ) QString LocaleGlobal::Location::comment() const { - QTimeZone qtz = QTimeZone( QString( "%1/%2" ) - .arg( region ) - .arg( zone ).toLatin1() ); + QTimeZone qtz = QTimeZone( QString( "%1/%2" ).arg( region ).arg( zone ).toLatin1() ); return qtz.comment(); } -LocaleGlobal::Location & LocaleGlobal::Location::operator=(const CalamaresUtils::Locale::TZZone& location) +LocaleGlobal::Location& +LocaleGlobal::Location::operator=( const CalamaresUtils::Locale::TZZone& location ) { region = location.region(); zone = location.key(); @@ -66,67 +65,86 @@ LocaleGlobal::Location & LocaleGlobal::Location::operator=(const CalamaresUtils: void -LocaleGlobal::init() { +LocaleGlobal::init() +{ // TODO: Error handling initLocales(); } - QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > -LocaleGlobal::getLocales() { +LocaleGlobal::getLocales() +{ return locales; } - //### //### Private methods //### void -LocaleGlobal::initLocales() { +LocaleGlobal::initLocales() +{ locales.clear(); - QStringList files = QDir(LOCALESDIR).entryList(QDir::Files, QDir::Name); + QStringList files = QDir( LOCALESDIR ).entryList( QDir::Files, QDir::Name ); - for (int i = 0; i < files.size(); ++i) { - QString filename = files.at(i); - QFile file(QString(LOCALESDIR) + "/" + filename); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + for ( int i = 0; i < files.size(); ++i ) + { + QString filename = files.at( i ); + QFile file( QString( LOCALESDIR ) + "/" + filename ); + if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) + { continue; + } - QTextStream in(&file); + QTextStream in( &file ); QString commentChar = "%"; Locale locale; QString lang, territory; locale.locale = filename; - while (!in.atEnd()) { + while ( !in.atEnd() ) + { QString line = in.readLine().trimmed(); - QStringList split = line.split(commentChar, QString::KeepEmptyParts).first().split(QRegExp(" (?=[^\"]*(\"[^\"]*\"[^\"]*)*$)"), QString::SkipEmptyParts); + QStringList split = line.split( commentChar, QString::KeepEmptyParts ) + .first() + .split( QRegExp( " (?=[^\"]*(\"[^\"]*\"[^\"]*)*$)" ), QString::SkipEmptyParts ); - if (split.size() < 2) + if ( split.size() < 2 ) + { continue; + } - QString sub1 = QString(split.at(0)).remove("\""); - QString sub2 = QString(split.at(1)).remove("\""); + QString sub1 = QString( split.at( 0 ) ).remove( "\"" ); + QString sub2 = QString( split.at( 1 ) ).remove( "\"" ); - if (sub1 == "comment_char") + if ( sub1 == "comment_char" ) + { commentChar = sub2; - else if (sub1 == "title") + } + else if ( sub1 == "title" ) + { locale.description = sub2; - else if (sub1 == "territory") - territory= sub2; - else if (sub1 == "language") + } + else if ( sub1 == "territory" ) + { + territory = sub2; + } + else if ( sub1 == "language" ) + { lang = sub2; + } } - if (lang.isEmpty() || territory.isEmpty()) + if ( lang.isEmpty() || territory.isEmpty() ) + { continue; + } - locales[lang][territory].append(locale); + locales[ lang ][ territory ].append( locale ); } } diff --git a/src/modules/locale/timezonewidget/localeglobal.h b/src/modules/locale/timezonewidget/localeglobal.h index 2b0bf0de7..4f40db083 100644 --- a/src/modules/locale/timezonewidget/localeglobal.h +++ b/src/modules/locale/timezonewidget/localeglobal.h @@ -24,25 +24,25 @@ #ifndef LOCALEGLOBAL_H #define LOCALEGLOBAL_H -#include -#include -#include +#include "localeconst.h" +#include #include -#include -#include +#include #include +#include #include #include -#include -#include "localeconst.h" +#include +#include +#include namespace CalamaresUtils { - namespace Locale - { - class TZZone; - } +namespace Locale +{ +class TZZone; } +} // namespace CalamaresUtils class LocaleGlobal { @@ -59,21 +59,22 @@ public: static QString pretty( const QString& s ); QString comment() const; - Location& operator=(const CalamaresUtils::Locale::TZZone&); + Location& operator=( const CalamaresUtils::Locale::TZZone& ); }; static void init(); - static QHash > > getLocales(); + static QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > getLocales(); private: - static QHash > > locales; + static QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > locales; static void initLocales(); }; -inline QDebug& operator <<( QDebug& s, const LocaleGlobal::Location& l ) +inline QDebug& +operator<<( QDebug& s, const LocaleGlobal::Location& l ) { - return s << l.region << '/' << l.zone << '(' << l.country << ") @N" << l.latitude << 'E' << l.longitude; + return s << l.region << '/' << l.zone << '(' << l.country << ") @N" << l.latitude << 'E' << l.longitude; } -#endif // LOCALEGLOBAL_H +#endif // LOCALEGLOBAL_H diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index bcf95cc25..f60e32c96 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -23,8 +23,8 @@ #include -#include "utils/Logger.h" #include "locale/TimeZone.h" +#include "utils/Logger.h" #include "timezonewidget.h" @@ -38,8 +38,8 @@ constexpr static double MATH_PI = 3.14159265; constexpr static QLatin1String ZONE_NAME( "zone" ); #endif -TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : - QWidget( parent ) +TimeZoneWidget::TimeZoneWidget( QWidget* parent ) + : QWidget( parent ) { setMouseTracking( false ); setCursor( Qt::PointingHandCursor ); @@ -60,7 +60,8 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : QStringList zones = QString( ZONES ).split( " ", QString::SkipEmptyParts ); for ( int i = 0; i < zones.size(); ++i ) { - timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ).scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); + timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ) + .scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); #ifdef DEBUG_TIMEZONES timeZoneImages.last().setText( ZONE_NAME, zones.at( i ) ); #endif @@ -68,17 +69,18 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : } -void TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) +void +TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) { using namespace CalamaresUtils::Locale; const auto& regions = TZRegion::fromZoneTab(); - auto *region = regions.find( regionName ); + auto* region = regions.find< TZRegion >( regionName ); if ( !region ) { return; } - auto *zone = region->zones().find< TZZone >(zoneName); + auto* zone = region->zones().find< TZZone >( zoneName ); if ( zone ) { setCurrentLocation( zone ); @@ -86,7 +88,8 @@ void TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) } -void TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone *location ) +void +TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) { currentLocation = *location; @@ -104,7 +107,7 @@ void TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone *l for ( int i = 0; i < timeZoneImages.size(); ++i ) { - QImage zone = timeZoneImages[i]; + QImage zone = timeZoneImages[ i ]; // If not transparent set as current if ( zone.pixel( pos ) != RGB_TRANSPARENT ) @@ -119,7 +122,9 @@ void TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone *l cDebug() << Logger::SubEntry << "First zone found" << i << zone.text( ZONE_NAME ); } else + { cDebug() << Logger::SubEntry << "Also in zone" << i << zone.text( ZONE_NAME ); + } #else currentZoneImage = zone; break; @@ -132,13 +137,13 @@ void TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone *l } - //### //### Private //### -QPoint TimeZoneWidget::getLocationPosition( double longitude, double latitude ) +QPoint +TimeZoneWidget::getLocationPosition( double longitude, double latitude ) { const int width = this->width(); const int height = this->height(); @@ -152,39 +157,64 @@ QPoint TimeZoneWidget::getLocationPosition( double longitude, double latitude ) // of the different cities / regions looks ok -- at least Thule ends up in the right // country, and Inuvik isn't in the ocean. if ( latitude > 70.0 ) + { y -= sin( MATH_PI * ( latitude - 70.0 ) / 56.0 ) * MAP_Y_OFFSET * height * 0.8; + } if ( latitude > 74.0 ) + { y += 4; + } if ( latitude > 69.0 ) + { y -= 2; + } if ( latitude > 59.0 ) + { y -= 4 * int( ( latitude - 54.0 ) / 5.0 ); + } if ( latitude > 54.0 ) + { y -= 2; + } if ( latitude > 49.0 ) - y -= int ( (latitude - 44.0) / 5.0 ); + { + y -= int( ( latitude - 44.0 ) / 5.0 ); + } // Far south, some stretching occurs as well, but it is less pronounced. // Move down by 1 pixel per 5 degrees past 10 south if ( latitude < 0 ) - y += int( (-latitude) / 5.0 ); + { + y += int( ( -latitude ) / 5.0 ); + } // Antarctica isn't shown on the map, but you could try clicking there if ( latitude < -60 ) + { y = height - 1; + } if ( x < 0 ) - x = width+x; + { + x = width + x; + } if ( x >= width ) + { x -= width; + } if ( y < 0 ) - y = height+y; + { + y = height + y; + } if ( y >= height ) + { y -= height; + } - return QPoint( int(x), int(y) ); + return QPoint( int( x ), int( y ) ); } -void TimeZoneWidget::paintEvent( QPaintEvent* ) +void +TimeZoneWidget::paintEvent( QPaintEvent* ) { const int width = this->width(); const int height = this->height(); @@ -203,17 +233,19 @@ void TimeZoneWidget::paintEvent( QPaintEvent* ) #ifdef DEBUG_TIMEZONES QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); // Draw latitude lines - for ( int y_lat = -50; y_lat < 80 ; y_lat+=5 ) + for ( int y_lat = -50; y_lat < 80; y_lat += 5 ) { QPen p( y_lat ? Qt::black : Qt::red ); p.setWidth( 0 ); painter.setPen( p ); QPoint latLine0( getLocationPosition( 0, y_lat ) ); - int llx = latLine0.x() + ((y_lat & 1) ? -10 : 0); + int llx = latLine0.x() + ( ( y_lat & 1 ) ? -10 : 0 ); int lly = latLine0.y(); - for ( int c = 0 ; c < width ; ++c ) + for ( int c = 0; c < width; ++c ) + { painter.drawPoint( c, lly ); + } } // Just a dot in the selected location, no label painter.setPen( Qt::red ); @@ -222,24 +254,32 @@ void TimeZoneWidget::paintEvent( QPaintEvent* ) // Draw pin at current location QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); - painter.drawImage( point.x() - pin.width()/2, point.y() - pin.height()/2, pin ); + painter.drawImage( point.x() - pin.width() / 2, point.y() - pin.height() / 2, pin ); // Draw text and box const int textWidth = fontMetrics.horizontalAdvance( LocaleGlobal::Location::pretty( currentLocation.zone ) ); const int textHeight = fontMetrics.height(); - QRect rect = QRect( point.x() - textWidth/2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2 ); + QRect rect = QRect( point.x() - textWidth / 2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2 ); if ( rect.x() <= 5 ) + { rect.moveLeft( 5 ); - if ( rect.right() >= width-5 ) + } + if ( rect.right() >= width - 5 ) + { rect.moveRight( width - 5 ); + } if ( rect.y() <= 5 ) + { rect.moveTop( 5 ); - if ( rect.y() >= height-5 ) - rect.moveBottom( height-5 ); + } + if ( rect.y() >= height - 5 ) + { + rect.moveBottom( height - 5 ); + } - painter.setPen( QPen() ); // no pen + painter.setPen( QPen() ); // no pen painter.setBrush( QColor( 40, 40, 40 ) ); painter.drawRoundedRect( rect, 3, 3 ); painter.setPen( Qt::white ); @@ -250,11 +290,13 @@ void TimeZoneWidget::paintEvent( QPaintEvent* ) } - -void TimeZoneWidget::mousePressEvent( QMouseEvent* event ) +void +TimeZoneWidget::mousePressEvent( QMouseEvent* event ) { if ( event->button() != Qt::LeftButton ) + { return; + } // Set nearest location int nX = 999999, mX = event->pos().x(); @@ -264,17 +306,17 @@ void TimeZoneWidget::mousePressEvent( QMouseEvent* event ) const TZZone* closest = nullptr; for ( const auto* region_p : TZRegion::fromZoneTab() ) { - const auto* region = dynamic_cast(region_p); + const auto* region = dynamic_cast< const TZRegion* >( region_p ); if ( region ) { for ( const auto* zone_p : region->zones() ) { - const auto* zone = dynamic_cast(zone_p); + const auto* zone = dynamic_cast< const TZZone* >( zone_p ); if ( zone ) { QPoint locPos = getLocationPosition( zone->longitude(), zone->latitude() ); - if ( ( abs( mX - locPos.x() ) + abs( mY - locPos.y() ) < abs( mX - nX ) + abs( mY - nY ) ) ) + if ( ( abs( mX - locPos.x() ) + abs( mY - locPos.y() ) < abs( mX - nX ) + abs( mY - nY ) ) ) { closest = zone; nX = locPos.x(); diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 5b09709ba..3f5baf16b 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -28,20 +28,22 @@ #include "locale/TimeZone.h" -#include -#include -#include #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include +#include #define RGB_TRANSPARENT 0 -#define ZONES "0.0 1.0 2.0 3.0 3.5 4.0 4.5 5.0 5.5 5.75 6.0 6.5 7.0 8.0 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.75 13.0 -1.0 -2.0 -3.0 -3.5 -4.0 -4.5 -5.0 -5.5 -6.0 -7.0 -8.0 -9.0 -9.5 -10.0 -11.0" +#define ZONES \ + "0.0 1.0 2.0 3.0 3.5 4.0 4.5 5.0 5.5 5.75 6.0 6.5 7.0 8.0 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.75 13.0 -1.0 -2.0 " \ + "-3.0 -3.5 -4.0 -4.5 -5.0 -5.5 -6.0 -7.0 -8.0 -9.0 -9.5 -10.0 -11.0" #define X_SIZE 780 #define Y_SIZE 340 @@ -52,12 +54,9 @@ class TimeZoneWidget : public QWidget public: explicit TimeZoneWidget( QWidget* parent = nullptr ); - LocaleGlobal::Location getCurrentLocation() - { - return currentLocation; - } + LocaleGlobal::Location getCurrentLocation() { return currentLocation; } void setCurrentLocation( QString region, QString zone ); - void setCurrentLocation( const CalamaresUtils::Locale::TZZone *location ); + void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ); signals: void locationChanged( LocaleGlobal::Location location ); @@ -65,7 +64,7 @@ signals: private: QFont font; QImage background, pin, currentZoneImage; - QList timeZoneImages; + QList< QImage > timeZoneImages; LocaleGlobal::Location currentLocation; QPoint getLocationPosition( const LocaleGlobal::Location& l ) @@ -78,4 +77,4 @@ private: void mousePressEvent( QMouseEvent* event ); }; -#endif // TIMEZONEWIDGET_H +#endif // TIMEZONEWIDGET_H From 9d9d9c361d8c5a0f22519dfe25a250fe88709514 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 17:45:38 +0100 Subject: [PATCH 063/101] [locale] Clean up constants - move LOCALESDIR to the one place it's used - remove file with only unused #defines --- .../locale/timezonewidget/localeconst.h | 31 ------------------- .../locale/timezonewidget/localeglobal.cpp | 2 ++ .../locale/timezonewidget/localeglobal.h | 1 - 3 files changed, 2 insertions(+), 32 deletions(-) delete mode 100644 src/modules/locale/timezonewidget/localeconst.h diff --git a/src/modules/locale/timezonewidget/localeconst.h b/src/modules/locale/timezonewidget/localeconst.h deleted file mode 100644 index 8648f0c93..000000000 --- a/src/modules/locale/timezonewidget/localeconst.h +++ /dev/null @@ -1,31 +0,0 @@ -/* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * - * Originally from the Manjaro Installation Framework - * by Roland Singer - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - */ - -#ifndef LOCALECONST_H -#define LOCALECONST_H - - -#define LOCALESDIR "/usr/share/i18n/locales" -#define USER_IMAGES_PATH "/usr/share/pixmaps/faces" - - -#endif // LOCALECONST_H diff --git a/src/modules/locale/timezonewidget/localeglobal.cpp b/src/modules/locale/timezonewidget/localeglobal.cpp index ef7d64d4d..593de5cab 100644 --- a/src/modules/locale/timezonewidget/localeglobal.cpp +++ b/src/modules/locale/timezonewidget/localeglobal.cpp @@ -87,6 +87,8 @@ LocaleGlobal::getLocales() void LocaleGlobal::initLocales() { + static const char LOCALESDIR[] = "/usr/share/i18n/locales"; + locales.clear(); QStringList files = QDir( LOCALESDIR ).entryList( QDir::Files, QDir::Name ); diff --git a/src/modules/locale/timezonewidget/localeglobal.h b/src/modules/locale/timezonewidget/localeglobal.h index 4f40db083..b5e175c7c 100644 --- a/src/modules/locale/timezonewidget/localeglobal.h +++ b/src/modules/locale/timezonewidget/localeglobal.h @@ -24,7 +24,6 @@ #ifndef LOCALEGLOBAL_H #define LOCALEGLOBAL_H -#include "localeconst.h" #include #include #include From 2dfbed40c5f3e9b4b398b2e141d5e57accbd0929 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 09:57:40 -0700 Subject: [PATCH 064/101] [locale] Move defines - Used in only one place, move to .cpp - Drop useless scaling all the images *are* that size already - Add debugging check that the images match expected size --- .../locale/timezonewidget/timezonewidget.cpp | 18 +++++++++++++++--- .../locale/timezonewidget/timezonewidget.h | 3 --- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index f60e32c96..307e1d9b8 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -28,6 +28,8 @@ #include "timezonewidget.h" +// Pixel value indicating that a spot is outside of a zone +#define RGB_TRANSPARENT 0 static constexpr double MAP_Y_OFFSET = 0.125; static constexpr double MAP_X_OFFSET = -0.0370; @@ -49,9 +51,16 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) font.setBold( false ); // Images - background = QImage( ":/images/bg.png" ).scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); + background = QImage( ":/images/bg.png" ); pin = QImage( ":/images/pin.png" ); +#ifdef DEBUG_TIMEZONES + if ( background.size() != QSize( 780, 340 ) ) + { + cWarning() << "Timezone background size mitsmatch" << background.size(); + } +#endif + // Set size setMinimumSize( background.size() ); setMaximumSize( background.size() ); @@ -60,9 +69,12 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) QStringList zones = QString( ZONES ).split( " ", QString::SkipEmptyParts ); for ( int i = 0; i < zones.size(); ++i ) { - timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ) - .scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); + timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ) ); #ifdef DEBUG_TIMEZONES + if ( timeZoneImages.last().size() != background.size() ) + { + cWarning() << "Timezone image size mismatch" << zones.at( i ) << timeZoneImages.last().size(); + } timeZoneImages.last().setText( ZONE_NAME, zones.at( i ) ); #endif } diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 3f5baf16b..87b817349 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -40,12 +40,9 @@ #include -#define RGB_TRANSPARENT 0 #define ZONES \ "0.0 1.0 2.0 3.0 3.5 4.0 4.5 5.0 5.5 5.75 6.0 6.5 7.0 8.0 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.75 13.0 -1.0 -2.0 " \ "-3.0 -3.5 -4.0 -4.5 -5.0 -5.5 -6.0 -7.0 -8.0 -9.0 -9.5 -10.0 -11.0" -#define X_SIZE 780 -#define Y_SIZE 340 class TimeZoneWidget : public QWidget From fb9d53909e2feca3f27274a85aa7e365fa5bcd8d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 16:09:48 -0100 Subject: [PATCH 065/101] [locale] Drop ZONES #define - this was a "cheap" way to write a list, but going through QStringList::split() is just a long-way-around for static initialization --- src/modules/locale/timezonewidget/timezonewidget.cpp | 8 +++++--- src/modules/locale/timezonewidget/timezonewidget.h | 6 ------ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 307e1d9b8..a392cc863 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -66,10 +66,12 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) setMaximumSize( background.size() ); // Zone images - QStringList zones = QString( ZONES ).split( " ", QString::SkipEmptyParts ); - for ( int i = 0; i < zones.size(); ++i ) + for ( const auto* zoneName : + { "0.0", "1.0", "2.0", "3.0", "3.5", "4.0", "4.5", "5.0", "5.5", "5.75", "6.0", "6.5", "7.0", + "8.0", "9.0", "9.5", "10.0", "10.5", "11.0", "11.5", "12.0", "12.75", "13.0", "-1.0", "-2.0", "-3.0", + "-3.5", "-4.0", "-4.5", "-5.0", "-5.5", "-6.0", "-7.0", "-8.0", "-9.0", "-9.5", "-10.0", "-11.0" } ) { - timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ) ); + timeZoneImages.append( QImage( QStringLiteral( ":/images/timezone_" ) + zoneName + ".png" ) ); #ifdef DEBUG_TIMEZONES if ( timeZoneImages.last().size() != background.size() ) { diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 87b817349..7a3572f10 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -39,12 +39,6 @@ #include #include - -#define ZONES \ - "0.0 1.0 2.0 3.0 3.5 4.0 4.5 5.0 5.5 5.75 6.0 6.5 7.0 8.0 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.75 13.0 -1.0 -2.0 " \ - "-3.0 -3.5 -4.0 -4.5 -5.0 -5.5 -6.0 -7.0 -8.0 -9.0 -9.5 -10.0 -11.0" - - class TimeZoneWidget : public QWidget { Q_OBJECT From e164f8d63a72ca97e9e782d2c0427e3fb6fb864b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 16:19:06 -0100 Subject: [PATCH 066/101] [locale] Fix build with DEBUG_TIMEZONE - all the API changes were not reflected in the debugging code --- src/modules/locale/timezonewidget/timezonewidget.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index a392cc863..41b5b1980 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -75,9 +75,9 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) #ifdef DEBUG_TIMEZONES if ( timeZoneImages.last().size() != background.size() ) { - cWarning() << "Timezone image size mismatch" << zones.at( i ) << timeZoneImages.last().size(); + cWarning() << "Timezone image size mismatch" << zoneName << timeZoneImages.last().size(); } - timeZoneImages.last().setText( ZONE_NAME, zones.at( i ) ); + timeZoneImages.last().setText( ZONE_NAME, zoneName ); #endif } } @@ -111,8 +111,7 @@ TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* locati QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); #ifdef DEBUG_TIMEZONES - cDebug() << "Setting location" << location.region << location.zone << location.country; - cDebug() << Logger::SubEntry << "longitude" << location.longitude << "latitude" << location.latitude; + cDebug() << "Setting location" << location->region() << *location; cDebug() << Logger::SubEntry << "pixel x" << pos.x() << "pixel y" << pos.y(); bool found = false; From 93ae44e214699b8c2b54fa64c2e48436b479dd35 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 22:33:54 +0000 Subject: [PATCH 067/101] [libcalamares] Split translatable timezone data - Hide the one file from lupdate by giving it a weird suffix - Call lupdate a second time for the timezone translations - While here, adjust so that the options precede the directories they are supposed to affect I don't want to give the translation teams 444 new strings all at once (about 90% of which don't need translation). --- .tx/config | 6 ++++++ ci/txpush.sh | 4 +++- .../locale/{ZoneData_p.cpp => ZoneData_p.cxxtr} | 0 3 files changed, 9 insertions(+), 1 deletion(-) rename src/libcalamares/locale/{ZoneData_p.cpp => ZoneData_p.cxxtr} (100%) diff --git a/.tx/config b/.tx/config index 3cf9489f6..cdae01013 100644 --- a/.tx/config +++ b/.tx/config @@ -7,6 +7,12 @@ source_file = lang/calamares_en.ts source_lang = en type = QT +[calamares.tz] +file_filter = lang/tz_.ts +source_file = lang/tz_en.ts +source_lang = en +type = QT + [calamares.dummypythonqt] file_filter = src/modules/dummypythonqt/lang//LC_MESSAGES/dummypythonqt.po source_file = src/modules/dummypythonqt/lang/dummypythonqt.pot diff --git a/ci/txpush.sh b/ci/txpush.sh index 04e49921d..954e0b4b1 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -56,9 +56,11 @@ lupdate -version > /dev/null 2>&1 || { echo "! No working lupdate" ; lupdate -ve # Don't pull branding translations in, # those are done separately. _srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml" -lupdate $_srcdirs -ts -no-obsolete lang/calamares_en.ts +lupdate -no-obsolete $_srcdirs -ts lang/calamares_en.ts +lupdate -no-obsolete -extensions cxxtr src/libcalamares/locale -ts lang/tz_en.ts tx push --source --no-interactive -r calamares.calamares-master +tx push --source --no-interactive -r calamares.tz tx push --source --no-interactive -r calamares.fdo ### PYTHON MODULES diff --git a/src/libcalamares/locale/ZoneData_p.cpp b/src/libcalamares/locale/ZoneData_p.cxxtr similarity index 100% rename from src/libcalamares/locale/ZoneData_p.cpp rename to src/libcalamares/locale/ZoneData_p.cxxtr From 3e3334349baaa76cd9002c9dec4e0a85ec23cbe7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 22:43:52 +0000 Subject: [PATCH 068/101] i18n: untranslated timezone names --- lang/tz_en.ts | 2617 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2617 insertions(+) create mode 100644 lang/tz_en.ts diff --git a/lang/tz_en.ts b/lang/tz_en.ts new file mode 100644 index 000000000..7e46eab3d --- /dev/null +++ b/lang/tz_en.ts @@ -0,0 +1,2617 @@ + + + + + QObject + + + Africa + tz_regions + + + + + America + tz_regions + + + + + Antarctica + tz_regions + + + + + Arctic + tz_regions + + + + + Asia + tz_regions + + + + + Atlantic + tz_regions + + + + + Australia + tz_regions + + + + + Europe + tz_regions + + + + + Indian + tz_regions + + + + + Pacific + tz_regions + + + + + Abidjan + tz_names + + + + + Accra + tz_names + + + + + Adak + tz_names + + + + + Addis Ababa + tz_names + + + + + Adelaide + tz_names + + + + + Aden + tz_names + + + + + Algiers + tz_names + + + + + Almaty + tz_names + + + + + Amman + tz_names + + + + + Amsterdam + tz_names + + + + + Anadyr + tz_names + + + + + Anchorage + tz_names + + + + + Andorra + tz_names + + + + + Anguilla + tz_names + + + + + Antananarivo + tz_names + + + + + Antigua + tz_names + + + + + Apia + tz_names + + + + + Aqtau + tz_names + + + + + Aqtobe + tz_names + + + + + Araguaina + tz_names + + + + + Argentina/Buenos Aires + tz_names + + + + + Argentina/Catamarca + tz_names + + + + + Argentina/Cordoba + tz_names + + + + + Argentina/Jujuy + tz_names + + + + + Argentina/La Rioja + tz_names + + + + + Argentina/Mendoza + tz_names + + + + + Argentina/Rio Gallegos + tz_names + + + + + Argentina/Salta + tz_names + + + + + Argentina/San Juan + tz_names + + + + + Argentina/San Luis + tz_names + + + + + Argentina/Tucuman + tz_names + + + + + Argentina/Ushuaia + tz_names + + + + + Aruba + tz_names + + + + + Ashgabat + tz_names + + + + + Asmara + tz_names + + + + + Astrakhan + tz_names + + + + + Asuncion + tz_names + + + + + Athens + tz_names + + + + + Atikokan + tz_names + + + + + Atyrau + tz_names + + + + + Auckland + tz_names + + + + + Azores + tz_names + + + + + Baghdad + tz_names + + + + + Bahia + tz_names + + + + + Bahia Banderas + tz_names + + + + + Bahrain + tz_names + + + + + Baku + tz_names + + + + + Bamako + tz_names + + + + + Bangkok + tz_names + + + + + Bangui + tz_names + + + + + Banjul + tz_names + + + + + Barbados + tz_names + + + + + Barnaul + tz_names + + + + + Beirut + tz_names + + + + + Belem + tz_names + + + + + Belgrade + tz_names + + + + + Belize + tz_names + + + + + Berlin + tz_names + + + + + Bermuda + tz_names + + + + + Bishkek + tz_names + + + + + Bissau + tz_names + + + + + Blanc-Sablon + tz_names + + + + + Blantyre + tz_names + + + + + Boa Vista + tz_names + + + + + Bogota + tz_names + + + + + Boise + tz_names + + + + + Bougainville + tz_names + + + + + Bratislava + tz_names + + + + + Brazzaville + tz_names + + + + + Brisbane + tz_names + + + + + Broken Hill + tz_names + + + + + Brunei + tz_names + + + + + Brussels + tz_names + + + + + Bucharest + tz_names + + + + + Budapest + tz_names + + + + + Bujumbura + tz_names + + + + + Busingen + tz_names + + + + + Cairo + tz_names + + + + + Cambridge Bay + tz_names + + + + + Campo Grande + tz_names + + + + + Canary + tz_names + + + + + Cancun + tz_names + + + + + Cape Verde + tz_names + + + + + Caracas + tz_names + + + + + Casablanca + tz_names + + + + + Casey + tz_names + + + + + Cayenne + tz_names + + + + + Cayman + tz_names + + + + + Ceuta + tz_names + + + + + Chagos + tz_names + + + + + Chatham + tz_names + + + + + Chicago + tz_names + + + + + Chihuahua + tz_names + + + + + Chisinau + tz_names + + + + + Chita + tz_names + + + + + Choibalsan + tz_names + + + + + Christmas + tz_names + + + + + Chuuk + tz_names + + + + + Cocos + tz_names + + + + + Colombo + tz_names + + + + + Comoro + tz_names + + + + + Conakry + tz_names + + + + + Copenhagen + tz_names + + + + + Costa Rica + tz_names + + + + + Creston + tz_names + + + + + Cuiaba + tz_names + + + + + Curacao + tz_names + + + + + Currie + tz_names + + + + + Dakar + tz_names + + + + + Damascus + tz_names + + + + + Danmarkshavn + tz_names + + + + + Dar es Salaam + tz_names + + + + + Darwin + tz_names + + + + + Davis + tz_names + + + + + Dawson + tz_names + + + + + Dawson Creek + tz_names + + + + + Denver + tz_names + + + + + Detroit + tz_names + + + + + Dhaka + tz_names + + + + + Dili + tz_names + + + + + Djibouti + tz_names + + + + + Dominica + tz_names + + + + + Douala + tz_names + + + + + Dubai + tz_names + + + + + Dublin + tz_names + + + + + DumontDUrville + tz_names + + + + + Dushanbe + tz_names + + + + + Easter + tz_names + + + + + Edmonton + tz_names + + + + + Efate + tz_names + + + + + Eirunepe + tz_names + + + + + El Aaiun + tz_names + + + + + El Salvador + tz_names + + + + + Enderbury + tz_names + + + + + Eucla + tz_names + + + + + Fakaofo + tz_names + + + + + Famagusta + tz_names + + + + + Faroe + tz_names + + + + + Fiji + tz_names + + + + + Fort Nelson + tz_names + + + + + Fortaleza + tz_names + + + + + Freetown + tz_names + + + + + Funafuti + tz_names + + + + + Gaborone + tz_names + + + + + Galapagos + tz_names + + + + + Gambier + tz_names + + + + + Gaza + tz_names + + + + + Gibraltar + tz_names + + + + + Glace Bay + tz_names + + + + + Godthab + tz_names + + + + + Goose Bay + tz_names + + + + + Grand Turk + tz_names + + + + + Grenada + tz_names + + + + + Guadalcanal + tz_names + + + + + Guadeloupe + tz_names + + + + + Guam + tz_names + + + + + Guatemala + tz_names + + + + + Guayaquil + tz_names + + + + + Guernsey + tz_names + + + + + Guyana + tz_names + + + + + Halifax + tz_names + + + + + Harare + tz_names + + + + + Havana + tz_names + + + + + Hebron + tz_names + + + + + Helsinki + tz_names + + + + + Hermosillo + tz_names + + + + + Ho Chi Minh + tz_names + + + + + Hobart + tz_names + + + + + Hong Kong + tz_names + + + + + Honolulu + tz_names + + + + + Hovd + tz_names + + + + + Indiana/Indianapolis + tz_names + + + + + Indiana/Knox + tz_names + + + + + Indiana/Marengo + tz_names + + + + + Indiana/Petersburg + tz_names + + + + + Indiana/Tell City + tz_names + + + + + Indiana/Vevay + tz_names + + + + + Indiana/Vincennes + tz_names + + + + + Indiana/Winamac + tz_names + + + + + Inuvik + tz_names + + + + + Iqaluit + tz_names + + + + + Irkutsk + tz_names + + + + + Isle of Man + tz_names + + + + + Istanbul + tz_names + + + + + Jakarta + tz_names + + + + + Jamaica + tz_names + + + + + Jayapura + tz_names + + + + + Jersey + tz_names + + + + + Jerusalem + tz_names + + + + + Johannesburg + tz_names + + + + + Juba + tz_names + + + + + Juneau + tz_names + + + + + Kabul + tz_names + + + + + Kaliningrad + tz_names + + + + + Kamchatka + tz_names + + + + + Kampala + tz_names + + + + + Karachi + tz_names + + + + + Kathmandu + tz_names + + + + + Kentucky/Louisville + tz_names + + + + + Kentucky/Monticello + tz_names + + + + + Kerguelen + tz_names + + + + + Khandyga + tz_names + + + + + Khartoum + tz_names + + + + + Kiev + tz_names + + + + + Kigali + tz_names + + + + + Kinshasa + tz_names + + + + + Kiritimati + tz_names + + + + + Kirov + tz_names + + + + + Kolkata + tz_names + + + + + Kosrae + tz_names + + + + + Kralendijk + tz_names + + + + + Krasnoyarsk + tz_names + + + + + Kuala Lumpur + tz_names + + + + + Kuching + tz_names + + + + + Kuwait + tz_names + + + + + Kwajalein + tz_names + + + + + La Paz + tz_names + + + + + Lagos + tz_names + + + + + Libreville + tz_names + + + + + Lima + tz_names + + + + + Lindeman + tz_names + + + + + Lisbon + tz_names + + + + + Ljubljana + tz_names + + + + + Lome + tz_names + + + + + London + tz_names + + + + + Longyearbyen + tz_names + + + + + Lord Howe + tz_names + + + + + Los Angeles + tz_names + + + + + Lower Princes + tz_names + + + + + Luanda + tz_names + + + + + Lubumbashi + tz_names + + + + + Lusaka + tz_names + + + + + Luxembourg + tz_names + + + + + Macau + tz_names + + + + + Maceio + tz_names + + + + + Macquarie + tz_names + + + + + Madeira + tz_names + + + + + Madrid + tz_names + + + + + Magadan + tz_names + + + + + Mahe + tz_names + + + + + Majuro + tz_names + + + + + Makassar + tz_names + + + + + Malabo + tz_names + + + + + Maldives + tz_names + + + + + Malta + tz_names + + + + + Managua + tz_names + + + + + Manaus + tz_names + + + + + Manila + tz_names + + + + + Maputo + tz_names + + + + + Mariehamn + tz_names + + + + + Marigot + tz_names + + + + + Marquesas + tz_names + + + + + Martinique + tz_names + + + + + Maseru + tz_names + + + + + Matamoros + tz_names + + + + + Mauritius + tz_names + + + + + Mawson + tz_names + + + + + Mayotte + tz_names + + + + + Mazatlan + tz_names + + + + + Mbabane + tz_names + + + + + McMurdo + tz_names + + + + + Melbourne + tz_names + + + + + Menominee + tz_names + + + + + Merida + tz_names + + + + + Metlakatla + tz_names + + + + + Mexico City + tz_names + + + + + Midway + tz_names + + + + + Minsk + tz_names + + + + + Miquelon + tz_names + + + + + Mogadishu + tz_names + + + + + Monaco + tz_names + + + + + Moncton + tz_names + + + + + Monrovia + tz_names + + + + + Monterrey + tz_names + + + + + Montevideo + tz_names + + + + + Montserrat + tz_names + + + + + Moscow + tz_names + + + + + Muscat + tz_names + + + + + Nairobi + tz_names + + + + + Nassau + tz_names + + + + + Nauru + tz_names + + + + + Ndjamena + tz_names + + + + + New York + tz_names + + + + + Niamey + tz_names + + + + + Nicosia + tz_names + + + + + Nipigon + tz_names + + + + + Niue + tz_names + + + + + Nome + tz_names + + + + + Norfolk + tz_names + + + + + Noronha + tz_names + + + + + North Dakota/Beulah + tz_names + + + + + North Dakota/Center + tz_names + + + + + North Dakota/New Salem + tz_names + + + + + Nouakchott + tz_names + + + + + Noumea + tz_names + + + + + Novokuznetsk + tz_names + + + + + Novosibirsk + tz_names + + + + + Ojinaga + tz_names + + + + + Omsk + tz_names + + + + + Oral + tz_names + + + + + Oslo + tz_names + + + + + Ouagadougou + tz_names + + + + + Pago Pago + tz_names + + + + + Palau + tz_names + + + + + Palmer + tz_names + + + + + Panama + tz_names + + + + + Pangnirtung + tz_names + + + + + Paramaribo + tz_names + + + + + Paris + tz_names + + + + + Perth + tz_names + + + + + Phnom Penh + tz_names + + + + + Phoenix + tz_names + + + + + Pitcairn + tz_names + + + + + Podgorica + tz_names + + + + + Pohnpei + tz_names + + + + + Pontianak + tz_names + + + + + Port Moresby + tz_names + + + + + Port of Spain + tz_names + + + + + Port-au-Prince + tz_names + + + + + Porto Velho + tz_names + + + + + Porto-Novo + tz_names + + + + + Prague + tz_names + + + + + Puerto Rico + tz_names + + + + + Punta Arenas + tz_names + + + + + Pyongyang + tz_names + + + + + Qatar + tz_names + + + + + Qostanay + tz_names + + + + + Qyzylorda + tz_names + + + + + Rainy River + tz_names + + + + + Rankin Inlet + tz_names + + + + + Rarotonga + tz_names + + + + + Recife + tz_names + + + + + Regina + tz_names + + + + + Resolute + tz_names + + + + + Reunion + tz_names + + + + + Reykjavik + tz_names + + + + + Riga + tz_names + + + + + Rio Branco + tz_names + + + + + Riyadh + tz_names + + + + + Rome + tz_names + + + + + Rothera + tz_names + + + + + Saipan + tz_names + + + + + Sakhalin + tz_names + + + + + Samara + tz_names + + + + + Samarkand + tz_names + + + + + San Marino + tz_names + + + + + Santarem + tz_names + + + + + Santiago + tz_names + + + + + Santo Domingo + tz_names + + + + + Sao Paulo + tz_names + + + + + Sao Tome + tz_names + + + + + Sarajevo + tz_names + + + + + Saratov + tz_names + + + + + Scoresbysund + tz_names + + + + + Seoul + tz_names + + + + + Shanghai + tz_names + + + + + Simferopol + tz_names + + + + + Singapore + tz_names + + + + + Sitka + tz_names + + + + + Skopje + tz_names + + + + + Sofia + tz_names + + + + + South Georgia + tz_names + + + + + Srednekolymsk + tz_names + + + + + St Barthelemy + tz_names + + + + + St Helena + tz_names + + + + + St Johns + tz_names + + + + + St Kitts + tz_names + + + + + St Lucia + tz_names + + + + + St Thomas + tz_names + + + + + St Vincent + tz_names + + + + + Stanley + tz_names + + + + + Stockholm + tz_names + + + + + Swift Current + tz_names + + + + + Sydney + tz_names + + + + + Syowa + tz_names + + + + + Tahiti + tz_names + + + + + Taipei + tz_names + + + + + Tallinn + tz_names + + + + + Tarawa + tz_names + + + + + Tashkent + tz_names + + + + + Tbilisi + tz_names + + + + + Tegucigalpa + tz_names + + + + + Tehran + tz_names + + + + + Thimphu + tz_names + + + + + Thule + tz_names + + + + + Thunder Bay + tz_names + + + + + Tijuana + tz_names + + + + + Tirane + tz_names + + + + + Tokyo + tz_names + + + + + Tomsk + tz_names + + + + + Tongatapu + tz_names + + + + + Toronto + tz_names + + + + + Tortola + tz_names + + + + + Tripoli + tz_names + + + + + Troll + tz_names + + + + + Tunis + tz_names + + + + + Ulaanbaatar + tz_names + + + + + Ulyanovsk + tz_names + + + + + Urumqi + tz_names + + + + + Ust-Nera + tz_names + + + + + Uzhgorod + tz_names + + + + + Vaduz + tz_names + + + + + Vancouver + tz_names + + + + + Vatican + tz_names + + + + + Vienna + tz_names + + + + + Vientiane + tz_names + + + + + Vilnius + tz_names + + + + + Vladivostok + tz_names + + + + + Volgograd + tz_names + + + + + Vostok + tz_names + + + + + Wake + tz_names + + + + + Wallis + tz_names + + + + + Warsaw + tz_names + + + + + Whitehorse + tz_names + + + + + Windhoek + tz_names + + + + + Winnipeg + tz_names + + + + + Yakutat + tz_names + + + + + Yakutsk + tz_names + + + + + Yangon + tz_names + + + + + Yekaterinburg + tz_names + + + + + Yellowknife + tz_names + + + + + Yerevan + tz_names + + + + + Zagreb + tz_names + + + + + Zaporozhye + tz_names + + + + + Zurich + tz_names + + + + From 93826c3c2aab96ec615ae8595d921a5b200b488b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 10 Dec 2019 23:23:43 +0000 Subject: [PATCH 069/101] i18n: Dutch TZ translations (provisional) --- lang/tz_nl.ts | 2617 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2617 insertions(+) create mode 100644 lang/tz_nl.ts diff --git a/lang/tz_nl.ts b/lang/tz_nl.ts new file mode 100644 index 000000000..e1eb8d1e5 --- /dev/null +++ b/lang/tz_nl.ts @@ -0,0 +1,2617 @@ + + + + + QObject + + + Africa + tz_regions + Afrika + + + + America + tz_regions + Amerika + + + + Antarctica + tz_regions + + + + + Arctic + tz_regions + + + + + Asia + tz_regions + Azië + + + + Atlantic + tz_regions + Atlantisch + + + + Australia + tz_regions + Australië + + + + Europe + tz_regions + Europa + + + + Indian + tz_regions + + + + + Pacific + tz_regions + Stille Oceaan + + + + Abidjan + tz_names + + + + + Accra + tz_names + + + + + Adak + tz_names + + + + + Addis Ababa + tz_names + + + + + Adelaide + tz_names + + + + + Aden + tz_names + + + + + Algiers + tz_names + + + + + Almaty + tz_names + + + + + Amman + tz_names + + + + + Amsterdam + tz_names + + + + + Anadyr + tz_names + + + + + Anchorage + tz_names + + + + + Andorra + tz_names + + + + + Anguilla + tz_names + + + + + Antananarivo + tz_names + + + + + Antigua + tz_names + + + + + Apia + tz_names + + + + + Aqtau + tz_names + + + + + Aqtobe + tz_names + + + + + Araguaina + tz_names + + + + + Argentina/Buenos Aires + tz_names + + + + + Argentina/Catamarca + tz_names + + + + + Argentina/Cordoba + tz_names + + + + + Argentina/Jujuy + tz_names + + + + + Argentina/La Rioja + tz_names + + + + + Argentina/Mendoza + tz_names + + + + + Argentina/Rio Gallegos + tz_names + + + + + Argentina/Salta + tz_names + + + + + Argentina/San Juan + tz_names + + + + + Argentina/San Luis + tz_names + + + + + Argentina/Tucuman + tz_names + + + + + Argentina/Ushuaia + tz_names + + + + + Aruba + tz_names + + + + + Ashgabat + tz_names + + + + + Asmara + tz_names + + + + + Astrakhan + tz_names + + + + + Asuncion + tz_names + + + + + Athens + tz_names + + + + + Atikokan + tz_names + + + + + Atyrau + tz_names + + + + + Auckland + tz_names + + + + + Azores + tz_names + + + + + Baghdad + tz_names + + + + + Bahia + tz_names + + + + + Bahia Banderas + tz_names + + + + + Bahrain + tz_names + + + + + Baku + tz_names + + + + + Bamako + tz_names + + + + + Bangkok + tz_names + + + + + Bangui + tz_names + + + + + Banjul + tz_names + + + + + Barbados + tz_names + + + + + Barnaul + tz_names + + + + + Beirut + tz_names + + + + + Belem + tz_names + + + + + Belgrade + tz_names + + + + + Belize + tz_names + + + + + Berlin + tz_names + Berlijn + + + + Bermuda + tz_names + + + + + Bishkek + tz_names + + + + + Bissau + tz_names + + + + + Blanc-Sablon + tz_names + + + + + Blantyre + tz_names + + + + + Boa Vista + tz_names + + + + + Bogota + tz_names + + + + + Boise + tz_names + + + + + Bougainville + tz_names + + + + + Bratislava + tz_names + + + + + Brazzaville + tz_names + + + + + Brisbane + tz_names + + + + + Broken Hill + tz_names + + + + + Brunei + tz_names + + + + + Brussels + tz_names + + + + + Bucharest + tz_names + + + + + Budapest + tz_names + + + + + Bujumbura + tz_names + + + + + Busingen + tz_names + + + + + Cairo + tz_names + + + + + Cambridge Bay + tz_names + + + + + Campo Grande + tz_names + + + + + Canary + tz_names + + + + + Cancun + tz_names + + + + + Cape Verde + tz_names + + + + + Caracas + tz_names + + + + + Casablanca + tz_names + + + + + Casey + tz_names + + + + + Cayenne + tz_names + + + + + Cayman + tz_names + + + + + Ceuta + tz_names + + + + + Chagos + tz_names + + + + + Chatham + tz_names + + + + + Chicago + tz_names + + + + + Chihuahua + tz_names + + + + + Chisinau + tz_names + + + + + Chita + tz_names + + + + + Choibalsan + tz_names + + + + + Christmas + tz_names + + + + + Chuuk + tz_names + + + + + Cocos + tz_names + + + + + Colombo + tz_names + + + + + Comoro + tz_names + + + + + Conakry + tz_names + + + + + Copenhagen + tz_names + + + + + Costa Rica + tz_names + + + + + Creston + tz_names + + + + + Cuiaba + tz_names + + + + + Curacao + tz_names + + + + + Currie + tz_names + + + + + Dakar + tz_names + + + + + Damascus + tz_names + + + + + Danmarkshavn + tz_names + + + + + Dar es Salaam + tz_names + + + + + Darwin + tz_names + + + + + Davis + tz_names + + + + + Dawson + tz_names + + + + + Dawson Creek + tz_names + + + + + Denver + tz_names + + + + + Detroit + tz_names + + + + + Dhaka + tz_names + + + + + Dili + tz_names + + + + + Djibouti + tz_names + + + + + Dominica + tz_names + + + + + Douala + tz_names + + + + + Dubai + tz_names + + + + + Dublin + tz_names + + + + + DumontDUrville + tz_names + + + + + Dushanbe + tz_names + + + + + Easter + tz_names + + + + + Edmonton + tz_names + + + + + Efate + tz_names + + + + + Eirunepe + tz_names + + + + + El Aaiun + tz_names + + + + + El Salvador + tz_names + + + + + Enderbury + tz_names + + + + + Eucla + tz_names + + + + + Fakaofo + tz_names + + + + + Famagusta + tz_names + + + + + Faroe + tz_names + + + + + Fiji + tz_names + + + + + Fort Nelson + tz_names + + + + + Fortaleza + tz_names + + + + + Freetown + tz_names + + + + + Funafuti + tz_names + + + + + Gaborone + tz_names + + + + + Galapagos + tz_names + + + + + Gambier + tz_names + + + + + Gaza + tz_names + + + + + Gibraltar + tz_names + + + + + Glace Bay + tz_names + + + + + Godthab + tz_names + + + + + Goose Bay + tz_names + + + + + Grand Turk + tz_names + + + + + Grenada + tz_names + + + + + Guadalcanal + tz_names + + + + + Guadeloupe + tz_names + + + + + Guam + tz_names + + + + + Guatemala + tz_names + + + + + Guayaquil + tz_names + + + + + Guernsey + tz_names + + + + + Guyana + tz_names + + + + + Halifax + tz_names + + + + + Harare + tz_names + + + + + Havana + tz_names + + + + + Hebron + tz_names + + + + + Helsinki + tz_names + + + + + Hermosillo + tz_names + + + + + Ho Chi Minh + tz_names + + + + + Hobart + tz_names + + + + + Hong Kong + tz_names + + + + + Honolulu + tz_names + + + + + Hovd + tz_names + + + + + Indiana/Indianapolis + tz_names + + + + + Indiana/Knox + tz_names + + + + + Indiana/Marengo + tz_names + + + + + Indiana/Petersburg + tz_names + + + + + Indiana/Tell City + tz_names + + + + + Indiana/Vevay + tz_names + + + + + Indiana/Vincennes + tz_names + + + + + Indiana/Winamac + tz_names + + + + + Inuvik + tz_names + + + + + Iqaluit + tz_names + + + + + Irkutsk + tz_names + + + + + Isle of Man + tz_names + + + + + Istanbul + tz_names + + + + + Jakarta + tz_names + + + + + Jamaica + tz_names + + + + + Jayapura + tz_names + + + + + Jersey + tz_names + + + + + Jerusalem + tz_names + + + + + Johannesburg + tz_names + + + + + Juba + tz_names + + + + + Juneau + tz_names + + + + + Kabul + tz_names + + + + + Kaliningrad + tz_names + + + + + Kamchatka + tz_names + + + + + Kampala + tz_names + + + + + Karachi + tz_names + + + + + Kathmandu + tz_names + + + + + Kentucky/Louisville + tz_names + + + + + Kentucky/Monticello + tz_names + + + + + Kerguelen + tz_names + + + + + Khandyga + tz_names + + + + + Khartoum + tz_names + + + + + Kiev + tz_names + + + + + Kigali + tz_names + + + + + Kinshasa + tz_names + + + + + Kiritimati + tz_names + + + + + Kirov + tz_names + + + + + Kolkata + tz_names + + + + + Kosrae + tz_names + + + + + Kralendijk + tz_names + + + + + Krasnoyarsk + tz_names + + + + + Kuala Lumpur + tz_names + + + + + Kuching + tz_names + + + + + Kuwait + tz_names + + + + + Kwajalein + tz_names + + + + + La Paz + tz_names + + + + + Lagos + tz_names + + + + + Libreville + tz_names + + + + + Lima + tz_names + + + + + Lindeman + tz_names + + + + + Lisbon + tz_names + + + + + Ljubljana + tz_names + + + + + Lome + tz_names + + + + + London + tz_names + + + + + Longyearbyen + tz_names + + + + + Lord Howe + tz_names + + + + + Los Angeles + tz_names + + + + + Lower Princes + tz_names + + + + + Luanda + tz_names + + + + + Lubumbashi + tz_names + + + + + Lusaka + tz_names + + + + + Luxembourg + tz_names + + + + + Macau + tz_names + + + + + Maceio + tz_names + + + + + Macquarie + tz_names + + + + + Madeira + tz_names + + + + + Madrid + tz_names + + + + + Magadan + tz_names + + + + + Mahe + tz_names + + + + + Majuro + tz_names + + + + + Makassar + tz_names + + + + + Malabo + tz_names + + + + + Maldives + tz_names + + + + + Malta + tz_names + + + + + Managua + tz_names + + + + + Manaus + tz_names + + + + + Manila + tz_names + + + + + Maputo + tz_names + + + + + Mariehamn + tz_names + + + + + Marigot + tz_names + + + + + Marquesas + tz_names + + + + + Martinique + tz_names + + + + + Maseru + tz_names + + + + + Matamoros + tz_names + + + + + Mauritius + tz_names + + + + + Mawson + tz_names + + + + + Mayotte + tz_names + + + + + Mazatlan + tz_names + + + + + Mbabane + tz_names + + + + + McMurdo + tz_names + + + + + Melbourne + tz_names + + + + + Menominee + tz_names + + + + + Merida + tz_names + + + + + Metlakatla + tz_names + + + + + Mexico City + tz_names + + + + + Midway + tz_names + + + + + Minsk + tz_names + + + + + Miquelon + tz_names + + + + + Mogadishu + tz_names + + + + + Monaco + tz_names + + + + + Moncton + tz_names + + + + + Monrovia + tz_names + + + + + Monterrey + tz_names + + + + + Montevideo + tz_names + + + + + Montserrat + tz_names + + + + + Moscow + tz_names + + + + + Muscat + tz_names + + + + + Nairobi + tz_names + + + + + Nassau + tz_names + + + + + Nauru + tz_names + + + + + Ndjamena + tz_names + + + + + New York + tz_names + + + + + Niamey + tz_names + + + + + Nicosia + tz_names + + + + + Nipigon + tz_names + + + + + Niue + tz_names + + + + + Nome + tz_names + + + + + Norfolk + tz_names + + + + + Noronha + tz_names + + + + + North Dakota/Beulah + tz_names + + + + + North Dakota/Center + tz_names + + + + + North Dakota/New Salem + tz_names + + + + + Nouakchott + tz_names + + + + + Noumea + tz_names + + + + + Novokuznetsk + tz_names + + + + + Novosibirsk + tz_names + + + + + Ojinaga + tz_names + + + + + Omsk + tz_names + + + + + Oral + tz_names + + + + + Oslo + tz_names + + + + + Ouagadougou + tz_names + + + + + Pago Pago + tz_names + + + + + Palau + tz_names + + + + + Palmer + tz_names + + + + + Panama + tz_names + + + + + Pangnirtung + tz_names + + + + + Paramaribo + tz_names + + + + + Paris + tz_names + Parijs + + + + Perth + tz_names + + + + + Phnom Penh + tz_names + + + + + Phoenix + tz_names + + + + + Pitcairn + tz_names + + + + + Podgorica + tz_names + + + + + Pohnpei + tz_names + + + + + Pontianak + tz_names + + + + + Port Moresby + tz_names + + + + + Port of Spain + tz_names + + + + + Port-au-Prince + tz_names + + + + + Porto Velho + tz_names + + + + + Porto-Novo + tz_names + + + + + Prague + tz_names + + + + + Puerto Rico + tz_names + + + + + Punta Arenas + tz_names + + + + + Pyongyang + tz_names + + + + + Qatar + tz_names + + + + + Qostanay + tz_names + + + + + Qyzylorda + tz_names + + + + + Rainy River + tz_names + + + + + Rankin Inlet + tz_names + + + + + Rarotonga + tz_names + + + + + Recife + tz_names + + + + + Regina + tz_names + + + + + Resolute + tz_names + + + + + Reunion + tz_names + + + + + Reykjavik + tz_names + + + + + Riga + tz_names + + + + + Rio Branco + tz_names + + + + + Riyadh + tz_names + + + + + Rome + tz_names + + + + + Rothera + tz_names + + + + + Saipan + tz_names + + + + + Sakhalin + tz_names + + + + + Samara + tz_names + + + + + Samarkand + tz_names + + + + + San Marino + tz_names + + + + + Santarem + tz_names + + + + + Santiago + tz_names + + + + + Santo Domingo + tz_names + + + + + Sao Paulo + tz_names + + + + + Sao Tome + tz_names + + + + + Sarajevo + tz_names + + + + + Saratov + tz_names + + + + + Scoresbysund + tz_names + + + + + Seoul + tz_names + + + + + Shanghai + tz_names + + + + + Simferopol + tz_names + + + + + Singapore + tz_names + + + + + Sitka + tz_names + + + + + Skopje + tz_names + + + + + Sofia + tz_names + + + + + South Georgia + tz_names + + + + + Srednekolymsk + tz_names + + + + + St Barthelemy + tz_names + + + + + St Helena + tz_names + + + + + St Johns + tz_names + + + + + St Kitts + tz_names + + + + + St Lucia + tz_names + + + + + St Thomas + tz_names + + + + + St Vincent + tz_names + + + + + Stanley + tz_names + + + + + Stockholm + tz_names + + + + + Swift Current + tz_names + + + + + Sydney + tz_names + + + + + Syowa + tz_names + + + + + Tahiti + tz_names + + + + + Taipei + tz_names + + + + + Tallinn + tz_names + + + + + Tarawa + tz_names + + + + + Tashkent + tz_names + + + + + Tbilisi + tz_names + + + + + Tegucigalpa + tz_names + + + + + Tehran + tz_names + + + + + Thimphu + tz_names + + + + + Thule + tz_names + + + + + Thunder Bay + tz_names + + + + + Tijuana + tz_names + + + + + Tirane + tz_names + + + + + Tokyo + tz_names + + + + + Tomsk + tz_names + + + + + Tongatapu + tz_names + + + + + Toronto + tz_names + + + + + Tortola + tz_names + + + + + Tripoli + tz_names + + + + + Troll + tz_names + + + + + Tunis + tz_names + + + + + Ulaanbaatar + tz_names + + + + + Ulyanovsk + tz_names + + + + + Urumqi + tz_names + + + + + Ust-Nera + tz_names + + + + + Uzhgorod + tz_names + + + + + Vaduz + tz_names + + + + + Vancouver + tz_names + + + + + Vatican + tz_names + + + + + Vienna + tz_names + + + + + Vientiane + tz_names + + + + + Vilnius + tz_names + + + + + Vladivostok + tz_names + + + + + Volgograd + tz_names + + + + + Vostok + tz_names + + + + + Wake + tz_names + + + + + Wallis + tz_names + + + + + Warsaw + tz_names + + + + + Whitehorse + tz_names + + + + + Windhoek + tz_names + + + + + Winnipeg + tz_names + + + + + Yakutat + tz_names + + + + + Yakutsk + tz_names + + + + + Yangon + tz_names + + + + + Yekaterinburg + tz_names + + + + + Yellowknife + tz_names + + + + + Yerevan + tz_names + + + + + Zagreb + tz_names + + + + + Zaporozhye + tz_names + + + + + Zurich + tz_names + + + + From 8fc94900d3a7e19d4f88c80c251cb81859dd6f1c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 06:39:57 -0500 Subject: [PATCH 070/101] CMake: add the tz_ translation files to the i18n build --- CMakeModules/CalamaresAddTranslations.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 4892cc0f9..d74e4bdfb 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -67,8 +67,12 @@ macro(add_calamares_translations language) # calamares and qt language files set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}\n" ) foreach( lang ${CALAMARES_LANGUAGES} ) - set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}calamares_${lang}.qm\n" ) - list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/calamares_${lang}.ts" ) + foreach( tlsource "calamares_${lang}" "tz_${lang}" ) + if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) + set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}${tlsource}.qm\n" ) + list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) + endif() + endforeach() endforeach() set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}\n" ) From 0ed2a3e35f56db9cc173a725187f63a3ba770997 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 06:40:22 -0500 Subject: [PATCH 071/101] [libcalamares] Refactor translation-setting - Split the actual loading of translations into classes to encapsulate the loading logic, - Build a collection of classes to do the different kinds of translation loading, - Build a generic function to load something and update a static pointer to the translation. This makes installTranslator() much easier to read, and encapsulates the type-specific loading somewhere else. While here, add a timezone- translations loader so that the split-out TZ translations also work. --- src/libcalamares/utils/Retranslator.cpp | 212 ++++++++++++++++-------- 1 file changed, 139 insertions(+), 73 deletions(-) diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index d761263ac..047f642e4 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -25,90 +25,156 @@ #include #include +/** @brief Helper class for loading translations + * + * This is used by the loadSingletonTranslator() function to hand off + * work to translation-type specific code. + */ +struct TranslationLoader +{ + static QString mungeLocaleName( const QLocale& locale ) + { + QString localeName = locale.name(); + localeName.replace( "-", "_" ); + + if ( localeName == "C" ) + { + localeName = "en"; + } + + // Special case of sr@latin + // + // See top-level CMakeLists.txt about special cases for translation loading. + if ( locale.language() == QLocale::Language::Serbian && locale.script() == QLocale::Script::LatinScript ) + { + localeName = QStringLiteral( "sr@latin" ); + } + return localeName; + } + + TranslationLoader( const QLocale& locale ) + : m_locale( locale ) + , m_localeName( mungeLocaleName( locale ) ) + { + } + + virtual ~TranslationLoader() {}; + /// @brief Loads @p translator with the specific translations of this type + virtual bool tryLoad( QTranslator* translator ) = 0; + + const QLocale& m_locale; + QString m_localeName; +}; + +struct BrandingLoader : public TranslationLoader +{ + BrandingLoader( const QLocale& locale, const QString& prefix ) + : TranslationLoader( locale ) + , m_prefix( prefix ) + { + } + + bool tryLoad( QTranslator* translator ) override + { + if ( m_prefix.isEmpty() ) + { + return false; + } + QString brandingTranslationsDirPath( m_prefix ); + brandingTranslationsDirPath.truncate( m_prefix.lastIndexOf( QDir::separator() ) ); + QDir brandingTranslationsDir( brandingTranslationsDirPath ); + if ( brandingTranslationsDir.exists() ) + { + QString filenameBase( m_prefix ); + filenameBase.remove( 0, m_prefix.lastIndexOf( QDir::separator() ) + 1 ); + if ( translator->load( m_locale, filenameBase, "_", brandingTranslationsDir.absolutePath() ) ) + { + cDebug() << Logger::SubEntry << "Branding using locale:" << m_localeName; + return true; + } + else + { + cDebug() << Logger::SubEntry << "Branding using default, system locale not found:" << m_localeName; + // TODO: this loads something completely different + return translator->load( m_prefix + "en" ); + } + } + return false; + } + + QString m_prefix; +}; + +struct CalamaresLoader : public TranslationLoader +{ + using TranslationLoader::TranslationLoader; + + bool tryLoad( QTranslator* translator ) override + { + if ( translator->load( QString( ":/lang/calamares_" ) + m_localeName ) ) + { + cDebug() << Logger::SubEntry << "Calamares using locale:" << m_localeName; + return true; + } + else + { + cDebug() << Logger::SubEntry << "Calamares using default, system locale not found:" << m_localeName; + return translator->load( QString( ":/lang/calamares_en" ) ); + } + } +}; + +struct TZLoader : public TranslationLoader +{ + using TranslationLoader::TranslationLoader; + bool tryLoad( QTranslator* translator ) override + { + if ( translator->load( QString( ":/lang/tz_" ) + m_localeName ) ) + { + cDebug() << Logger::SubEntry << "Calamares Timezones using locale:" << m_localeName; + return true; + } + else + { + cDebug() << Logger::SubEntry + << "Calamares Timezones using default, system locale not found:" << m_localeName; + return translator->load( QString( ":/lang/tz_en" ) ); + } + } +}; + +static void +loadSingletonTranslator( TranslationLoader&& loader, QTranslator*& translator_p ) +{ + QTranslator* translator = new QTranslator(); + loader.tryLoad( translator ); + + if ( translator_p ) + { + QCoreApplication::removeTranslator( translator_p ); + delete translator_p; + } + + QCoreApplication::installTranslator( translator ); + translator_p = translator; +} namespace CalamaresUtils { static QTranslator* s_brandingTranslator = nullptr; static QTranslator* s_translator = nullptr; +static QTranslator* s_tztranslator = nullptr; static QString s_translatorLocaleName; void installTranslator( const QLocale& locale, const QString& brandingTranslationsPrefix, QObject* parent ) { - QString localeName = locale.name(); - localeName.replace( "-", "_" ); + loadSingletonTranslator( BrandingLoader( locale, brandingTranslationsPrefix ), s_brandingTranslator ); + loadSingletonTranslator( TZLoader( locale ), s_tztranslator ); - if ( localeName == "C" ) - { - localeName = "en"; - } - - // Special case of sr@latin - // - // See top-level CMakeLists.txt about special cases for translation loading. - if ( locale.language() == QLocale::Language::Serbian && locale.script() == QLocale::Script::LatinScript ) - { - localeName = QStringLiteral( "sr@latin" ); - } - - cDebug() << "Looking for translations for" << localeName; - - QTranslator* translator = nullptr; - - // Branding translations - if ( !brandingTranslationsPrefix.isEmpty() ) - { - QString brandingTranslationsDirPath( brandingTranslationsPrefix ); - brandingTranslationsDirPath.truncate( brandingTranslationsPrefix.lastIndexOf( QDir::separator() ) ); - QDir brandingTranslationsDir( brandingTranslationsDirPath ); - if ( brandingTranslationsDir.exists() ) - { - QString filenameBase( brandingTranslationsPrefix ); - filenameBase.remove( 0, brandingTranslationsPrefix.lastIndexOf( QDir::separator() ) + 1 ); - translator = new QTranslator( parent ); - if ( translator->load( locale, filenameBase, "_", brandingTranslationsDir.absolutePath() ) ) - { - cDebug() << Logger::SubEntry << "Branding using locale:" << localeName; - } - else - { - cDebug() << Logger::SubEntry << "Branding using default, system locale not found:" << localeName; - translator->load( brandingTranslationsPrefix + "en" ); - } - - if ( s_brandingTranslator ) - { - QCoreApplication::removeTranslator( s_brandingTranslator ); - delete s_brandingTranslator; - } - - QCoreApplication::installTranslator( translator ); - s_brandingTranslator = translator; - } - } - - // Calamares translations - translator = new QTranslator( parent ); - if ( translator->load( QString( ":/lang/calamares_" ) + localeName ) ) - { - cDebug() << Logger::SubEntry << "Calamares using locale:" << localeName; - } - else - { - cDebug() << Logger::SubEntry << "Calamares using default, system locale not found:" << localeName; - translator->load( QString( ":/lang/calamares_en" ) ); - } - - if ( s_translator ) - { - QCoreApplication::removeTranslator( s_translator ); - delete s_translator; - } - - QCoreApplication::installTranslator( translator ); - s_translator = translator; - - s_translatorLocaleName = localeName; + CalamaresLoader l( locale ); // because we want the extracted localeName + loadSingletonTranslator( std::move( l ), s_translator ); + s_translatorLocaleName = l.m_localeName; } From daa76080f1b413697d49eddb23b7925891afad33 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 07:00:42 -0500 Subject: [PATCH 072/101] [libcalamares] Add meaningful aliases for key() --- src/libcalamares/locale/TimeZone.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 73e73cf85..248c6b582 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -91,6 +91,8 @@ public: virtual ~TZRegion(); QString tr() const override; + QString region() const { return key(); } + /** @brief Create list from a zone.tab-like file * * Returns a list of all the regions; each region has a list @@ -121,6 +123,7 @@ public: TZZone( const QString& region, const char* zoneName, const QString& country, QString position ); QString region() const { return m_region; } + QString zone() const { return key(); } QString country() const { return m_country; } double latitude() const { return m_latitude; } double longitude() const { return m_longitude; } From 4945408911c40e723ed7cd8aa910ef46e4383e62 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 07:01:15 -0500 Subject: [PATCH 073/101] [libcalamares] Remove debugging cruft --- src/libcalamares/locale/TimeZone.cpp | 6 ------ src/libcalamares/locale/TimeZone.h | 9 --------- 2 files changed, 15 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index a9550ebb6..05aeaf885 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -234,12 +234,6 @@ TZZone::tr() const return QObject::tr( m_human, "tz_names" ); } -void -TZZone::print( QDebug& log ) const -{ - log << key() << '(' << m_country << ' ' << m_latitude << ',' << m_longitude << ')'; -} - CStringListModel::CStringListModel( CStringPairList l ) : m_list( l ) diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 248c6b582..567b42241 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -128,21 +128,12 @@ public: double latitude() const { return m_latitude; } double longitude() const { return m_longitude; } - void print( QDebug& ) const; - protected: QString m_region; QString m_country; double m_latitude = 0.0, m_longitude = 0.0; }; -inline QDebug& -operator<<( QDebug& log, const TZZone& z ) -{ - z.print( log ); - return log; -} - class CStringListModel : public QAbstractListModel { public: From 242b79e2e1292a6f926229c29063473fb94a11fc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 08:36:23 -0500 Subject: [PATCH 074/101] [locale] Remove old Location information - all the TZ location information now lives in the Calamares locale service and the TZ list - replace the Location class that was local to the timezone widget by the TZZone class - chase a bunch of small API changes that this needs --- src/modules/locale/LocalePage.cpp | 38 ++++++------------- src/modules/locale/LocalePage.h | 2 +- .../locale/timezonewidget/localeglobal.cpp | 26 ------------- .../locale/timezonewidget/localeglobal.h | 16 -------- .../locale/timezonewidget/timezonewidget.cpp | 13 ++++--- .../locale/timezonewidget/timezonewidget.h | 16 ++++---- 6 files changed, 28 insertions(+), 83 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index ecdfb1935..4e43fc177 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -133,19 +133,6 @@ LocalePage::updateLocaleLabels() m_formatsLabel->setText( labels.second ); } -static inline bool -containsLocation( const QList< LocaleGlobal::Location >& locations, const QString& zone ) -{ - for ( const LocaleGlobal::Location& location : locations ) - { - if ( location.zone == zone ) - { - return true; - } - } - return false; -} - void LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) { @@ -163,7 +150,6 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons { m_tzWidget->setCurrentLocation( "America", "New_York" ); } - emit m_tzWidget->locationChanged( m_tzWidget->getCurrentLocation() ); // Some distros come with a meaningfully commented and easy to parse locale.gen, // and others ship a separate file /usr/share/i18n/SUPPORTED with a clean list of @@ -298,9 +284,9 @@ Calamares::JobList LocalePage::createJobs() { QList< Calamares::job_ptr > list; - LocaleGlobal::Location location = m_tzWidget->getCurrentLocation(); + const CalamaresUtils::Locale::TZZone* location = m_tzWidget->currentLocation(); - Calamares::Job* j = new SetTimezoneJob( location.region, location.zone ); + Calamares::Job* j = new SetTimezoneJob( location->region(), location->zone() ); list.append( Calamares::job_ptr( j ) ); return list; @@ -333,7 +319,7 @@ LocaleConfiguration LocalePage::guessLocaleConfiguration() const { return LocaleConfiguration::fromLanguageAndLocation( - QLocale().name(), m_localeGenLines, m_tzWidget->getCurrentLocation().country ); + QLocale().name(), m_localeGenLines, m_tzWidget->currentLocation()->country() ); } @@ -351,12 +337,12 @@ LocalePage::updateGlobalStorage() { auto* gs = Calamares::JobQueue::instance()->globalStorage(); - LocaleGlobal::Location location = m_tzWidget->getCurrentLocation(); - bool locationChanged - = ( location.region != gs->value( "locationRegion" ) ) || ( location.zone != gs->value( "locationZone" ) ); + const auto* location = m_tzWidget->currentLocation(); + bool locationChanged = ( location->region() != gs->value( "locationRegion" ) ) + || ( location->zone() != gs->value( "locationZone" ) ); - gs->insert( "locationRegion", location.region ); - gs->insert( "locationZone", location.zone ); + gs->insert( "locationRegion", location->region() ); + gs->insert( "locationZone", location->zone() ); updateGlobalLocale(); @@ -366,7 +352,7 @@ LocalePage::updateGlobalStorage() if ( locationChanged && Calamares::Settings::instance()->doChroot() ) { QProcess::execute( "timedatectl", // depends on systemd - { "set-timezone", location.region + '/' + location.zone } ); + { "set-timezone", location->region() + '/' + location->zone() } ); } #endif @@ -427,12 +413,12 @@ LocalePage::zoneChanged( int currentIndex ) } void -LocalePage::locationChanged( LocaleGlobal::Location location ) +LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location ) { m_blockTzWidgetSet = true; // Set region index - int index = m_regionCombo->findData( location.region ); + int index = m_regionCombo->findData( location->region() ); if ( index < 0 ) { return; @@ -441,7 +427,7 @@ LocalePage::locationChanged( LocaleGlobal::Location location ) m_regionCombo->setCurrentIndex( index ); // Set zone index - index = m_zoneCombo->findData( location.zone ); + index = m_zoneCombo->findData( location->zone() ); if ( index < 0 ) { return; diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 7c2eba253..d6aaa6de8 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -70,7 +70,7 @@ private: void regionChanged( int currentIndex ); void zoneChanged( int currentIndex ); - void locationChanged( LocaleGlobal::Location location ); + void locationChanged( const CalamaresUtils::Locale::TZZone* location ); void changeLocale(); void changeFormats(); diff --git a/src/modules/locale/timezonewidget/localeglobal.cpp b/src/modules/locale/timezonewidget/localeglobal.cpp index 593de5cab..d0e889148 100644 --- a/src/modules/locale/timezonewidget/localeglobal.cpp +++ b/src/modules/locale/timezonewidget/localeglobal.cpp @@ -38,32 +38,6 @@ QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > LocaleGlobal:: //### -QString -LocaleGlobal::Location::pretty( const QString& s ) -{ - return QString( s ).replace( '_', ' ' ).simplified(); -} - - -QString -LocaleGlobal::Location::comment() const -{ - QTimeZone qtz = QTimeZone( QString( "%1/%2" ).arg( region ).arg( zone ).toLatin1() ); - return qtz.comment(); -} - -LocaleGlobal::Location& -LocaleGlobal::Location::operator=( const CalamaresUtils::Locale::TZZone& location ) -{ - region = location.region(); - zone = location.key(); - country = location.country(); - latitude = location.latitude(); - longitude = location.longitude(); - return *this; -} - - void LocaleGlobal::init() { diff --git a/src/modules/locale/timezonewidget/localeglobal.h b/src/modules/locale/timezonewidget/localeglobal.h index b5e175c7c..1dc9548d0 100644 --- a/src/modules/locale/timezonewidget/localeglobal.h +++ b/src/modules/locale/timezonewidget/localeglobal.h @@ -51,16 +51,6 @@ public: QString description, locale; }; - struct Location - { - QString region, zone, country; - double latitude, longitude; - static QString pretty( const QString& s ); - QString comment() const; - - Location& operator=( const CalamaresUtils::Locale::TZZone& ); - }; - static void init(); static QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > getLocales(); @@ -70,10 +60,4 @@ private: static void initLocales(); }; -inline QDebug& -operator<<( QDebug& s, const LocaleGlobal::Location& l ) -{ - return s << l.region << '/' << l.zone << '(' << l.country << ") @N" << l.latitude << 'E' << l.longitude; -} - #endif // LOCALEGLOBAL_H diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 41b5b1980..926226f8c 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -105,10 +105,10 @@ TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) void TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) { - currentLocation = *location; + m_currentLocation = location; // Set zone - QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); + QPoint pos = getLocationPosition( location ); #ifdef DEBUG_TIMEZONES cDebug() << "Setting location" << location->region() << *location; @@ -147,6 +147,7 @@ TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* locati // Repaint widget repaint(); + emit locationChanged( m_currentLocation ); } @@ -265,12 +266,12 @@ TimeZoneWidget::paintEvent( QPaintEvent* ) painter.drawPoint( point ); #else // Draw pin at current location - QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); + QPoint point = getLocationPosition( m_currentLocation ); painter.drawImage( point.x() - pin.width() / 2, point.y() - pin.height() / 2, pin ); // Draw text and box - const int textWidth = fontMetrics.horizontalAdvance( LocaleGlobal::Location::pretty( currentLocation.zone ) ); + const int textWidth = fontMetrics.horizontalAdvance( m_currentLocation ? m_currentLocation->tr() : QString() ); const int textHeight = fontMetrics.height(); QRect rect = QRect( point.x() - textWidth / 2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2 ); @@ -296,7 +297,7 @@ TimeZoneWidget::paintEvent( QPaintEvent* ) painter.setBrush( QColor( 40, 40, 40 ) ); painter.drawRoundedRect( rect, 3, 3 ); painter.setPen( Qt::white ); - painter.drawText( rect.x() + 5, rect.bottom() - 4, LocaleGlobal::Location::pretty( currentLocation.zone ) ); + painter.drawText( rect.x() + 5, rect.bottom() - 4, m_currentLocation ? m_currentLocation->tr() : QString() ); #endif painter.end(); @@ -345,6 +346,6 @@ TimeZoneWidget::mousePressEvent( QMouseEvent* event ) // Set zone image and repaint widget setCurrentLocation( closest ); // Emit signal - emit locationChanged( currentLocation ); + emit locationChanged( m_currentLocation ); } } diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 7a3572f10..d91c5cf27 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -43,25 +43,25 @@ class TimeZoneWidget : public QWidget { Q_OBJECT public: + using TZZone = CalamaresUtils::Locale::TZZone; + explicit TimeZoneWidget( QWidget* parent = nullptr ); - LocaleGlobal::Location getCurrentLocation() { return currentLocation; } void setCurrentLocation( QString region, QString zone ); - void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ); + void setCurrentLocation( const TZZone* location ); + const TZZone* currentLocation() { return m_currentLocation; } + signals: - void locationChanged( LocaleGlobal::Location location ); + void locationChanged( const TZZone* location ); private: QFont font; QImage background, pin, currentZoneImage; QList< QImage > timeZoneImages; - LocaleGlobal::Location currentLocation; + const TZZone* m_currentLocation = nullptr; // Not owned by me - QPoint getLocationPosition( const LocaleGlobal::Location& l ) - { - return getLocationPosition( l.longitude, l.latitude ); - } + QPoint getLocationPosition( const TZZone* l ) { return getLocationPosition( l->longitude(), l->latitude() ); } QPoint getLocationPosition( double longitude, double latitude ); void paintEvent( QPaintEvent* event ); From 7bea19a62cca65296cc1a211d96bc397d5d41bc6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 08:43:36 -0500 Subject: [PATCH 075/101] [locale] Fix build with debugging enabled (API changes) --- src/modules/locale/timezonewidget/timezonewidget.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 926226f8c..a96aaafa3 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -111,7 +111,7 @@ TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* locati QPoint pos = getLocationPosition( location ); #ifdef DEBUG_TIMEZONES - cDebug() << "Setting location" << location->region() << *location; + cDebug() << "Setting location" << location->region() << location->zone() << '(' << location->country() << '@' << location->latitude() << 'N' << location->longitude() << 'E' << ')'; cDebug() << Logger::SubEntry << "pixel x" << pos.x() << "pixel y" << pos.y(); bool found = false; @@ -245,7 +245,7 @@ TimeZoneWidget::paintEvent( QPaintEvent* ) painter.drawImage( 0, 0, currentZoneImage ); #ifdef DEBUG_TIMEZONES - QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); + QPoint point = getLocationPosition( m_currentLocation ); // Draw latitude lines for ( int y_lat = -50; y_lat < 80; y_lat += 5 ) { From f5d7ef1bb75060d51f8c57b7b0a8e0ac7a15c3e1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 14:50:46 +0100 Subject: [PATCH 076/101] Changes: document TZ translations --- CHANGES | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 1f721faca..4d822815d 100644 --- a/CHANGES +++ b/CHANGES @@ -9,10 +9,14 @@ This release contains contributions from (alphabetically by first name): - No other contributors this time around. ## Core ## - - No changes to core functionality. + - Timezone support code has migrated into the core of Calamares. This + means that modules now have easier access to timezone information. + Translations for timezones have also been enabled, so it is **possible** + at least to translate the displayed zones in the *welcome* module. ## Modules ## - - No changes to modules. + - The *welcome* module now supports translations for timezone and + location names (e.g. "Berlin" is "Berlijn" in Dutch). # 3.2.17.1 (2019-12-02) # From 0e7982ec371246cc6e189ada32b2787f204479e5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 11 Dec 2019 18:33:24 +0100 Subject: [PATCH 077/101] [libcalamares] Don't force Hindi on India. FIXES #1284 --- src/libcalamares/locale/CountryData_p.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/locale/CountryData_p.cpp b/src/libcalamares/locale/CountryData_p.cpp index f4736fa2e..4382950ec 100644 --- a/src/libcalamares/locale/CountryData_p.cpp +++ b/src/libcalamares/locale/CountryData_p.cpp @@ -15,6 +15,13 @@ * Conditions herein. */ +/* MODIFICATIONS + * + * Edited anyway: + * 20191211 India changed to AnyLanguage, since Hindi doesn't make sense. #1284 + * + */ + // BEGIN Generated from CLDR data // *INDENT-OFF* // clang-format off @@ -115,7 +122,7 @@ static const CountryData country_data_table[] = { { QLocale::Language::Spanish, QLocale::Country::CanaryIslands, 'I', 'C' }, { QLocale::Language::Indonesian, QLocale::Country::Indonesia, 'I', 'D' }, { QLocale::Language::Hebrew, QLocale::Country::Israel, 'I', 'L' }, -{ QLocale::Language::Hindi, QLocale::Country::India, 'I', 'N' }, +{ QLocale::Language::AnyLanguage, QLocale::Country::India, 'I', 'N' }, { QLocale::Language::Arabic, QLocale::Country::Iraq, 'I', 'Q' }, { QLocale::Language::Persian, QLocale::Country::Iran, 'I', 'R' }, { QLocale::Language::Icelandic, QLocale::Country::Iceland, 'I', 'S' }, From fb3240046dcbfdec5d4ad78c531c4c11cfd18c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 16 Dec 2019 08:43:41 +0100 Subject: [PATCH 078/101] [initcpiocfg] update plymouth check --- src/modules/initcpiocfg/main.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index a3a93801e..c096627f1 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -4,7 +4,7 @@ # === This file is part of Calamares - === # # Copyright 2014, Rohan Garg -# Copyright 2015 - 2018, Philip Müller +# Copyright 2015 - 2019, Philip Müller # Copyright 2017, Alf Gaida # Copyright 2019, Adriaan de Groot # @@ -100,6 +100,11 @@ def write_mkinitcpio_lines(hooks, modules, files, root_mount_point): with open(path, "w") as mkinitcpio_file: mkinitcpio_file.write("\n".join(mklins) + "\n") +def detect_plymouth(): + isPlymouth = target_env_call(["sh", "-c", "which plymouth"]) + debug("which plymouth exit code: {!s}".format(isPlymouth)) + + return isPlymouth def modify_mkinitcpio_conf(partitions, root_mount_point): """ @@ -121,8 +126,7 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): unencrypted_separate_boot = False # It is important that the plymouth hook comes before any encrypt hook - plymouth_bin = os.path.join(root_mount_point, "usr/bin/plymouth") - if os.path.exists(plymouth_bin): + if detect_plymouth() == 0: hooks.append("plymouth") for partition in partitions: From 26f006bd32eb3c19eb5a3a6c98d71000b024bb73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 16 Dec 2019 09:05:31 +0100 Subject: [PATCH 079/101] [initcpiocfg] fix typo for separate usr partition hook --- src/modules/initcpiocfg/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index c096627f1..c2c0a0f8d 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -148,7 +148,7 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): and "luksMapperName" not in partition): unencrypted_separate_boot = True - if (partition["mountPoint"] == "/usr" + if partition["mountPoint"] == "/usr" hooks.append("usr") if encrypt_hook: From f7ed4f322064077614df6e1186a714fc97f4c56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 16 Dec 2019 09:20:03 +0100 Subject: [PATCH 080/101] [initcpiocfg] fix imports --- src/modules/initcpiocfg/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index c2c0a0f8d..9df60dec2 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -22,6 +22,7 @@ # along with Calamares. If not, see . import libcalamares +from libcalamares.utils import debug, target_env_call import os from collections import OrderedDict @@ -148,7 +149,7 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): and "luksMapperName" not in partition): unencrypted_separate_boot = True - if partition["mountPoint"] == "/usr" + if partition["mountPoint"] == "/usr": hooks.append("usr") if encrypt_hook: From a3da47cd9cff94945ef58ddc8300b86acc438919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 16 Dec 2019 09:34:21 +0100 Subject: [PATCH 081/101] [initcpiocfg] update plymouth check --- src/modules/initcpiocfg/main.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 166cccf44..462528cb4 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -4,7 +4,7 @@ # === This file is part of Calamares - === # # Copyright 2014, Rohan Garg -# Copyright 2015, Philip Müller +# Copyright 2015 - 2019, Philip Müller # Copyright 2017, Alf Gaida # Copyright 2019, Adriaan de Groot # @@ -22,6 +22,7 @@ # along with Calamares. If not, see . import libcalamares +from libcalamares.utils import debug, target_env_call import os from collections import OrderedDict @@ -100,6 +101,11 @@ def write_mkinitcpio_lines(hooks, modules, files, root_mount_point): with open(path, "w") as mkinitcpio_file: mkinitcpio_file.write("\n".join(mklins) + "\n") +def detect_plymouth(): + isPlymouth = target_env_call(["sh", "-c", "which plymouth"]) + debug("which plymouth exit code: {!s}".format(isPlymouth)) + + return isPlymouth def modify_mkinitcpio_conf(partitions, root_mount_point): """ @@ -121,8 +127,7 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): unencrypted_separate_boot = False # It is important that the plymouth hook comes before any encrypt hook - plymouth_bin = os.path.join(root_mount_point, "usr/bin/plymouth") - if os.path.exists(plymouth_bin): + if detect_plymouth() == 0: hooks.append("plymouth") for partition in partitions: From 85d3f9e9b9297415ce1230f9c634271e24de0be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 16 Dec 2019 09:40:54 +0100 Subject: [PATCH 082/101] [initcpiocfg] add usr hook if partition is separate --- src/modules/initcpiocfg/main.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 166cccf44..8925a1181 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -144,6 +144,9 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): and "luksMapperName" not in partition): unencrypted_separate_boot = True + if partition["mountPoint"] == "/usr": + hooks.append("usr") + if encrypt_hook: hooks.append("encrypt") if not unencrypted_separate_boot and \ From fe64903d2f532441fe5f14e22dcf1a5a282fd51f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 6 Jan 2020 14:34:47 +0100 Subject: [PATCH 083/101] [initcpiocfg] Polish PR #1290 - List discrete years in copyright - Add docstrings - Massage detect_plymouth() to return bool (easier in if() context) --- src/modules/initcpiocfg/main.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 462528cb4..63ac9f15e 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -4,7 +4,7 @@ # === This file is part of Calamares - === # # Copyright 2014, Rohan Garg -# Copyright 2015 - 2019, Philip Müller +# Copyright 2015,2019, Philip Müller # Copyright 2017, Alf Gaida # Copyright 2019, Adriaan de Groot # @@ -102,10 +102,16 @@ def write_mkinitcpio_lines(hooks, modules, files, root_mount_point): mkinitcpio_file.write("\n".join(mklins) + "\n") def detect_plymouth(): + """ + Checks existence (runnability) of plymouth in the target system. + + @return True if plymouth exists in the target, False otherwise + """ + # Used to only check existence of path /usr/bin/plymouth in target isPlymouth = target_env_call(["sh", "-c", "which plymouth"]) debug("which plymouth exit code: {!s}".format(isPlymouth)) - return isPlymouth + return isPlymouth == 0 def modify_mkinitcpio_conf(partitions, root_mount_point): """ @@ -127,7 +133,7 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): unencrypted_separate_boot = False # It is important that the plymouth hook comes before any encrypt hook - if detect_plymouth() == 0: + if detect_plymouth(): hooks.append("plymouth") for partition in partitions: From 25f0ba672c0a76f444931765b1b0a3e16cf908bb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 6 Jan 2020 17:22:09 +0100 Subject: [PATCH 084/101] i18n: fix spelling of Kyiv - Add Ukranian translations of zone names. Since I don't write Ukranian, add only a translation (er .. in this case, the proper original spelling) of Kyiv. - Fix spelling in English following UN resolution. - Dutch remains unchanged, since as far as I can tell the Dutch Government still sticks to the Soviet-era spelling. FIXES #1298 --- lang/tz_en.ts | 2 +- lang/tz_uk.ts | 2617 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2618 insertions(+), 1 deletion(-) create mode 100644 lang/tz_uk.ts diff --git a/lang/tz_en.ts b/lang/tz_en.ts index 7e46eab3d..ba9b5a350 100644 --- a/lang/tz_en.ts +++ b/lang/tz_en.ts @@ -1285,7 +1285,7 @@ Kiev tz_names - + Kyiv diff --git a/lang/tz_uk.ts b/lang/tz_uk.ts new file mode 100644 index 000000000..6059079ca --- /dev/null +++ b/lang/tz_uk.ts @@ -0,0 +1,2617 @@ + + + + + QObject + + + Africa + tz_regions + + + + + America + tz_regions + + + + + Antarctica + tz_regions + + + + + Arctic + tz_regions + + + + + Asia + tz_regions + + + + + Atlantic + tz_regions + + + + + Australia + tz_regions + + + + + Europe + tz_regions + + + + + Indian + tz_regions + + + + + Pacific + tz_regions + + + + + Abidjan + tz_names + + + + + Accra + tz_names + + + + + Adak + tz_names + + + + + Addis Ababa + tz_names + + + + + Adelaide + tz_names + + + + + Aden + tz_names + + + + + Algiers + tz_names + + + + + Almaty + tz_names + + + + + Amman + tz_names + + + + + Amsterdam + tz_names + + + + + Anadyr + tz_names + + + + + Anchorage + tz_names + + + + + Andorra + tz_names + + + + + Anguilla + tz_names + + + + + Antananarivo + tz_names + + + + + Antigua + tz_names + + + + + Apia + tz_names + + + + + Aqtau + tz_names + + + + + Aqtobe + tz_names + + + + + Araguaina + tz_names + + + + + Argentina/Buenos Aires + tz_names + + + + + Argentina/Catamarca + tz_names + + + + + Argentina/Cordoba + tz_names + + + + + Argentina/Jujuy + tz_names + + + + + Argentina/La Rioja + tz_names + + + + + Argentina/Mendoza + tz_names + + + + + Argentina/Rio Gallegos + tz_names + + + + + Argentina/Salta + tz_names + + + + + Argentina/San Juan + tz_names + + + + + Argentina/San Luis + tz_names + + + + + Argentina/Tucuman + tz_names + + + + + Argentina/Ushuaia + tz_names + + + + + Aruba + tz_names + + + + + Ashgabat + tz_names + + + + + Asmara + tz_names + + + + + Astrakhan + tz_names + + + + + Asuncion + tz_names + + + + + Athens + tz_names + + + + + Atikokan + tz_names + + + + + Atyrau + tz_names + + + + + Auckland + tz_names + + + + + Azores + tz_names + + + + + Baghdad + tz_names + + + + + Bahia + tz_names + + + + + Bahia Banderas + tz_names + + + + + Bahrain + tz_names + + + + + Baku + tz_names + + + + + Bamako + tz_names + + + + + Bangkok + tz_names + + + + + Bangui + tz_names + + + + + Banjul + tz_names + + + + + Barbados + tz_names + + + + + Barnaul + tz_names + + + + + Beirut + tz_names + + + + + Belem + tz_names + + + + + Belgrade + tz_names + + + + + Belize + tz_names + + + + + Berlin + tz_names + + + + + Bermuda + tz_names + + + + + Bishkek + tz_names + + + + + Bissau + tz_names + + + + + Blanc-Sablon + tz_names + + + + + Blantyre + tz_names + + + + + Boa Vista + tz_names + + + + + Bogota + tz_names + + + + + Boise + tz_names + + + + + Bougainville + tz_names + + + + + Bratislava + tz_names + + + + + Brazzaville + tz_names + + + + + Brisbane + tz_names + + + + + Broken Hill + tz_names + + + + + Brunei + tz_names + + + + + Brussels + tz_names + + + + + Bucharest + tz_names + + + + + Budapest + tz_names + + + + + Bujumbura + tz_names + + + + + Busingen + tz_names + + + + + Cairo + tz_names + + + + + Cambridge Bay + tz_names + + + + + Campo Grande + tz_names + + + + + Canary + tz_names + + + + + Cancun + tz_names + + + + + Cape Verde + tz_names + + + + + Caracas + tz_names + + + + + Casablanca + tz_names + + + + + Casey + tz_names + + + + + Cayenne + tz_names + + + + + Cayman + tz_names + + + + + Ceuta + tz_names + + + + + Chagos + tz_names + + + + + Chatham + tz_names + + + + + Chicago + tz_names + + + + + Chihuahua + tz_names + + + + + Chisinau + tz_names + + + + + Chita + tz_names + + + + + Choibalsan + tz_names + + + + + Christmas + tz_names + + + + + Chuuk + tz_names + + + + + Cocos + tz_names + + + + + Colombo + tz_names + + + + + Comoro + tz_names + + + + + Conakry + tz_names + + + + + Copenhagen + tz_names + + + + + Costa Rica + tz_names + + + + + Creston + tz_names + + + + + Cuiaba + tz_names + + + + + Curacao + tz_names + + + + + Currie + tz_names + + + + + Dakar + tz_names + + + + + Damascus + tz_names + + + + + Danmarkshavn + tz_names + + + + + Dar es Salaam + tz_names + + + + + Darwin + tz_names + + + + + Davis + tz_names + + + + + Dawson + tz_names + + + + + Dawson Creek + tz_names + + + + + Denver + tz_names + + + + + Detroit + tz_names + + + + + Dhaka + tz_names + + + + + Dili + tz_names + + + + + Djibouti + tz_names + + + + + Dominica + tz_names + + + + + Douala + tz_names + + + + + Dubai + tz_names + + + + + Dublin + tz_names + + + + + DumontDUrville + tz_names + + + + + Dushanbe + tz_names + + + + + Easter + tz_names + + + + + Edmonton + tz_names + + + + + Efate + tz_names + + + + + Eirunepe + tz_names + + + + + El Aaiun + tz_names + + + + + El Salvador + tz_names + + + + + Enderbury + tz_names + + + + + Eucla + tz_names + + + + + Fakaofo + tz_names + + + + + Famagusta + tz_names + + + + + Faroe + tz_names + + + + + Fiji + tz_names + + + + + Fort Nelson + tz_names + + + + + Fortaleza + tz_names + + + + + Freetown + tz_names + + + + + Funafuti + tz_names + + + + + Gaborone + tz_names + + + + + Galapagos + tz_names + + + + + Gambier + tz_names + + + + + Gaza + tz_names + + + + + Gibraltar + tz_names + + + + + Glace Bay + tz_names + + + + + Godthab + tz_names + + + + + Goose Bay + tz_names + + + + + Grand Turk + tz_names + + + + + Grenada + tz_names + + + + + Guadalcanal + tz_names + + + + + Guadeloupe + tz_names + + + + + Guam + tz_names + + + + + Guatemala + tz_names + + + + + Guayaquil + tz_names + + + + + Guernsey + tz_names + + + + + Guyana + tz_names + + + + + Halifax + tz_names + + + + + Harare + tz_names + + + + + Havana + tz_names + + + + + Hebron + tz_names + + + + + Helsinki + tz_names + + + + + Hermosillo + tz_names + + + + + Ho Chi Minh + tz_names + + + + + Hobart + tz_names + + + + + Hong Kong + tz_names + + + + + Honolulu + tz_names + + + + + Hovd + tz_names + + + + + Indiana/Indianapolis + tz_names + + + + + Indiana/Knox + tz_names + + + + + Indiana/Marengo + tz_names + + + + + Indiana/Petersburg + tz_names + + + + + Indiana/Tell City + tz_names + + + + + Indiana/Vevay + tz_names + + + + + Indiana/Vincennes + tz_names + + + + + Indiana/Winamac + tz_names + + + + + Inuvik + tz_names + + + + + Iqaluit + tz_names + + + + + Irkutsk + tz_names + + + + + Isle of Man + tz_names + + + + + Istanbul + tz_names + + + + + Jakarta + tz_names + + + + + Jamaica + tz_names + + + + + Jayapura + tz_names + + + + + Jersey + tz_names + + + + + Jerusalem + tz_names + + + + + Johannesburg + tz_names + + + + + Juba + tz_names + + + + + Juneau + tz_names + + + + + Kabul + tz_names + + + + + Kaliningrad + tz_names + + + + + Kamchatka + tz_names + + + + + Kampala + tz_names + + + + + Karachi + tz_names + + + + + Kathmandu + tz_names + + + + + Kentucky/Louisville + tz_names + + + + + Kentucky/Monticello + tz_names + + + + + Kerguelen + tz_names + + + + + Khandyga + tz_names + + + + + Khartoum + tz_names + + + + + Kiev + tz_names + Київ + + + + Kigali + tz_names + + + + + Kinshasa + tz_names + + + + + Kiritimati + tz_names + + + + + Kirov + tz_names + + + + + Kolkata + tz_names + + + + + Kosrae + tz_names + + + + + Kralendijk + tz_names + + + + + Krasnoyarsk + tz_names + + + + + Kuala Lumpur + tz_names + + + + + Kuching + tz_names + + + + + Kuwait + tz_names + + + + + Kwajalein + tz_names + + + + + La Paz + tz_names + + + + + Lagos + tz_names + + + + + Libreville + tz_names + + + + + Lima + tz_names + + + + + Lindeman + tz_names + + + + + Lisbon + tz_names + + + + + Ljubljana + tz_names + + + + + Lome + tz_names + + + + + London + tz_names + + + + + Longyearbyen + tz_names + + + + + Lord Howe + tz_names + + + + + Los Angeles + tz_names + + + + + Lower Princes + tz_names + + + + + Luanda + tz_names + + + + + Lubumbashi + tz_names + + + + + Lusaka + tz_names + + + + + Luxembourg + tz_names + + + + + Macau + tz_names + + + + + Maceio + tz_names + + + + + Macquarie + tz_names + + + + + Madeira + tz_names + + + + + Madrid + tz_names + + + + + Magadan + tz_names + + + + + Mahe + tz_names + + + + + Majuro + tz_names + + + + + Makassar + tz_names + + + + + Malabo + tz_names + + + + + Maldives + tz_names + + + + + Malta + tz_names + + + + + Managua + tz_names + + + + + Manaus + tz_names + + + + + Manila + tz_names + + + + + Maputo + tz_names + + + + + Mariehamn + tz_names + + + + + Marigot + tz_names + + + + + Marquesas + tz_names + + + + + Martinique + tz_names + + + + + Maseru + tz_names + + + + + Matamoros + tz_names + + + + + Mauritius + tz_names + + + + + Mawson + tz_names + + + + + Mayotte + tz_names + + + + + Mazatlan + tz_names + + + + + Mbabane + tz_names + + + + + McMurdo + tz_names + + + + + Melbourne + tz_names + + + + + Menominee + tz_names + + + + + Merida + tz_names + + + + + Metlakatla + tz_names + + + + + Mexico City + tz_names + + + + + Midway + tz_names + + + + + Minsk + tz_names + + + + + Miquelon + tz_names + + + + + Mogadishu + tz_names + + + + + Monaco + tz_names + + + + + Moncton + tz_names + + + + + Monrovia + tz_names + + + + + Monterrey + tz_names + + + + + Montevideo + tz_names + + + + + Montserrat + tz_names + + + + + Moscow + tz_names + + + + + Muscat + tz_names + + + + + Nairobi + tz_names + + + + + Nassau + tz_names + + + + + Nauru + tz_names + + + + + Ndjamena + tz_names + + + + + New York + tz_names + + + + + Niamey + tz_names + + + + + Nicosia + tz_names + + + + + Nipigon + tz_names + + + + + Niue + tz_names + + + + + Nome + tz_names + + + + + Norfolk + tz_names + + + + + Noronha + tz_names + + + + + North Dakota/Beulah + tz_names + + + + + North Dakota/Center + tz_names + + + + + North Dakota/New Salem + tz_names + + + + + Nouakchott + tz_names + + + + + Noumea + tz_names + + + + + Novokuznetsk + tz_names + + + + + Novosibirsk + tz_names + + + + + Ojinaga + tz_names + + + + + Omsk + tz_names + + + + + Oral + tz_names + + + + + Oslo + tz_names + + + + + Ouagadougou + tz_names + + + + + Pago Pago + tz_names + + + + + Palau + tz_names + + + + + Palmer + tz_names + + + + + Panama + tz_names + + + + + Pangnirtung + tz_names + + + + + Paramaribo + tz_names + + + + + Paris + tz_names + + + + + Perth + tz_names + + + + + Phnom Penh + tz_names + + + + + Phoenix + tz_names + + + + + Pitcairn + tz_names + + + + + Podgorica + tz_names + + + + + Pohnpei + tz_names + + + + + Pontianak + tz_names + + + + + Port Moresby + tz_names + + + + + Port of Spain + tz_names + + + + + Port-au-Prince + tz_names + + + + + Porto Velho + tz_names + + + + + Porto-Novo + tz_names + + + + + Prague + tz_names + + + + + Puerto Rico + tz_names + + + + + Punta Arenas + tz_names + + + + + Pyongyang + tz_names + + + + + Qatar + tz_names + + + + + Qostanay + tz_names + + + + + Qyzylorda + tz_names + + + + + Rainy River + tz_names + + + + + Rankin Inlet + tz_names + + + + + Rarotonga + tz_names + + + + + Recife + tz_names + + + + + Regina + tz_names + + + + + Resolute + tz_names + + + + + Reunion + tz_names + + + + + Reykjavik + tz_names + + + + + Riga + tz_names + + + + + Rio Branco + tz_names + + + + + Riyadh + tz_names + + + + + Rome + tz_names + + + + + Rothera + tz_names + + + + + Saipan + tz_names + + + + + Sakhalin + tz_names + + + + + Samara + tz_names + + + + + Samarkand + tz_names + + + + + San Marino + tz_names + + + + + Santarem + tz_names + + + + + Santiago + tz_names + + + + + Santo Domingo + tz_names + + + + + Sao Paulo + tz_names + + + + + Sao Tome + tz_names + + + + + Sarajevo + tz_names + + + + + Saratov + tz_names + + + + + Scoresbysund + tz_names + + + + + Seoul + tz_names + + + + + Shanghai + tz_names + + + + + Simferopol + tz_names + + + + + Singapore + tz_names + + + + + Sitka + tz_names + + + + + Skopje + tz_names + + + + + Sofia + tz_names + + + + + South Georgia + tz_names + + + + + Srednekolymsk + tz_names + + + + + St Barthelemy + tz_names + + + + + St Helena + tz_names + + + + + St Johns + tz_names + + + + + St Kitts + tz_names + + + + + St Lucia + tz_names + + + + + St Thomas + tz_names + + + + + St Vincent + tz_names + + + + + Stanley + tz_names + + + + + Stockholm + tz_names + + + + + Swift Current + tz_names + + + + + Sydney + tz_names + + + + + Syowa + tz_names + + + + + Tahiti + tz_names + + + + + Taipei + tz_names + + + + + Tallinn + tz_names + + + + + Tarawa + tz_names + + + + + Tashkent + tz_names + + + + + Tbilisi + tz_names + + + + + Tegucigalpa + tz_names + + + + + Tehran + tz_names + + + + + Thimphu + tz_names + + + + + Thule + tz_names + + + + + Thunder Bay + tz_names + + + + + Tijuana + tz_names + + + + + Tirane + tz_names + + + + + Tokyo + tz_names + + + + + Tomsk + tz_names + + + + + Tongatapu + tz_names + + + + + Toronto + tz_names + + + + + Tortola + tz_names + + + + + Tripoli + tz_names + + + + + Troll + tz_names + + + + + Tunis + tz_names + + + + + Ulaanbaatar + tz_names + + + + + Ulyanovsk + tz_names + + + + + Urumqi + tz_names + + + + + Ust-Nera + tz_names + + + + + Uzhgorod + tz_names + + + + + Vaduz + tz_names + + + + + Vancouver + tz_names + + + + + Vatican + tz_names + + + + + Vienna + tz_names + + + + + Vientiane + tz_names + + + + + Vilnius + tz_names + + + + + Vladivostok + tz_names + + + + + Volgograd + tz_names + + + + + Vostok + tz_names + + + + + Wake + tz_names + + + + + Wallis + tz_names + + + + + Warsaw + tz_names + + + + + Whitehorse + tz_names + + + + + Windhoek + tz_names + + + + + Winnipeg + tz_names + + + + + Yakutat + tz_names + + + + + Yakutsk + tz_names + + + + + Yangon + tz_names + + + + + Yekaterinburg + tz_names + + + + + Yellowknife + tz_names + + + + + Yerevan + tz_names + + + + + Zagreb + tz_names + + + + + Zaporozhye + tz_names + + + + + Zurich + tz_names + + + + From bb4771a12a9dc014e0ee213bee464515ad86f7f1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 6 Jan 2020 17:41:32 +0100 Subject: [PATCH 085/101] Changes: it's the locale module with translated zone names --- CHANGES | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 712bdfeb1..bc3d7d396 100644 --- a/CHANGES +++ b/CHANGES @@ -12,13 +12,13 @@ This release contains contributions from (alphabetically by first name): - Timezone support code has migrated into the core of Calamares. This means that modules now have easier access to timezone information. Translations for timezones have also been enabled, so it is **possible** - at least to translate the displayed zones in the *welcome* module. + at least to translate the displayed zones in the *locale* module. ## Modules ## - The *license* module has seen a significant change to its looks. Actions are now labeled more clearly, and the URL (or filename) for each license is displayed. - - The *welcome* module now supports translations for timezone and + - The *locale* module now supports translations for timezone and location names (e.g. "Berlin" is "Berlijn" in Dutch). From d21ed0cc7ff93209e45696ceb6cf4f4a204313c0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 6 Jan 2020 17:55:13 +0100 Subject: [PATCH 086/101] [packagechooser] Coding style --- src/modules/packagechooser/PackageChooserPage.cpp | 1 - src/modules/packagechooser/PackageChooserViewStep.cpp | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/packagechooser/PackageChooserPage.cpp b/src/modules/packagechooser/PackageChooserPage.cpp index 1997c6dcf..16f50abab 100644 --- a/src/modules/packagechooser/PackageChooserPage.cpp +++ b/src/modules/packagechooser/PackageChooserPage.cpp @@ -53,7 +53,6 @@ PackageChooserPage::PackageChooserPage( PackageChooserMode mode, QWidget* parent } ui->products->setMinimumWidth( 10 * CalamaresUtils::defaultFontHeight() ); - } /** @brief size the given @p pixmap to @p size diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index 36f6ae015..c933147ee 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -148,7 +148,9 @@ void PackageChooserViewStep::onActivate() { if ( !m_widget->hasSelection() ) + { m_widget->setSelection( m_defaultIdx ); + } } void @@ -221,7 +223,7 @@ PackageChooserViewStep::setConfigurationMap( const QVariantMap& configurationMap // find default item if ( first_time && m_model && !default_item_id.isEmpty() ) { - for (int item_n = 0; item_n < m_model->packageCount(); ++item_n) + for ( int item_n = 0; item_n < m_model->packageCount(); ++item_n ) { QModelIndex item_idx = m_model->index( item_n, 0 ); QVariant item_id = m_model->data( item_idx, PackageListModel::IdRole ); From 1625bb1daed5522b5c569f74e0b6f8fa4b603afa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 00:09:04 +0100 Subject: [PATCH 087/101] [locale] Support Qt 5.9 FIXES #1296 --- src/modules/locale/timezonewidget/timezonewidget.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index a96aaafa3..400af0841 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -271,7 +271,14 @@ TimeZoneWidget::paintEvent( QPaintEvent* ) painter.drawImage( point.x() - pin.width() / 2, point.y() - pin.height() / 2, pin ); // Draw text and box - const int textWidth = fontMetrics.horizontalAdvance( m_currentLocation ? m_currentLocation->tr() : QString() ); + // .. the lambda manages deprecations: the old one works in Qt 5.9 and Qt 5.10, + // while the new one avoids deprecation messages in Qt 5.13 and later. +#if QT_VERSION >= QT_VERSION_CHECK( 5, 11, 0 ) + auto textwidth = [&]( const QString& s ) { return fontMetrics.horizontalAdvance( s ); }; +#else + auto textwidth = [&]( const QString& s ) { return fontMetrics.width( s ); }; +#endif + const int textWidth = textwidth( m_currentLocation ? m_currentLocation->tr() : QString() ); const int textHeight = fontMetrics.height(); QRect rect = QRect( point.x() - textWidth / 2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2 ); From 17d09342e9c7d2bc2352780e4fc7b5eff35f0b22 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 00:27:11 +0100 Subject: [PATCH 088/101] [libcalamaresui] Add a setting for window placement --- src/branding/default/branding.desc | 6 ++++++ src/libcalamaresui/Branding.cpp | 9 +++++++++ src/libcalamaresui/Branding.h | 11 ++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/branding/default/branding.desc b/src/branding/default/branding.desc index 5d9b29c69..f70715aea 100644 --- a/src/branding/default/branding.desc +++ b/src/branding/default/branding.desc @@ -35,6 +35,12 @@ windowExpanding: normal # in CalamaresUtilsGui, 800x520. windowSize: 800px,520px +# Placement of Calamares window. Either "center" or "free". +# Whether "center" actually works does depend on the window +# manager in use (and only makes sense if you're not using +# *windowExpanding* set to "fullscreen"). +windowPlacement: center + # These are strings shown to the user in the user interface. # There is no provision for translating them -- since they # are names, the string is included as-is. diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index edbced5fa..a5b6e5dce 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -410,6 +410,9 @@ Branding::initSimpleSettings( const YAML::Node& doc ) { QStringLiteral( "fullscreen" ), WindowExpansion::Fullscreen }, { QStringLiteral( "noexpand" ), WindowExpansion::Fixed } }; + static const NamedEnumTable< WindowPlacement > placementNames { + { QStringLiteral( "free" ), WindowPlacement::Free }, { QStringLiteral( "center" ), WindowPlacement::Center } + }; bool ok = false; m_welcomeStyleCalamares = doc[ "welcomeStyleCalamares" ].as< bool >( false ); @@ -420,6 +423,12 @@ Branding::initSimpleSettings( const YAML::Node& doc ) cWarning() << "Branding module-setting *windowExpanding* interpreted as" << expansionNames.find( m_windowExpansion, ok ); } + m_windowPlacement = placementNames.find( getString( doc, "windowPlacement" ), ok ); + if ( !ok ) + { + cWarning() << "Branding module-setting *windowPlacement* interpreted as" + << placementNames.find( m_windowPlacement, ok ); + } QString windowSize = getString( doc, "windowSize" ); if ( !windowSize.isEmpty() ) diff --git a/src/libcalamaresui/Branding.h b/src/libcalamaresui/Branding.h index 3723fd07f..30e8be846 100644 --- a/src/libcalamaresui/Branding.h +++ b/src/libcalamaresui/Branding.h @@ -108,6 +108,13 @@ public: { } }; + /** @brief Placement of main window. + */ + enum class WindowPlacement + { + Center, + Free + }; static Branding* instance(); @@ -162,6 +169,7 @@ public: { return QPair< WindowDimension, WindowDimension >( m_windowWidth, m_windowHeight ); } + bool windowPlacementCentered() const { return m_windowPlacement == WindowPlacement::Center; } /** * Creates a map called "branding" in the global storage, and inserts an @@ -193,9 +201,10 @@ private: bool m_welcomeStyleCalamares; bool m_welcomeExpandingLogo; - WindowExpansion m_windowExpansion; + WindowExpansion m_windowExpansion; WindowDimension m_windowHeight, m_windowWidth; + WindowPlacement m_windowPlacement; }; template < typename U > From 60c659c82b90e91222ed572fcebc9935f2c31d45 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 00:28:52 +0100 Subject: [PATCH 089/101] Changes: document new branding element --- CHANGES | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES b/CHANGES index bc3d7d396..b702583d0 100644 --- a/CHANGES +++ b/CHANGES @@ -13,6 +13,9 @@ This release contains contributions from (alphabetically by first name): means that modules now have easier access to timezone information. Translations for timezones have also been enabled, so it is **possible** at least to translate the displayed zones in the *locale* module. + - Branding can now specify whether to (try to) display the Calamares window + in the middle of the desktop or not. The *windowPlacement* key in + `branding.desc` specifies *center* or *free* placement. ## Modules ## - The *license* module has seen a significant change to its looks. From 43caf7b46a51531ec6d5e55b03eb7606219fadad Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 00:34:15 +0100 Subject: [PATCH 090/101] [calamares] Restore functionality for 'center window' --- src/calamares/CalamaresApplication.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 527f92c85..c5fdb6273 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -357,6 +357,10 @@ CalamaresApplication::initView() QTimer::singleShot( 0, m_moduleManager, &Calamares::ModuleManager::loadModules ); + if ( Calamares::Branding::instance() && Calamares::Branding::instance()->windowPlacementCentered() ) + { + m_mainwindow->move( this->desktop()->availableGeometry().center() - m_mainwindow->rect().center() ); + } cDebug() << "STARTUP: CalamaresWindow created; loadModules started"; } From 121013fd96beadae60727b573c47343f69ffa622 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 01:06:26 +0100 Subject: [PATCH 091/101] [calamares] Avoid deprecated desktop() - Put Calamares on the first screen where it fits - This is wordy and weird --- src/calamares/CalamaresApplication.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index c5fdb6273..8e30dfa83 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include @@ -359,7 +360,17 @@ CalamaresApplication::initView() if ( Calamares::Branding::instance() && Calamares::Branding::instance()->windowPlacementCentered() ) { - m_mainwindow->move( this->desktop()->availableGeometry().center() - m_mainwindow->rect().center() ); + QList< QScreen* > screens = qApp->screens(); + QPoint windowCenter = m_mainwindow->rect().center(); + for ( const auto* screen : screens ) + { + QPoint screenCenter = screen->availableGeometry().center(); + if ( ( screenCenter.x() >= windowCenter.x() ) && ( screenCenter.y() >= windowCenter.y() ) ) + { + m_mainwindow->move( screenCenter - windowCenter ); + break; + } + } } cDebug() << "STARTUP: CalamaresWindow created; loadModules started"; } From 61b6d058d7d5f9696ce2d68b36a30a66be544f8e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 01:16:36 +0100 Subject: [PATCH 092/101] Changes: credits for packagechooser bits --- CHANGES | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index b702583d0..42a0b8c51 100644 --- a/CHANGES +++ b/CHANGES @@ -6,7 +6,7 @@ website will have to do for older versions. # 3.2.18 (unreleased) # This release contains contributions from (alphabetically by first name): - - No other contributors this time around. + - Bill Auger ## Core ## - Timezone support code has migrated into the core of Calamares. This @@ -23,6 +23,8 @@ This release contains contributions from (alphabetically by first name): for each license is displayed. - The *locale* module now supports translations for timezone and location names (e.g. "Berlin" is "Berlijn" in Dutch). + - *Packagechooser* is a little more careful with displaying + default and empty package names. (thanks to Bill Auger) # 3.2.17.1 (2019-12-02) # From fcb0109b7b600c2bab429f0af8064ef34c0e8005 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 09:56:13 +0100 Subject: [PATCH 093/101] [calamares] Refactor center-placement - Just move it to its own function where it can have more documentation - Tested on multi-screen setups SEE #1293 --- src/calamares/CalamaresApplication.cpp | 47 ++++++++++++++++++++------ 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 8e30dfa83..a4ae30acb 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -343,6 +343,41 @@ CalamaresApplication::initModuleManager() m_moduleManager->init(); } +/** @brief centers the widget @p w on (a) screen + * + * This tries to duplicate the (deprecated) qApp->desktop()->availableGeometry() + * placement by iterating over screens and putting Calamares in the first + * one where it fits; this is *generally* the primary screen. + * + * With debugging, it would look something like this (2 screens attached, + * primary at +1080+240 because I have a very strange X setup). Before + * being mapped, the Calamares window is at +0+0 but does have a size. + * The first screen's geometry includes the offset from the origin in + * screen coordinates. + * + * Proposed window size: 1024 520 + * Window QRect(0,0 1024x520) + * Screen QRect(1080,240 2560x1440) + * Moving QPoint(1848,700) + * Screen QRect(0,0 1080x1920) + * + */ +static void +centerWindowOnScreen( QWidget* w ) +{ + QList< QScreen* > screens = qApp->screens(); + QPoint windowCenter = w->rect().center(); + + for ( const auto* screen : screens ) + { + QPoint screenCenter = screen->availableGeometry().center(); + if ( !itFits && ( screenCenter.x() >= windowCenter.x() ) && ( screenCenter.y() >= windowCenter.y() ) ) + { + w->move( screenCenter - windowCenter ); + break; + } + } +} void CalamaresApplication::initView() @@ -360,17 +395,7 @@ CalamaresApplication::initView() if ( Calamares::Branding::instance() && Calamares::Branding::instance()->windowPlacementCentered() ) { - QList< QScreen* > screens = qApp->screens(); - QPoint windowCenter = m_mainwindow->rect().center(); - for ( const auto* screen : screens ) - { - QPoint screenCenter = screen->availableGeometry().center(); - if ( ( screenCenter.x() >= windowCenter.x() ) && ( screenCenter.y() >= windowCenter.y() ) ) - { - m_mainwindow->move( screenCenter - windowCenter ); - break; - } - } + centerWindowOnScreen( m_mainwindow ); } cDebug() << "STARTUP: CalamaresWindow created; loadModules started"; } From b4c0ebe8ab936d0ad3d9e15b8cdb94e32841e042 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 10:04:10 +0100 Subject: [PATCH 094/101] [calamares] Use screen and window sizes, not position --- src/calamares/CalamaresApplication.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index a4ae30acb..1584b11fa 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -367,13 +367,14 @@ centerWindowOnScreen( QWidget* w ) { QList< QScreen* > screens = qApp->screens(); QPoint windowCenter = w->rect().center(); + QSize windowSize = w->rect().size(); for ( const auto* screen : screens ) { - QPoint screenCenter = screen->availableGeometry().center(); - if ( !itFits && ( screenCenter.x() >= windowCenter.x() ) && ( screenCenter.y() >= windowCenter.y() ) ) + QSize screenSize = screen->availableGeometry().size(); + if ( ( screenSize.width() >= windowSize.width() ) && ( screenSize.height() >= windowSize.height() ) ) { - w->move( screenCenter - windowCenter ); + w->move( screen->availableGeometry().center() - windowCenter ); break; } } From 1b62b2f66ce1a7aa1ca990174f456d3429f83dac Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 10:19:22 +0100 Subject: [PATCH 095/101] [libcalamares] Reduce warnings (extra ;, empty statement ..) --- src/libcalamares/locale/TimeZone.cpp | 3 +-- src/libcalamares/locale/TimeZone.h | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 05aeaf885..58695ee0e 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -171,7 +171,6 @@ TZRegion::fromFile( const char* fileName ) } QString region = timezoneParts.first().trimmed(); - ; if ( region.isEmpty() ) { continue; @@ -243,7 +242,7 @@ CStringListModel::CStringListModel( CStringPairList l ) CStringListModel::~CStringListModel() {} int -CStringListModel::rowCount( const QModelIndex& parent ) const +CStringListModel::rowCount( const QModelIndex& ) const { return m_list.count(); } diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 567b42241..5048b7276 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -48,7 +48,7 @@ class CStringPair { public: /// @brief An empty pair - CStringPair() {}; + CStringPair() {} /// @brief Given an identifier, create the pair explicit CStringPair( const char* s1 ); CStringPair( CStringPair&& t ); @@ -88,7 +88,7 @@ class TZRegion : public CStringPair { public: using CStringPair::CStringPair; - virtual ~TZRegion(); + virtual ~TZRegion() override; QString tr() const override; QString region() const { return key(); } From 5fbd0169cad6444e58a361e9277299b7122cc87c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 10:33:21 +0100 Subject: [PATCH 096/101] [libcalamares] Reduce clang warnings (only-inline-virtual, unused parameters) --- src/libcalamares/utils/Retranslator.cpp | 112 +++++++++++++----------- 1 file changed, 62 insertions(+), 50 deletions(-) diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index 047f642e4..4c7c3b3f5 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -58,7 +58,7 @@ struct TranslationLoader { } - virtual ~TranslationLoader() {}; + virtual ~TranslationLoader(); /// @brief Loads @p translator with the specific translations of this type virtual bool tryLoad( QTranslator* translator ) = 0; @@ -66,6 +66,7 @@ struct TranslationLoader QString m_localeName; }; +/// @brief Loads translations for branding struct BrandingLoader : public TranslationLoader { BrandingLoader( const QLocale& locale, const QString& prefix ) @@ -74,74 +75,85 @@ struct BrandingLoader : public TranslationLoader { } - bool tryLoad( QTranslator* translator ) override - { - if ( m_prefix.isEmpty() ) - { - return false; - } - QString brandingTranslationsDirPath( m_prefix ); - brandingTranslationsDirPath.truncate( m_prefix.lastIndexOf( QDir::separator() ) ); - QDir brandingTranslationsDir( brandingTranslationsDirPath ); - if ( brandingTranslationsDir.exists() ) - { - QString filenameBase( m_prefix ); - filenameBase.remove( 0, m_prefix.lastIndexOf( QDir::separator() ) + 1 ); - if ( translator->load( m_locale, filenameBase, "_", brandingTranslationsDir.absolutePath() ) ) - { - cDebug() << Logger::SubEntry << "Branding using locale:" << m_localeName; - return true; - } - else - { - cDebug() << Logger::SubEntry << "Branding using default, system locale not found:" << m_localeName; - // TODO: this loads something completely different - return translator->load( m_prefix + "en" ); - } - } - return false; - } + bool tryLoad( QTranslator* translator ) override; QString m_prefix; }; +/// @brief Loads regular Calamares translations (program text) struct CalamaresLoader : public TranslationLoader { using TranslationLoader::TranslationLoader; - - bool tryLoad( QTranslator* translator ) override - { - if ( translator->load( QString( ":/lang/calamares_" ) + m_localeName ) ) - { - cDebug() << Logger::SubEntry << "Calamares using locale:" << m_localeName; - return true; - } - else - { - cDebug() << Logger::SubEntry << "Calamares using default, system locale not found:" << m_localeName; - return translator->load( QString( ":/lang/calamares_en" ) ); - } - } + bool tryLoad( QTranslator* translator ) override; }; +/// @brief Loads timezone name translations struct TZLoader : public TranslationLoader { using TranslationLoader::TranslationLoader; - bool tryLoad( QTranslator* translator ) override + bool tryLoad( QTranslator* translator ) override; +}; + +TranslationLoader::~TranslationLoader() {} + +bool +BrandingLoader::tryLoad( QTranslator* translator ) +{ + if ( m_prefix.isEmpty() ) { - if ( translator->load( QString( ":/lang/tz_" ) + m_localeName ) ) + return false; + } + QString brandingTranslationsDirPath( m_prefix ); + brandingTranslationsDirPath.truncate( m_prefix.lastIndexOf( QDir::separator() ) ); + QDir brandingTranslationsDir( brandingTranslationsDirPath ); + if ( brandingTranslationsDir.exists() ) + { + QString filenameBase( m_prefix ); + filenameBase.remove( 0, m_prefix.lastIndexOf( QDir::separator() ) + 1 ); + if ( translator->load( m_locale, filenameBase, "_", brandingTranslationsDir.absolutePath() ) ) { - cDebug() << Logger::SubEntry << "Calamares Timezones using locale:" << m_localeName; + cDebug() << Logger::SubEntry << "Branding using locale:" << m_localeName; return true; } else { - cDebug() << Logger::SubEntry - << "Calamares Timezones using default, system locale not found:" << m_localeName; - return translator->load( QString( ":/lang/tz_en" ) ); + cDebug() << Logger::SubEntry << "Branding using default, system locale not found:" << m_localeName; + // TODO: this loads something completely different + return translator->load( m_prefix + "en" ); } } -}; + return false; +} + +bool +CalamaresLoader::tryLoad( QTranslator* translator ) +{ + if ( translator->load( QString( ":/lang/calamares_" ) + m_localeName ) ) + { + cDebug() << Logger::SubEntry << "Calamares using locale:" << m_localeName; + return true; + } + else + { + cDebug() << Logger::SubEntry << "Calamares using default, system locale not found:" << m_localeName; + return translator->load( QString( ":/lang/calamares_en" ) ); + } +} + +bool +TZLoader::tryLoad( QTranslator* translator ) +{ + if ( translator->load( QString( ":/lang/tz_" ) + m_localeName ) ) + { + cDebug() << Logger::SubEntry << "Calamares Timezones using locale:" << m_localeName; + return true; + } + else + { + cDebug() << Logger::SubEntry << "Calamares Timezones using default, system locale not found:" << m_localeName; + return translator->load( QString( ":/lang/tz_en" ) ); + } +} static void loadSingletonTranslator( TranslationLoader&& loader, QTranslator*& translator_p ) @@ -167,7 +179,7 @@ static QTranslator* s_tztranslator = nullptr; static QString s_translatorLocaleName; void -installTranslator( const QLocale& locale, const QString& brandingTranslationsPrefix, QObject* parent ) +installTranslator( const QLocale& locale, const QString& brandingTranslationsPrefix, QObject* ) { loadSingletonTranslator( BrandingLoader( locale, brandingTranslationsPrefix ), s_brandingTranslator ); loadSingletonTranslator( TZLoader( locale ), s_tztranslator ); From 2dff2d9d70a9143a459b7f0a171ac7dcd1a59a0d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 10:41:14 +0100 Subject: [PATCH 097/101] [libcalamares] TZRegion is hard to copy - delete the copy and move constructors - adjust tests (which were just interested in simple tr() behavior) to use TZZone instead --- src/libcalamares/locale/Tests.cpp | 6 +++--- src/libcalamares/locale/TimeZone.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/locale/Tests.cpp b/src/libcalamares/locale/Tests.cpp index 106a77b4c..b63eb9e18 100644 --- a/src/libcalamares/locale/Tests.cpp +++ b/src/libcalamares/locale/Tests.cpp @@ -215,12 +215,12 @@ LocaleTests::testSimpleZones() QVERIFY( n.tr().isEmpty() ); } { - TZRegion r0( "xAmsterdam" ); + TZZone r0( "xAmsterdam" ); QCOMPARE( r0.tr(), QStringLiteral( "xAmsterdam" ) ); - TZRegion r1( r0 ); + TZZone r1( r0 ); QCOMPARE( r0.tr(), QStringLiteral( "xAmsterdam" ) ); QCOMPARE( r1.tr(), QStringLiteral( "xAmsterdam" ) ); - TZRegion r2( std::move( r0 ) ); + TZZone r2( std::move( r0 ) ); QCOMPARE( r2.tr(), QStringLiteral( "xAmsterdam" ) ); QCOMPARE( r0.tr(), QString() ); } diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 5048b7276..3345e61f8 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -89,6 +89,7 @@ class TZRegion : public CStringPair public: using CStringPair::CStringPair; virtual ~TZRegion() override; + TZRegion( const TZRegion& ) = delete; QString tr() const override; QString region() const { return key(); } From 1a8926181efbd15fbe81efe7e15d4fba86a1216c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 10:46:26 +0100 Subject: [PATCH 098/101] [locale] Warnings-- (initialization-order) --- src/modules/locale/LocalePage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 4e43fc177..c1df7c81c 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -41,9 +41,9 @@ LocalePage::LocalePage( QWidget* parent ) : QWidget( parent ) - , m_blockTzWidgetSet( false ) , m_regionList( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( m_regionList ) ) + , m_blockTzWidgetSet( false ) { QBoxLayout* mainLayout = new QVBoxLayout; From 1bc8a28eac026f1e3140681f6339f9b00deb4154 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 11:20:45 +0100 Subject: [PATCH 099/101] CMake: Calamares doesn't want -p in automoc FIXES #1286 --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b823ccbe..e547ddb84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -220,6 +220,8 @@ if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" ) + # The path prefix is only relevant for CMake 3.16 and later, fixes #1286 + set( CMAKE_AUTOMOC_PATH_PREFIX OFF ) set( CALAMARES_AUTOMOC_OPTIONS "-butils/moc-warnings.h" ) set( CALAMARES_AUTOUIC_OPTIONS --include utils/moc-warnings.h ) else() From c482990bc5b5233e2f4abda75fda8700308f5bea Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jan 2020 11:38:18 +0100 Subject: [PATCH 100/101] CMake: fix find-boost --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e547ddb84..6edc4e4cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -324,6 +324,10 @@ set_package_properties( ) if ( PYTHONLIBS_FOUND ) + # Since Boost provides CMake config files (starting with Boost 1.70. + # or so) the mess that is the Calamares find code picks the wrong + # bits. Suppress those CMake config files, as suggested by @jmrcpn + set(Boost_NO_BOOST_CMAKE ON) include( BoostPython3 ) find_boost_python3( ${BOOSTPYTHON_VERSION} ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND ) set_package_properties( From 45f1522561da97b7d0399b9b2d851931a78b7959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Fri, 17 Jan 2020 09:13:29 +0100 Subject: [PATCH 101/101] [branding] update manjaro defaults --- src/branding/manjaro/branding.desc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/branding/manjaro/branding.desc b/src/branding/manjaro/branding.desc index e23f93912..52095c5ba 100644 --- a/src/branding/manjaro/branding.desc +++ b/src/branding/manjaro/branding.desc @@ -27,7 +27,13 @@ windowExpanding: noexpand # This setting is ignored if "fullscreen" is selected for # *windowExpanding*, above. If not set, use constants defined # in CalamaresUtilsGui, 800x520. -windowSize: 800px,520px +windowSize: 820px,540px + +# Placement of Calamares window. Either "center" or "free". +# Whether "center" actually works does depend on the window +# manager in use (and only makes sense if you're not using +# *windowExpanding* set to "fullscreen"). +windowPlacement: center # These are strings shown to the user in the user interface. # There is no provision for translating them -- since they