From a29bd5a18d8525aeecc920cda18e52a01446c115 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 29 May 2018 03:27:20 -0400 Subject: [PATCH 01/68] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_ar.ts | 84 +++++++++++++++++-------------------- lang/calamares_ast.ts | 84 +++++++++++++++++-------------------- lang/calamares_be.ts | 84 +++++++++++++++++-------------------- lang/calamares_bg.ts | 84 +++++++++++++++++-------------------- lang/calamares_ca.ts | 84 +++++++++++++++++-------------------- lang/calamares_cs_CZ.ts | 84 +++++++++++++++++-------------------- lang/calamares_da.ts | 86 ++++++++++++++++++-------------------- lang/calamares_de.ts | 84 +++++++++++++++++-------------------- lang/calamares_el.ts | 84 +++++++++++++++++-------------------- lang/calamares_en.ts | 84 +++++++++++++++++-------------------- lang/calamares_en_GB.ts | 84 +++++++++++++++++-------------------- lang/calamares_eo.ts | 84 +++++++++++++++++-------------------- lang/calamares_es.ts | 84 +++++++++++++++++-------------------- lang/calamares_es_MX.ts | 84 +++++++++++++++++-------------------- lang/calamares_es_PR.ts | 84 +++++++++++++++++-------------------- lang/calamares_et.ts | 84 +++++++++++++++++-------------------- lang/calamares_eu.ts | 84 +++++++++++++++++-------------------- lang/calamares_fa.ts | 84 +++++++++++++++++-------------------- lang/calamares_fi_FI.ts | 84 +++++++++++++++++-------------------- lang/calamares_fr.ts | 84 +++++++++++++++++-------------------- lang/calamares_fr_CH.ts | 84 +++++++++++++++++-------------------- lang/calamares_gl.ts | 84 +++++++++++++++++-------------------- lang/calamares_gu.ts | 84 +++++++++++++++++-------------------- lang/calamares_he.ts | 84 +++++++++++++++++-------------------- lang/calamares_hi.ts | 84 +++++++++++++++++-------------------- lang/calamares_hr.ts | 84 +++++++++++++++++-------------------- lang/calamares_hu.ts | 84 +++++++++++++++++-------------------- lang/calamares_id.ts | 84 +++++++++++++++++-------------------- lang/calamares_is.ts | 84 +++++++++++++++++-------------------- lang/calamares_it_IT.ts | 84 +++++++++++++++++-------------------- lang/calamares_ja.ts | 84 +++++++++++++++++-------------------- lang/calamares_kk.ts | 84 +++++++++++++++++-------------------- lang/calamares_kn.ts | 84 +++++++++++++++++-------------------- lang/calamares_lo.ts | 84 +++++++++++++++++-------------------- lang/calamares_lt.ts | 84 +++++++++++++++++-------------------- lang/calamares_mr.ts | 84 +++++++++++++++++-------------------- lang/calamares_nb.ts | 84 +++++++++++++++++-------------------- lang/calamares_nl.ts | 84 +++++++++++++++++-------------------- lang/calamares_pl.ts | 84 +++++++++++++++++-------------------- lang/calamares_pt_BR.ts | 84 +++++++++++++++++-------------------- lang/calamares_pt_PT.ts | 84 +++++++++++++++++-------------------- lang/calamares_ro.ts | 84 +++++++++++++++++-------------------- lang/calamares_ru.ts | 84 +++++++++++++++++-------------------- lang/calamares_sk.ts | 86 ++++++++++++++++++-------------------- lang/calamares_sl.ts | 84 +++++++++++++++++-------------------- lang/calamares_sq.ts | 84 +++++++++++++++++-------------------- lang/calamares_sr.ts | 84 +++++++++++++++++-------------------- lang/calamares_sr@latin.ts | 84 +++++++++++++++++-------------------- lang/calamares_sv.ts | 84 +++++++++++++++++-------------------- lang/calamares_th.ts | 84 +++++++++++++++++-------------------- lang/calamares_tr_TR.ts | 84 +++++++++++++++++-------------------- lang/calamares_uk.ts | 84 +++++++++++++++++-------------------- lang/calamares_ur.ts | 84 +++++++++++++++++-------------------- lang/calamares_uz.ts | 84 +++++++++++++++++-------------------- lang/calamares_zh_CN.ts | 84 +++++++++++++++++-------------------- lang/calamares_zh_TW.ts | 84 +++++++++++++++++-------------------- 56 files changed, 2186 insertions(+), 2522 deletions(-) diff --git a/lang/calamares_ar.ts b/lang/calamares_ar.ts index bb68d29b5..af11201ae 100644 --- a/lang/calamares_ar.ts +++ b/lang/calamares_ar.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 أنشئ المستخدم %1 - + Create user <strong>%1</strong>. أنشئ المستخدم <strong>%1</strong>. - + Creating user %1. ينشئ المستخدم %1. - + Sudoers dir is not writable. دليل Sudoers لا يمكن الكتابة فيه. - + Cannot create sudoers file for writing. تعذّر إنشاء ملفّ sudoers للكتابة. - + Cannot chmod sudoers file. تعذّر تغيير صلاحيّات ملفّ sudores. - + Cannot open groups file for reading. تعذّر فتح ملفّ groups للقراءة. - - - Cannot create user %1. - تعذّر إنشاء المستخدم %1. - - - - useradd terminated with error code %1. - أُنهي useradd برمز الخطأ %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - أُنهي usermod برمز الخطأ %1. - - - - Cannot set home directory ownership for user %1. - تعذّر تعيين مالك دليل المستخدم ليكون %1. - - - - chown terminated with error code %1. - أُنهي chown برمز الخطأ %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name الاسم - + Description الوصف - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users المستخدمين diff --git a/lang/calamares_ast.ts b/lang/calamares_ast.ts index fb89c2a95..885bcf6c1 100644 --- a/lang/calamares_ast.ts +++ b/lang/calamares_ast.ts @@ -477,15 +477,21 @@ L'instalador colará y perderánse toles camudancies. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ L'instalador colará y perderánse toles camudancies. CreateUserJob - + Create user %1 Crear l'usuariu %1 - + Create user <strong>%1</strong>. Crearáse l'usuariu <strong>%1</strong>. - + Creating user %1. Creando l'usuariu %1. - + Sudoers dir is not writable. Nun pue escribise nel direutoriu sudoers. - + Cannot create sudoers file for writing. Nun pue crease'l ficheru sudoers pa escritura. - + Cannot chmod sudoers file. Nun pue facese chmod al ficheru sudoers. - + Cannot open groups file for reading. Nun pue abrise'l ficheru de grupos pa escritura. - - - Cannot create user %1. - Nun pue crease l'usuariu %1. - - - - useradd terminated with error code %1. - useradd finó col códigu de fallu %1. - - - - Cannot add user %1 to groups: %2. - Nun pue amestase l'usuariu %1 a los grupos: %2 - - - - usermod terminated with error code %1. - usermod finó col códigu de fallu %1. - - - - Cannot set home directory ownership for user %1. - Nun pue afitase la propiedá del direutoriu Home al usuariu %1. - - - - chown terminated with error code %1. - chown finó col códigu de fallu %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ L'instalador colará y perderánse toles camudancies. NetInstallPage - + Name Nome - + Description Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalación de rede. (Deshabilitáu: Nun pue dise en cata del llistáu de paquetes, comprueba la conexón de rede) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ L'instalador colará y perderánse toles camudancies. NetInstallViewStep - + Package selection Esbilla de paquetes @@ -1835,6 +1811,24 @@ L'instalador colará y perderánse toles camudancies. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Usuarios diff --git a/lang/calamares_be.ts b/lang/calamares_be.ts index 6b80bf3c5..7b5bb9a30 100644 --- a/lang/calamares_be.ts +++ b/lang/calamares_be.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_bg.ts b/lang/calamares_bg.ts index f3b4e2258..6700177fe 100644 --- a/lang/calamares_bg.ts +++ b/lang/calamares_bg.ts @@ -478,15 +478,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -651,70 +657,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Създай потребител %1 - + Create user <strong>%1</strong>. Създай потребител <strong>%1</strong>. - + Creating user %1. Създаване на потребител %1. - + Sudoers dir is not writable. Директорията sudoers е незаписваема. - + Cannot create sudoers file for writing. Не може да се създаде sudoers файл за записване. - + Cannot chmod sudoers file. Не може да се изпълни chmod върху sudoers файла. - + Cannot open groups file for reading. Не може да се отвори файла на групите за четене. - - - Cannot create user %1. - Не може да се създаде потребител %1. - - - - useradd terminated with error code %1. - useradd прекратен с грешка, код %1. - - - - Cannot add user %1 to groups: %2. - Не може да се добави потребител %1 към групи: %2. - - - - usermod terminated with error code %1. - usermod е прекратен с грешка %1. - - - - Cannot set home directory ownership for user %1. - Не може да се постави притежанието на домашната директория за потребител %1. - - - - chown terminated with error code %1. - chown прекратен с грешка, код %1. - DeletePartitionJob @@ -1203,22 +1179,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Име - + Description Описание - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1226,7 +1202,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Избор на пакети @@ -1836,6 +1812,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2521,7 +2515,7 @@ Output: UsersViewStep - + Users Потребители diff --git a/lang/calamares_ca.ts b/lang/calamares_ca.ts index 2048f6af5..1153ce587 100644 --- a/lang/calamares_ca.ts +++ b/lang/calamares_ca.ts @@ -477,15 +477,21 @@ L'instal·lador es tancarà i tots els canvis es perdran. CommandList - + + Could not run command. No s'ha pogut executar l'ordre. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. L'odre s'executa a l'entorn de l'amfitrió i necessita saber el camí de l'arrel, però no hi ha definit el punt de muntatge de l'arrel. + + + The command needs to know the user's name, but no username is defined. + L'ordre necessita saber el nom de l'usuari, però no s'ha definit cap nom d'usuari. + ContextualProcessJob @@ -650,70 +656,40 @@ L'instal·lador es tancarà i tots els canvis es perdran. CreateUserJob - + Create user %1 Crea l'usuari %1 - + Create user <strong>%1</strong>. Crea l'usuari <strong>%1</strong>. - + Creating user %1. Creant l'usuari %1. - + Sudoers dir is not writable. El directori de sudoers no té permisos d'escriptura. - + Cannot create sudoers file for writing. No es pot crear el fitxer sudoers a escriure. - + Cannot chmod sudoers file. No es pot fer chmod al fitxer sudoers. - + Cannot open groups file for reading. No es pot obrir el fitxer groups per ser llegit. - - - Cannot create user %1. - No es pot crear l'usuari %1. - - - - useradd terminated with error code %1. - useradd ha acabat amb el codi d'error %1. - - - - Cannot add user %1 to groups: %2. - No es pot afegir l'usuari %1 als grups: %2. - - - - usermod terminated with error code %1. - usermod ha acabat amb el codi d'error %1. - - - - Cannot set home directory ownership for user %1. - No es pot establir la propietat del directori personal a l'usuari %1. - - - - chown terminated with error code %1. - chown ha acabat amb el codi d'error %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ L'instal·lador es tancarà i tots els canvis es perdran. NetInstallPage - + Name Nom - + Description Descripció - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instal·lació per xarxa. (Inhabilitada: no es poden obtenir les llistes de paquets, comproveu la connexió.) - + Network Installation. (Disabled: Received invalid groups data) Instal·lació per xarxa. (Inhabilitat: dades de grups rebudes no vàlides) @@ -1225,7 +1201,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. NetInstallViewStep - + Package selection Selecció de paquets @@ -1835,6 +1811,24 @@ L'instal·lador es tancarà i tots els canvis es perdran. Aspecte i comportament + + PreserveFiles + + + Saving files for later ... + Desament dels fitxers per a més tard... + + + + No files configured to save for later. + No s'ha configurat cap fitxer per desar per a més tard. + + + + Not all of the configured files could be preserved. + No es poden conservar tots els fitxers configurats. + + ProcessResult @@ -2523,7 +2517,7 @@ Sortida: UsersViewStep - + Users Usuaris diff --git a/lang/calamares_cs_CZ.ts b/lang/calamares_cs_CZ.ts index 28a88e874..d105703c3 100644 --- a/lang/calamares_cs_CZ.ts +++ b/lang/calamares_cs_CZ.ts @@ -477,15 +477,21 @@ Instalační program bude ukončen a všechny změny ztraceny. CommandList - + + Could not run command. Nedaří se spustit příkaz. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Příkaz bude spuštěn v prostředí hostitele a potřebuje znát popis umístění kořene souborového systému. rootMountPoint ale není zadaný. + + + The command needs to know the user's name, but no username is defined. + Příkaz potřebuje znát uživatelské jméno, to ale zadáno nebylo. + ContextualProcessJob @@ -650,70 +656,40 @@ Instalační program bude ukončen a všechny změny ztraceny. CreateUserJob - + Create user %1 Vytvořit uživatele %1 - + Create user <strong>%1</strong>. Vytvořit uživatele <strong>%1</strong>. - + Creating user %1. Vytváří se účet pro uživatele %1. - + Sudoers dir is not writable. Nepodařilo se zapsat do složky sudoers.d. - + Cannot create sudoers file for writing. Nepodařilo se vytvořit soubor pro sudoers do kterého je třeba zapsat. - + Cannot chmod sudoers file. Nepodařilo se změnit přístupová práva (chmod) na souboru se sudoers. - + Cannot open groups file for reading. Nepodařilo se otevřít soubor groups pro čtení. - - - Cannot create user %1. - Nepodařilo se vytvořit uživatele %1. - - - - useradd terminated with error code %1. - Příkaz useradd ukončen s chybovým kódem %1. - - - - Cannot add user %1 to groups: %2. - Nepodařilo se přidat uživatele %1 do skupin: %2. - - - - usermod terminated with error code %1. - Příkaz usermod ukončen s chybovým kódem %1. - - - - Cannot set home directory ownership for user %1. - Nepodařilo se nastavit vlastnictví domovské složky pro uživatele %1. - - - - chown terminated with error code %1. - Příkaz chown ukončen s chybovým kódem %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Instalační program bude ukončen a všechny změny ztraceny. NetInstallPage - + Name Jméno - + Description Popis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Síťová instalace. (Vypnuto: Nedaří se stáhnout seznamy balíčků – zkontrolujte připojení k síti) - + Network Installation. (Disabled: Received invalid groups data) Síťová instalace. (Vypnuto: Obdrženy neplatné údaje skupin) @@ -1225,7 +1201,7 @@ Instalační program bude ukončen a všechny změny ztraceny. NetInstallViewStep - + Package selection Výběr balíčků @@ -1835,6 +1811,24 @@ Instalační program bude ukončen a všechny změny ztraceny. Vzhled a dojem z + + PreserveFiles + + + Saving files for later ... + Ukládání souborů pro pozdější využití… + + + + No files configured to save for later. + U žádných souborů nebylo nastaveno, že mají být uloženy pro pozdější využití. + + + + Not all of the configured files could be preserved. + Ne všechny nastavené soubory bylo možné zachovat. + + ProcessResult @@ -2523,7 +2517,7 @@ Výstup: UsersViewStep - + Users Uživatelé diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 070463376..8ee303ef1 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -477,15 +477,21 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CommandList - + + Could not run command. Kunne ikke køre kommando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CreateUserJob - + Create user %1 Opret bruger %1 - + Create user <strong>%1</strong>. Opret bruger <strong>%1</strong>. - + Creating user %1. Opretter bruger %1. - + Sudoers dir is not writable. Sudoers mappe er skrivebeskyttet. - + Cannot create sudoers file for writing. Kan ikke oprette sudoers fil til skrivning. - + Cannot chmod sudoers file. Kan ikke chmod sudoers fil. - + Cannot open groups file for reading. Kan ikke åbne gruppernes fil til læsning. - - - Cannot create user %1. - Kan ikke oprette bruger %1. - - - - useradd terminated with error code %1. - useradd stoppet med fejlkode %1. - - - - Cannot add user %1 to groups: %2. - Kan ikke tilføje bruger %1 til grupperne: %2. - - - - usermod terminated with error code %1. - usermod stoppet med fejlkode %1. - - - - Cannot set home directory ownership for user %1. - Kan ikke sætte hjemmemappens ejerskab for bruger %1. - - - - chown terminated with error code %1. - chown stoppet med fejlkode %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. NetInstallPage - + Name Navn - + Description Beskrivelse - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Netværksinstallation. (Deaktiveret: Kunne ikke hente pakkelister, tjek din netværksforbindelse) - + Network Installation. (Disabled: Received invalid groups data) Netværksinstallation. (Deaktiveret: Modtog ugyldige gruppers data) @@ -1225,7 +1201,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. NetInstallViewStep - + Package selection Valg af pakke @@ -1689,7 +1665,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. Can not create new partition - + Kan ikke oprette ny partition @@ -1835,6 +1811,24 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Udseende og fremtoning + + PreserveFiles + + + Saving files for later ... + Gemmer filer til senere ... + + + + No files configured to save for later. + Ingen filer er konfigureret til at blive gemt til senere. + + + + Not all of the configured files could be preserved. + Kunne ikke bevare alle de konfigurerede filer. + + ProcessResult @@ -2523,7 +2517,7 @@ Output: UsersViewStep - + Users Brugere diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index a19100da1..2022e398b 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -477,15 +477,21 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CommandList - + + Could not run command. Befehl konnte nicht ausgeführt werden. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Dieser Befehl wird im installierten System ausgeführt und muss daher den Root-Pfad kennen, jedoch wurde kein rootMountPoint definiert. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CreateUserJob - + Create user %1 Erstelle Benutzer %1 - + Create user <strong>%1</strong>. Erstelle Benutzer <strong>%1</strong>. - + Creating user %1. Erstelle Benutzer %1. - + Sudoers dir is not writable. Sudoers-Verzeichnis ist nicht beschreibbar. - + Cannot create sudoers file for writing. Kann sudoers-Datei nicht zum Schreiben erstellen. - + Cannot chmod sudoers file. Kann chmod nicht auf sudoers-Datei anwenden. - + Cannot open groups file for reading. Kann groups-Datei nicht zum Lesen öffnen. - - - Cannot create user %1. - Kann Benutzer %1 nicht erstellen. - - - - useradd terminated with error code %1. - useradd wurde mit Fehlercode %1 beendet. - - - - Cannot add user %1 to groups: %2. - Folgenden Gruppen konnte Benutzer %1 nicht hinzugefügt werden: %2. - - - - usermod terminated with error code %1. - Usermod beendet mit Fehlercode %1. - - - - Cannot set home directory ownership for user %1. - Kann Besitzrechte des Home-Verzeichnisses von Benutzer %1 nicht setzen. - - - - chown terminated with error code %1. - chown wurde mit Fehlercode %1 beendet. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. NetInstallPage - + Name Name - + Description Beschreibung - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Netzwerk-Installation. (Deaktiviert: Paketlisten nicht erreichbar, prüfe deine Netzwerk-Verbindung) - + Network Installation. (Disabled: Received invalid groups data) Netwerk-Installation. (Deaktiviert: Ungültige Gruppen-Daten eingegeben) @@ -1225,7 +1201,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. NetInstallViewStep - + Package selection Paketauswahl @@ -1835,6 +1811,24 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Erscheinungsbild + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2523,7 +2517,7 @@ Ausgabe: UsersViewStep - + Users Benutzer diff --git a/lang/calamares_el.ts b/lang/calamares_el.ts index 9fd438391..711c7a9e5 100644 --- a/lang/calamares_el.ts +++ b/lang/calamares_el.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Δημιουργία χρήστη %1 - + Create user <strong>%1</strong>. Δημιουργία χρήστη <strong>%1</strong>. - + Creating user %1. Δημιουργείται ο χρήστης %1. - + Sudoers dir is not writable. Ο κατάλογος sudoers δεν είναι εγγράψιμος. - + Cannot create sudoers file for writing. Δεν είναι δυνατή η δημιουργία του αρχείου sudoers για εγγραφή. - + Cannot chmod sudoers file. Δεν είναι δυνατό το chmod στο αρχείο sudoers. - + Cannot open groups file for reading. Δεν είναι δυνατό το άνοιγμα του αρχείου ομάδων για ανάγνωση. - - - Cannot create user %1. - Δεν είναι δυνατή η δημιουργία του χρήστη %1. - - - - useradd terminated with error code %1. - Το useradd τερματίστηκε με κωδικό σφάλματος %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - Δεν είναι δυνατός ο ορισμός της ιδιοκτησία του προσωπικού καταλόγου για τον χρήστη %1. - - - - chown terminated with error code %1. - Το chown τερματίστηκε με κωδικό σφάλματος %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Όνομα - + Description Περιγραφή - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Επιλογή πακέτου @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Χρήστες diff --git a/lang/calamares_en.ts b/lang/calamares_en.ts index 62a4b46c4..8bd9c5bda 100644 --- a/lang/calamares_en.ts +++ b/lang/calamares_en.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + The command needs to know the user's name, but no username is defined. + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Create user %1 - + Create user <strong>%1</strong>. Create user <strong>%1</strong>. - + Creating user %1. Creating user %1. - + Sudoers dir is not writable. Sudoers dir is not writable. - + Cannot create sudoers file for writing. Cannot create sudoers file for writing. - + Cannot chmod sudoers file. Cannot chmod sudoers file. - + Cannot open groups file for reading. Cannot open groups file for reading. - - - Cannot create user %1. - Cannot create user %1. - - - - useradd terminated with error code %1. - useradd terminated with error code %1. - - - - Cannot add user %1 to groups: %2. - Cannot add user %1 to groups: %2. - - - - usermod terminated with error code %1. - usermod terminated with error code %1. - - - - Cannot set home directory ownership for user %1. - Cannot set home directory ownership for user %1. - - - - chown terminated with error code %1. - chown terminated with error code %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Name - + Description Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Package selection @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. Look-and-Feel + + PreserveFiles + + + Saving files for later ... + Saving files for later ... + + + + No files configured to save for later. + No files configured to save for later. + + + + Not all of the configured files could be preserved. + Not all of the configured files could be preserved. + + ProcessResult @@ -2523,7 +2517,7 @@ Output: UsersViewStep - + Users Users diff --git a/lang/calamares_en_GB.ts b/lang/calamares_en_GB.ts index 9698dd084..025036232 100644 --- a/lang/calamares_en_GB.ts +++ b/lang/calamares_en_GB.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Sudoers dir is not writable. - + Cannot create sudoers file for writing. Cannot create sudoers file for writing. - + Cannot chmod sudoers file. Cannot chmod sudoers file. - + Cannot open groups file for reading. Cannot open groups file for reading. - - - Cannot create user %1. - Cannot create user %1. - - - - useradd terminated with error code %1. - useradd terminated with error code %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod terminated with error code %1. - - - - Cannot set home directory ownership for user %1. - Cannot set home directory ownership for user %1. - - - - chown terminated with error code %1. - chown terminated with error code %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Users diff --git a/lang/calamares_eo.ts b/lang/calamares_eo.ts index f057b5aca..ff2e18047 100644 --- a/lang/calamares_eo.ts +++ b/lang/calamares_eo.ts @@ -477,15 +477,21 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1202,22 +1178,22 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 909c5e4ca..47a1e6b06 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -478,15 +478,21 @@ Saldrá del instalador y se perderán todos los cambios. CommandList - + + Could not run command. No se pudo ejecutar el comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -651,70 +657,40 @@ Saldrá del instalador y se perderán todos los cambios. CreateUserJob - + Create user %1 Crear usuario %1 - + Create user <strong>%1</strong>. Crear usuario <strong>%1</strong>. - + Creating user %1. Creando usuario %1. - + Sudoers dir is not writable. El directorio de sudoers no dispone de permisos de escritura. - + Cannot create sudoers file for writing. No es posible crear el archivo de escritura para sudoers. - + Cannot chmod sudoers file. No es posible modificar los permisos de sudoers. - + Cannot open groups file for reading. No es posible abrir el archivo de grupos del sistema. - - - Cannot create user %1. - No se puede crear el usuario %1. - - - - useradd terminated with error code %1. - useradd terminó con código de error %1. - - - - Cannot add user %1 to groups: %2. - No se puede añadir al usuario %1 a los grupos: %2. - - - - usermod terminated with error code %1. - usermod finalizó con un código de error %1. - - - - Cannot set home directory ownership for user %1. - No se puede dar la propiedad del directorio home al usuario %1 - - - - chown terminated with error code %1. - chown terminó con código de error %1. - DeletePartitionJob @@ -1203,22 +1179,22 @@ Saldrá del instalador y se perderán todos los cambios. NetInstallPage - + Name Nombre - + Description Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalación a través de la Red. (Desactivada: no se ha podido obtener una lista de paquetes, comprueba tu conexión a la red) - + Network Installation. (Disabled: Received invalid groups data) Instalación de red. (Deshabilitada: Se recibieron grupos de datos no válidos) @@ -1226,7 +1202,7 @@ Saldrá del instalador y se perderán todos los cambios. NetInstallViewStep - + Package selection Selección de paquetes @@ -1836,6 +1812,24 @@ Saldrá del instalador y se perderán todos los cambios. Apariencia + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2524,7 +2518,7 @@ Salida: UsersViewStep - + Users Usuarios diff --git a/lang/calamares_es_MX.ts b/lang/calamares_es_MX.ts index ea1fff2c5..f6e76dc9a 100644 --- a/lang/calamares_es_MX.ts +++ b/lang/calamares_es_MX.ts @@ -480,15 +480,21 @@ El instalador terminará y se perderán todos los cambios. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -653,70 +659,40 @@ El instalador terminará y se perderán todos los cambios. CreateUserJob - + Create user %1 Crear usuario %1 - + Create user <strong>%1</strong>. Crear usuario <strong>%1</strong>. - + Creating user %1. Creando cuenta de susuario %1. - + Sudoers dir is not writable. El directorio "Sudoers" no es editable. - + Cannot create sudoers file for writing. No se puede crear el archivo sudoers para editarlo. - + Cannot chmod sudoers file. No se puede aplicar chmod al archivo sudoers. - + Cannot open groups file for reading. No se puede abrir el archivo groups para lectura. - - - Cannot create user %1. - No se puede crear el usuario %1. - - - - useradd terminated with error code %1. - useradd ha finalizado con elcódigo de error %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod ha terminado con el código de error %1 - - - - Cannot set home directory ownership for user %1. - No se pueden aplicar permisos de propiedad a la carpeta home para el usuario %1. - - - - chown terminated with error code %1. - chown ha finalizado con elcódigo de error %1. - DeletePartitionJob @@ -1205,22 +1181,22 @@ El instalador terminará y se perderán todos los cambios. NetInstallPage - + Name Nombre - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1228,7 +1204,7 @@ El instalador terminará y se perderán todos los cambios. NetInstallViewStep - + Package selection @@ -1838,6 +1814,24 @@ El instalador terminará y se perderán todos los cambios. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2524,7 +2518,7 @@ Output: UsersViewStep - + Users Usuarios diff --git a/lang/calamares_es_PR.ts b/lang/calamares_es_PR.ts index 1208d9a82..7abee6088 100644 --- a/lang/calamares_es_PR.ts +++ b/lang/calamares_es_PR.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_et.ts b/lang/calamares_et.ts index 6fb5a0625..e56118622 100644 --- a/lang/calamares_et.ts +++ b/lang/calamares_et.ts @@ -477,15 +477,21 @@ Installija sulgub ja kõik muutused kaovad. CommandList - + + Could not run command. Käsku ei saanud käivitada. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Installija sulgub ja kõik muutused kaovad. CreateUserJob - + Create user %1 Loo kasutaja %1 - + Create user <strong>%1</strong>. Loo kasutaja <strong>%1</strong>. - + Creating user %1. Loon kasutajat %1. - + Sudoers dir is not writable. Sudoja tee ei ole kirjutatav. - + Cannot create sudoers file for writing. Sudoja faili ei saa kirjutamiseks luua. - + Cannot chmod sudoers file. Sudoja faili ei saa chmod-ida. - + Cannot open groups file for reading. Grupifaili ei saa lugemiseks avada. - - - Cannot create user %1. - Kasutajat %1 ei saa luua. - - - - useradd terminated with error code %1. - useradd peatatud veakoodiga %1. - - - - Cannot add user %1 to groups: %2. - Kasutajat %1 ei saa lisada gruppidesse: %2. - - - - usermod terminated with error code %1. - usermod peatatud veakoodiga %1. - - - - Cannot set home directory ownership for user %1. - Kasutajale %1 ei saa kodukausta omandust määrata. - - - - chown terminated with error code %1. - chown peatatud veakoodiga %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Installija sulgub ja kõik muutused kaovad. NetInstallPage - + Name Nimi - + Description Kirjeldus - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Võrguinstall. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust) - + Network Installation. (Disabled: Received invalid groups data) Võrguinstall. (Keelatud: vastu võetud sobimatud grupiandmed) @@ -1225,7 +1201,7 @@ Installija sulgub ja kõik muutused kaovad. NetInstallViewStep - + Package selection Paketivalik @@ -1835,6 +1811,24 @@ Installija sulgub ja kõik muutused kaovad. Välimus-ja-tunnetus + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2523,7 +2517,7 @@ Väljund: UsersViewStep - + Users Kasutajad diff --git a/lang/calamares_eu.ts b/lang/calamares_eu.ts index b904080dc..7c40917d2 100644 --- a/lang/calamares_eu.ts +++ b/lang/calamares_eu.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Sortu %1 erabiltzailea - + Create user <strong>%1</strong>. - + Creating user %1. %1 erabiltzailea sortzen. - + Sudoers dir is not writable. Ezin da sudoers direktorioan idatzi. - + Cannot create sudoers file for writing. Ezin da sudoers fitxategia sortu bertan idazteko. - + Cannot chmod sudoers file. Ezin zaio chmod egin sudoers fitxategiari. - + Cannot open groups file for reading. Ezin da groups fitxategia ireki berau irakurtzeko. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Izena - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users Erabiltzaileak diff --git a/lang/calamares_fa.ts b/lang/calamares_fa.ts index bf4a89baf..60e59dbc1 100644 --- a/lang/calamares_fa.ts +++ b/lang/calamares_fa.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_fi_FI.ts b/lang/calamares_fi_FI.ts index b4356ffd3..5e89d75f9 100644 --- a/lang/calamares_fi_FI.ts +++ b/lang/calamares_fi_FI.ts @@ -477,15 +477,21 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CreateUserJob - + Create user %1 Luo käyttäjä %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Ei voitu kirjoittaa Sudoers -hakemistoon. - + Cannot create sudoers file for writing. Ei voida luoda sudoers -tiedostoa kirjoitettavaksi. - + Cannot chmod sudoers file. Ei voida tehdä käyttöoikeuden muutosta sudoers -tiedostolle. - + Cannot open groups file for reading. Ei voida avata ryhmätiedostoa luettavaksi. - - - Cannot create user %1. - Käyttäjää %1 ei voi luoda. - - - - useradd terminated with error code %1. - useradd päättyi virhekoodilla %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod päättyi virhekoodilla %1. - - - - Cannot set home directory ownership for user %1. - Ei voida asettaa kotihakemiston omistusoikeutta käyttäjälle %1. - - - - chown terminated with error code %1. - chown päättyi virhekoodilla %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. NetInstallPage - + Name Nimi - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Käyttäjät diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index dbc00a823..f9796a5c9 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -477,15 +477,21 @@ L'installateur se fermera et les changements seront perdus. CommandList - + + Could not run command. La commande n'a pas pu être exécutée. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ L'installateur se fermera et les changements seront perdus. CreateUserJob - + Create user %1 Créer l'utilisateur %1 - + Create user <strong>%1</strong>. Créer l'utilisateur <strong>%1</strong>. - + Creating user %1. Création de l'utilisateur %1. - + Sudoers dir is not writable. Le répertoire Superutilisateur n'est pas inscriptible. - + Cannot create sudoers file for writing. Impossible de créer le fichier sudoers en écriture. - + Cannot chmod sudoers file. Impossible d'exécuter chmod sur le fichier sudoers. - + Cannot open groups file for reading. Impossible d'ouvrir le fichier groups en lecture. - - - Cannot create user %1. - Impossible de créer l'utilisateur %1. - - - - useradd terminated with error code %1. - useradd s'est terminé avec le code erreur %1. - - - - Cannot add user %1 to groups: %2. - Impossible d'ajouter l'utilisateur %1 au groupe %2. - - - - usermod terminated with error code %1. - usermod s'est terminé avec le code erreur %1. - - - - Cannot set home directory ownership for user %1. - Impossible de définir le propriétaire du répertoire home pour l'utilisateur %1. - - - - chown terminated with error code %1. - chown s'est terminé avec le code erreur %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ L'installateur se fermera et les changements seront perdus. NetInstallPage - + Name Nom - + Description Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Installation par le réseau (Désactivée : impossible de récupérer leslistes de paquets, vérifiez la connexion réseau) - + Network Installation. (Disabled: Received invalid groups data) Installation par le réseau. (Désactivée : données de groupes reçues invalides) @@ -1225,7 +1201,7 @@ L'installateur se fermera et les changements seront perdus. NetInstallViewStep - + Package selection Sélection des paquets @@ -1836,6 +1812,24 @@ Vous pouvez obtenir un aperçu des différentes apparences en cliquant sur celle Apparence + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2524,7 +2518,7 @@ Sortie UsersViewStep - + Users Utilisateurs diff --git a/lang/calamares_fr_CH.ts b/lang/calamares_fr_CH.ts index 7ec7a710e..3b220a4e9 100644 --- a/lang/calamares_fr_CH.ts +++ b/lang/calamares_fr_CH.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_gl.ts b/lang/calamares_gl.ts index 28cb9a787..9a2e365c0 100644 --- a/lang/calamares_gl.ts +++ b/lang/calamares_gl.ts @@ -478,15 +478,21 @@ O instalador pecharase e perderanse todos os cambios. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -651,70 +657,40 @@ O instalador pecharase e perderanse todos os cambios. CreateUserJob - + Create user %1 Crear o usuario %1 - + Create user <strong>%1</strong>. Crear usario <strong>%1</strong> - + Creating user %1. Creación do usuario %1. - + Sudoers dir is not writable. O directorio sudoers non ten permisos de escritura. - + Cannot create sudoers file for writing. Non foi posible crear o arquivo de sudoers. - + Cannot chmod sudoers file. Non se puideron cambiar os permisos do arquivo sudoers. - + Cannot open groups file for reading. Non foi posible ler o arquivo grupos. - - - Cannot create user %1. - Non foi posible crear o usuario %1. - - - - useradd terminated with error code %1. - useradd terminou co código de erro %1. - - - - Cannot add user %1 to groups: %2. - Non foi posible engadir o usuario %1 ós grupos: %2. - - - - usermod terminated with error code %1. - usermod terminou co código de erro %1. - - - - Cannot set home directory ownership for user %1. - Non foi posible asignar o directorio home como propio para o usuario %1. - - - - chown terminated with error code %1. - chown terminou co código de erro %1. - DeletePartitionJob @@ -1203,22 +1179,22 @@ O instalador pecharase e perderanse todos os cambios. NetInstallPage - + Name Nome - + Description Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Installación por rede. (Desactivadas. Non se pudo recupera-la lista de pacotes, comprobe a sua conexión a rede) - + Network Installation. (Disabled: Received invalid groups data) @@ -1226,7 +1202,7 @@ O instalador pecharase e perderanse todos os cambios. NetInstallViewStep - + Package selection Selección de pacotes. @@ -1836,6 +1812,24 @@ O instalador pecharase e perderanse todos os cambios. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2521,7 +2515,7 @@ Output: UsersViewStep - + Users Usuarios diff --git a/lang/calamares_gu.ts b/lang/calamares_gu.ts index e53370b9e..f5fe5932d 100644 --- a/lang/calamares_gu.ts +++ b/lang/calamares_gu.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts index ef788f793..da62f86d6 100644 --- a/lang/calamares_he.ts +++ b/lang/calamares_he.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 צור משתמש %1 - + Create user <strong>%1</strong>. צור משתמש <strong>%1</strong>. - + Creating user %1. יוצר משתמש %1. - + Sudoers dir is not writable. תיקיית מנהלי המערכת לא ניתנת לכתיבה. - + Cannot create sudoers file for writing. לא ניתן ליצור את קובץ מנהלי המערכת לכתיבה. - + Cannot chmod sudoers file. לא ניתן לשנות את מאפייני קובץ מנהלי המערכת. - + Cannot open groups file for reading. לא ניתן לפתוח את קובץ הקבוצות לקריאה. - - - Cannot create user %1. - לא ניתן ליצור משתמש %1. - - - - useradd terminated with error code %1. - פקודת יצירת המשתמש, useradd, נכשלה עם קוד יציאה %1. - - - - Cannot add user %1 to groups: %2. - לא ניתן להוסיף את המשתמש %1 לקבוצות: %2. - - - - usermod terminated with error code %1. - פקודת שינוי מאפייני המשתמש, usermod, נכשלה עם קוד יציאה %1. - - - - Cannot set home directory ownership for user %1. - לא ניתן להגדיר בעלות על תיקיית הבית עבור משתמש %1. - - - - chown terminated with error code %1. - פקודת שינוי בעלות, chown, נכשלה עם קוד יציאה %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name שם - + Description תיאור - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) התקנת רשת. (מנוטרלת: לא ניתן לאחזר רשימות של חבילות תוכנה, אנא בדוק את חיבורי הרשת) - + Network Installation. (Disabled: Received invalid groups data) התקנה מהרשת. (מנוטרל: התקבל מידע שגוי בנושא הקבוצות) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection בחירת חבילות @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users משתמשים diff --git a/lang/calamares_hi.ts b/lang/calamares_hi.ts index 71e7ce3e8..eab89c1f4 100644 --- a/lang/calamares_hi.ts +++ b/lang/calamares_hi.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. कमांड run नहीं की जा सकी। - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_hr.ts b/lang/calamares_hr.ts index 267fbe127..6fc3c0645 100644 --- a/lang/calamares_hr.ts +++ b/lang/calamares_hr.ts @@ -477,15 +477,21 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CommandList - + + Could not run command. Ne mogu pokrenuti naredbu. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Naredba se pokreće u okruženju domaćina i treba znati korijenski put, međutim, rootMountPoint nije definiran. + + + The command needs to know the user's name, but no username is defined. + Naredba treba znati ime korisnika, ali nije definirano korisničko ime. + ContextualProcessJob @@ -650,70 +656,40 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CreateUserJob - + Create user %1 Stvori korisnika %1 - + Create user <strong>%1</strong>. Stvori korisnika <strong>%1</strong>. - + Creating user %1. Stvaram korisnika %1. - + Sudoers dir is not writable. Po sudoers direktoriju nije moguće spremati. - + Cannot create sudoers file for writing. Ne mogu stvoriti sudoers datoteku za pisanje. - + Cannot chmod sudoers file. Ne mogu chmod sudoers datoteku. - + Cannot open groups file for reading. Ne mogu otvoriti groups datoteku za čitanje. - - - Cannot create user %1. - Ne mogu stvoriti korisnika %1. - - - - useradd terminated with error code %1. - useradd je prestao s radom sa greškom koda %1. - - - - Cannot add user %1 to groups: %2. - Ne mogu dodati korisnika %1 u grupe: %2. - - - - usermod terminated with error code %1. - korisnički mod je prekinut s greškom %1. - - - - Cannot set home directory ownership for user %1. - Ne mogu postaviti vlasništvo radnog direktorija za korisnika %1. - - - - chown terminated with error code %1. - chown je prestao s radom sa greškom koda %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. NetInstallPage - + Name Ime - + Description Opis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Mrežna instalacija. (Onemogućeno: Ne mogu dohvatiti listu paketa, provjerite da li ste spojeni na mrežu) - + Network Installation. (Disabled: Received invalid groups data) Mrežna instalacija. (Onemogućeno: Primanje nevažećih podataka o grupama) @@ -1225,7 +1201,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. NetInstallViewStep - + Package selection Odabir paketa @@ -1835,6 +1811,24 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Izgled + + PreserveFiles + + + Saving files for later ... + Spremanje datoteka za kasnije ... + + + + No files configured to save for later. + Nema datoteka konfiguriranih za spremanje za kasnije. + + + + Not all of the configured files could be preserved. + Nije moguće sačuvati sve konfigurirane datoteke. + + ProcessResult @@ -2523,7 +2517,7 @@ Izlaz: UsersViewStep - + Users Korisnici diff --git a/lang/calamares_hu.ts b/lang/calamares_hu.ts index c5d3aeb76..6def290b1 100644 --- a/lang/calamares_hu.ts +++ b/lang/calamares_hu.ts @@ -478,15 +478,21 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l CommandList - + + Could not run command. A parancsot nem lehet futtatni. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -651,70 +657,40 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l CreateUserJob - + Create user %1 %1 nevű felhasználó létrehozása - + Create user <strong>%1</strong>. <strong>%1</strong> nevű felhasználó létrehozása. - + Creating user %1. %1 nevű felhasználó létrehozása - + Sudoers dir is not writable. Sudoers mappa nem írható. - + Cannot create sudoers file for writing. Nem lehet sudoers fájlt létrehozni írásra. - + Cannot chmod sudoers file. Nem lehet a sudoers fájlt "chmod" -olni. - + Cannot open groups file for reading. Nem lehet a groups fájlt megnyitni olvasásra. - - - Cannot create user %1. - Nem lehet a %1 felhasználót létrehozni. - - - - useradd terminated with error code %1. - useradd megszakítva %1 hibakóddal. - - - - Cannot add user %1 to groups: %2. - Nem lehet a %1 felhasználót létrehozni a %2 csoportban. - - - - usermod terminated with error code %1. - usermod megszakítva %1 hibakóddal. - - - - Cannot set home directory ownership for user %1. - Nem lehet a home könyvtár tulajdonos jogosultságát beállítani %1 felhasználónak. - - - - chown terminated with error code %1. - chown megszakítva %1 hibakóddal. - DeletePartitionJob @@ -1203,22 +1179,22 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l NetInstallPage - + Name Név - + Description Leírás - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Hálózati telepítés. (Kikapcsolva: A csomagokat nem lehet letölteni, ellenőrizd a hálózati kapcsolatot) - + Network Installation. (Disabled: Received invalid groups data) Hálózati Telepítés. (Letiltva: Hibás adat csoportok fogadva) @@ -1226,7 +1202,7 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l NetInstallViewStep - + Package selection Csomag választása @@ -1836,6 +1812,24 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2522,7 +2516,7 @@ Calamares hiba %1. UsersViewStep - + Users Felhasználók diff --git a/lang/calamares_id.ts b/lang/calamares_id.ts index 0c5816d82..ebfb416c3 100644 --- a/lang/calamares_id.ts +++ b/lang/calamares_id.ts @@ -479,15 +479,21 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. CommandList - + + Could not run command. Tidak dapat menjalankan perintah - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -652,70 +658,40 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. CreateUserJob - + Create user %1 Buat pengguna %1 - + Create user <strong>%1</strong>. Buat pengguna <strong>%1</strong>. - + Creating user %1. Membuat pengguna %1. - + Sudoers dir is not writable. Direktori sudoers tidak dapat ditulis. - + Cannot create sudoers file for writing. Tidak dapat membuat berkas sudoers untuk ditulis. - + Cannot chmod sudoers file. Tidak dapat chmod berkas sudoers. - + Cannot open groups file for reading. Tidak dapat membuka berkas groups untuk dibaca. - - - Cannot create user %1. - Tidak dapat membuat pengguna %1. - - - - useradd terminated with error code %1. - useradd dihentikan dengan kode kesalahan %1. - - - - Cannot add user %1 to groups: %2. - Tak bisa menambahkan pengguna %1 ke kelompok: %2. - - - - usermod terminated with error code %1. - usermod terhenti dengan kode galat %1. - - - - Cannot set home directory ownership for user %1. - Tidak dapat menyetel kepemilikan direktori home untuk pengguna %1. - - - - chown terminated with error code %1. - chown dihentikan dengan kode kesalahan %1. - DeletePartitionJob @@ -1204,22 +1180,22 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. NetInstallPage - + Name Nama - + Description Deskripsi - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Pemasangan Jaringan. (Dinonfungsikan: Tak mampu menarik daftar paket, periksa sambungan jaringanmu) - + Network Installation. (Disabled: Received invalid groups data) Pemasangan jaringan. (Menonaktifkan: Penerimaan kelompok data yang tidak sah) @@ -1227,7 +1203,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. NetInstallViewStep - + Package selection Pemilihan paket @@ -1837,6 +1813,24 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Lihat-dan-Rasakan + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2525,7 +2519,7 @@ Keluaran: UsersViewStep - + Users Pengguna diff --git a/lang/calamares_is.ts b/lang/calamares_is.ts index cec03d0c2..5a377c5f1 100644 --- a/lang/calamares_is.ts +++ b/lang/calamares_is.ts @@ -477,15 +477,21 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CreateUserJob - + Create user %1 Búa til notanda %1 - + Create user <strong>%1</strong>. Búa til notanda <strong>%1</strong>. - + Creating user %1. Bý til notanda %1. - + Sudoers dir is not writable. Sudoers dir er ekki skrifanleg. - + Cannot create sudoers file for writing. Get ekki búið til sudoers skrá til að lesa. - + Cannot chmod sudoers file. Get ekki chmod sudoers skrá. - + Cannot open groups file for reading. Get ekki opnað hópa skrá til að lesa. - - - Cannot create user %1. - Get ekki búið til notanda %1. - - - - useradd terminated with error code %1. - useradd endaði með villu kóðann %1. - - - - Cannot add user %1 to groups: %2. - Get ekki bætt við notanda %1 til hóps: %2. - - - - usermod terminated with error code %1. - usermod endaði með villu kóðann %1. - - - - Cannot set home directory ownership for user %1. - Get ekki stillt heimasvæðis eignarhald fyrir notandann %1. - - - - chown terminated with error code %1. - chown endaði með villu kóðann %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. NetInstallPage - + Name Heiti - + Description Lýsing - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. NetInstallViewStep - + Package selection Valdir pakkar @@ -1835,6 +1811,24 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Notendur diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index e691e62b6..889f60c97 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -477,15 +477,21 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno CommandList - + + Could not run command. Impossibile eseguire il comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno CreateUserJob - + Create user %1 Creare l'utente %1 - + Create user <strong>%1</strong>. Creare l'utente <strong>%1</strong> - + Creating user %1. Creazione utente %1. - + Sudoers dir is not writable. La cartella sudoers non è scrivibile. - + Cannot create sudoers file for writing. Impossibile creare il file sudoers in scrittura. - + Cannot chmod sudoers file. Impossibile eseguire chmod sul file sudoers. - + Cannot open groups file for reading. Impossibile aprire il file groups in lettura. - - - Cannot create user %1. - Impossibile creare l'utente %1. - - - - useradd terminated with error code %1. - useradd si è chiuso con codice di errore %1. - - - - Cannot add user %1 to groups: %2. - Impossibile aggiungere l'utente %1 ai gruppi: %2. - - - - usermod terminated with error code %1. - usermod è terminato con codice di errore: %1. - - - - Cannot set home directory ownership for user %1. - Impossibile impostare i diritti sulla cartella home per l'utente %1. - - - - chown terminated with error code %1. - chown si è chiuso con codice di errore %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno NetInstallPage - + Name Nome - + Description Descrizione - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Installazione di rete. (Disabilitata: impossibile recuperare le liste dei pacchetti, controllare la connessione di rete) - + Network Installation. (Disabled: Received invalid groups data) Installazione di rete. (Disabilitata: Ricevuti dati non validi sui gruppi) @@ -1225,7 +1201,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno NetInstallViewStep - + Package selection Selezione del pacchetto @@ -1835,6 +1811,24 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Tema + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2522,7 +2516,7 @@ Output: UsersViewStep - + Users Utenti diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index 589d66db2..e28b72dc9 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. コマンドを実行できませんでした。 - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 ユーザー %1 を作成 - + Create user <strong>%1</strong>. ユーザー <strong>%1</strong> を作成。 - + Creating user %1. ユーザー %1 を作成中。 - + Sudoers dir is not writable. sudoers ディレクトリは書き込み可能ではありません。 - + Cannot create sudoers file for writing. sudoersファイルを作成できません。 - + Cannot chmod sudoers file. sudoersファイルの権限を変更できません。 - + Cannot open groups file for reading. groups ファイルを読み込めません。 - - - Cannot create user %1. - ユーザー %1 を作成できません。 - - - - useradd terminated with error code %1. - エラーコード %1 によりuseraddを中止しました。 - - - - Cannot add user %1 to groups: %2. - ユーザー %1 をグループに追加することができません。: %2 - - - - usermod terminated with error code %1. - エラーコード %1 によりusermodが停止しました。 - - - - Cannot set home directory ownership for user %1. - ユーザー %1 のホームディレクトリの所有者を設定できません。 - - - - chown terminated with error code %1. - エラーコード %1 によりchown は中止しました。 - DeletePartitionJob @@ -1203,22 +1179,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name 名前 - + Description 説明 - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) ネットワークインストール。(無効: パッケージリストを取得できません。ネットワーク接続を確認してください。) - + Network Installation. (Disabled: Received invalid groups data) ネットワークインストール (不可: 無効なグループデータを受け取りました) @@ -1226,7 +1202,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection パッケージの選択 @@ -1836,6 +1812,24 @@ The installer will quit and all changes will be lost. Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2524,7 +2518,7 @@ Output: UsersViewStep - + Users ユーザー情報 diff --git a/lang/calamares_kk.ts b/lang/calamares_kk.ts index b63a348ae..730129017 100644 --- a/lang/calamares_kk.ts +++ b/lang/calamares_kk.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users Пайдаланушылар diff --git a/lang/calamares_kn.ts b/lang/calamares_kn.ts index e67824b9c..5c8be86ba 100644 --- a/lang/calamares_kn.ts +++ b/lang/calamares_kn.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_lo.ts b/lang/calamares_lo.ts index ba18f4e33..13eddda4b 100644 --- a/lang/calamares_lo.ts +++ b/lang/calamares_lo.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts index 280248bd5..24daa7a86 100644 --- a/lang/calamares_lt.ts +++ b/lang/calamares_lt.ts @@ -477,15 +477,21 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CommandList - + + Could not run command. Nepavyko paleisti komandos. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Komanda yra vykdoma serverio aplinkoje ir turi žinoti šaknies kelią, tačiau nėra apibrėžtas joks rootMountPoint. + + + The command needs to know the user's name, but no username is defined. + Komanda turi žinoti naudotojo vardą, tačiau nebuvo apibrėžtas joks naudotojo vardas. + ContextualProcessJob @@ -650,70 +656,40 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CreateUserJob - + Create user %1 Sukurti naudotoją %1 - + Create user <strong>%1</strong>. Sukurti naudotoją <strong>%1</strong>. - + Creating user %1. Kuriamas naudotojas %1. - + Sudoers dir is not writable. Nepavyko įrašymui sukurti katalogo sudoers. - + Cannot create sudoers file for writing. Nepavyko įrašymui sukurti failo sudoers. - + Cannot chmod sudoers file. Nepavyko pritaikyti chmod failui sudoers. - + Cannot open groups file for reading. Nepavyko skaitymui atverti grupių failo. - - - Cannot create user %1. - Nepavyko sukurti naudotojo %1. - - - - useradd terminated with error code %1. - komanda useradd nutraukė darbą dėl klaidos kodo %1. - - - - Cannot add user %1 to groups: %2. - Nepavyksta pridėti naudotojo %1 į grupes: %2. - - - - usermod terminated with error code %1. - usermod nutraukta su klaidos kodu %1. - - - - Cannot set home directory ownership for user %1. - Nepavyko nustatyti home katalogo nuosavybės naudotojui %1. - - - - chown terminated with error code %1. - komanda chown nutraukė darbą dėl klaidos kodo %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. NetInstallPage - + Name Pavadinimas - + Description Aprašas - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Tinklo diegimas. (Išjungta: Nepavyksta gauti paketų sąrašus, patikrinkite savo tinklo ryšį) - + Network Installation. (Disabled: Received invalid groups data) Tinklo diegimas. (Išjungtas: Gauti neteisingi grupių duomenys) @@ -1225,7 +1201,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. NetInstallViewStep - + Package selection Paketų pasirinkimas @@ -1835,6 +1811,24 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Išvaizda ir turinys + + PreserveFiles + + + Saving files for later ... + Įrašomi failai vėlesniam naudojimui ... + + + + No files configured to save for later. + Nėra sukonfigūruota įrašyti jokius failus vėlesniam naudojimui. + + + + Not all of the configured files could be preserved. + Ne visus iš sukonfigūruotų failų pavyko išsaugoti. + + ProcessResult @@ -2523,7 +2517,7 @@ Išvestis: UsersViewStep - + Users Naudotojai diff --git a/lang/calamares_mr.ts b/lang/calamares_mr.ts index 21d468067..46700c6fd 100644 --- a/lang/calamares_mr.ts +++ b/lang/calamares_mr.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. -  %1 या एरर कोडसहित usermod रद्द केले. - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users वापरकर्ते diff --git a/lang/calamares_nb.ts b/lang/calamares_nb.ts index 6dfebb4ff..e2279ec0d 100644 --- a/lang/calamares_nb.ts +++ b/lang/calamares_nb.ts @@ -477,15 +477,21 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CreateUserJob - + Create user %1 Opprett bruker %1 - + Create user <strong>%1</strong>. - + Creating user %1. Oppretter bruker %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - Klarte ikke opprette bruker %1 - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1202,22 +1178,22 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Brukere diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts index 090ca9d9e..eadf349a9 100644 --- a/lang/calamares_nl.ts +++ b/lang/calamares_nl.ts @@ -477,15 +477,21 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CreateUserJob - + Create user %1 Maak gebruiker %1 - + Create user <strong>%1</strong>. Maak gebruiker <strong>%1</strong> - + Creating user %1. Gebruiker %1 aanmaken. - + Sudoers dir is not writable. Sudoers map is niet schrijfbaar. - + Cannot create sudoers file for writing. Kan het bestand sudoers niet aanmaken. - + Cannot chmod sudoers file. chmod sudoers gefaald. - + Cannot open groups file for reading. Kan het bestand groups niet lezen. - - - Cannot create user %1. - Kan gebruiker %1 niet aanmaken. - - - - useradd terminated with error code %1. - useradd is gestopt met foutcode %1. - - - - Cannot add user %1 to groups: %2. - Kan gebruiker %1 niet toevoegen aan groepen: %2. - - - - usermod terminated with error code %1. - usermod is gestopt met foutcode %1. - - - - Cannot set home directory ownership for user %1. - Kan eigendomsrecht gebruikersmap niet instellen voor gebruiker %1. - - - - chown terminated with error code %1. - chown is gestopt met foutcode %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. NetInstallPage - + Name Naam - + Description Beschrijving - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Netwerkinstallatie. (Uitgeschakeld: kon de pakketlijsten niet binnenhalen, controleer de netwerkconnectie) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. NetInstallViewStep - + Package selection Pakketkeuze @@ -1835,6 +1811,24 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Gebruikers diff --git a/lang/calamares_pl.ts b/lang/calamares_pl.ts index a0473e590..ea5512300 100644 --- a/lang/calamares_pl.ts +++ b/lang/calamares_pl.ts @@ -477,15 +477,21 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CommandList - + + Could not run command. Nie można wykonać polecenia. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Polecenie uruchomione jest w środowisku hosta i musi znać ścieżkę katalogu głównego, jednakże nie został określony punkt montowania katalogu głównego (root). + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CreateUserJob - + Create user %1 Utwórz użytkownika %1 - + Create user <strong>%1</strong>. Utwórz użytkownika <strong>%1</strong>. - + Creating user %1. Tworzenie użytkownika %1. - + Sudoers dir is not writable. Katalog sudoers nie ma prawa do zapisu. - + Cannot create sudoers file for writing. Nie można utworzyć pliku sudoers z możliwością zapisu. - + Cannot chmod sudoers file. Nie można wykonać chmod na pliku sudoers. - + Cannot open groups file for reading. Nie można otworzyć pliku groups do odczytu. - - - Cannot create user %1. - Nie można utworzyć użytkownika %1. - - - - useradd terminated with error code %1. - Polecenie useradd zostało przerwane z kodem błędu %1. - - - - Cannot add user %1 to groups: %2. - Nie można dodać użytkownika %1 do grup: %2 - - - - usermod terminated with error code %1. - usermod zakończony z kodem błędu %1. - - - - Cannot set home directory ownership for user %1. - Nie można ustawić właściciela katalogu domowego dla użytkownika %1. - - - - chown terminated with error code %1. - Polecenie chown zostało przerwane z kodem błędu %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. NetInstallPage - + Name Nazwa - + Description Opis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalacja sieciowa. (Wyłączona: Nie można pobrać listy pakietów, sprawdź swoje połączenie z siecią) - + Network Installation. (Disabled: Received invalid groups data) Instalacja sieciowa. (Niedostępna: Otrzymano nieprawidłowe dane grupowe) @@ -1225,7 +1201,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. NetInstallViewStep - + Package selection Wybór pakietów @@ -1835,6 +1811,24 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Wygląd-i-Zachowanie + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2523,7 +2517,7 @@ Wyjście: UsersViewStep - + Users Użytkownicy diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index daaf821c8..f307c2e80 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -479,15 +479,21 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. CommandList - + + Could not run command. Não foi possível executar o comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. O comando é executado no ambiente do hospedeiro e precisa saber o caminho root, mas nenhum rootMountPoint foi definido. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -652,70 +658,40 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. CreateUserJob - + Create user %1 Criar usuário %1 - + Create user <strong>%1</strong>. Criar usuário <strong>%1</strong>. - + Creating user %1. Criando usuário %1. - + Sudoers dir is not writable. O diretório do sudoers não é gravável. - + Cannot create sudoers file for writing. Não foi possível criar arquivo sudoers para gravação. - + Cannot chmod sudoers file. Não foi possível utilizar chmod no arquivo sudoers. - + Cannot open groups file for reading. Não foi possível abrir arquivo de grupos para leitura. - - - Cannot create user %1. - Impossível criar o usuário %1. - - - - useradd terminated with error code %1. - useradd terminou com código de erro %1. - - - - Cannot add user %1 to groups: %2. - Não foi possível adicionar o usuário %1 aos grupos: %2. - - - - usermod terminated with error code %1. - O usermod terminou com o código de erro %1. - - - - Cannot set home directory ownership for user %1. - Impossível definir proprietário da pasta pessoal para o usuário %1. - - - - chown terminated with error code %1. - chown terminou com código de erro %1. - DeletePartitionJob @@ -1204,22 +1180,22 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. NetInstallPage - + Name Nome - + Description Descrição - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalação pela Rede. (Desabilitada: Não foi possível adquirir lista de pacotes, verifique sua conexão com a internet) - + Network Installation. (Disabled: Received invalid groups data) Instalação pela Rede. (Desabilitado: Recebidos dados de grupos inválidos) @@ -1227,7 +1203,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. NetInstallViewStep - + Package selection Seleção de pacotes @@ -1837,6 +1813,24 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.Tema + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2525,7 +2519,7 @@ Saída: UsersViewStep - + Users Usuários diff --git a/lang/calamares_pt_PT.ts b/lang/calamares_pt_PT.ts index 270bc6b25..d08fc8a87 100644 --- a/lang/calamares_pt_PT.ts +++ b/lang/calamares_pt_PT.ts @@ -477,15 +477,21 @@ O instalador será encerrado e todas as alterações serão perdidas. CommandList - + + Could not run command. Não foi possível correr o comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. O comando corre no ambiente do host e precisa de conhecer o caminho root, mas nenhum Ponto de Montagem root está definido. + + + The command needs to know the user's name, but no username is defined. + O comando precisa de saber o nome do utilizador, mas não está definido nenhum nome de utilizador. + ContextualProcessJob @@ -650,70 +656,40 @@ O instalador será encerrado e todas as alterações serão perdidas. CreateUserJob - + Create user %1 Criar utilizador %1 - + Create user <strong>%1</strong>. Criar utilizador <strong>%1</strong>. - + Creating user %1. A criar utilizador %1. - + Sudoers dir is not writable. O diretório dos super utilizadores não é gravável. - + Cannot create sudoers file for writing. Impossível criar ficheiro do super utilizador para escrita. - + Cannot chmod sudoers file. Impossível de usar chmod no ficheiro dos super utilizadores. - + Cannot open groups file for reading. Impossível abrir ficheiro dos grupos para leitura. - - - Cannot create user %1. - Não é possível criar utilizador %1. - - - - useradd terminated with error code %1. - useradd terminou com código de erro %1. - - - - Cannot add user %1 to groups: %2. - Não é possível adicionar o utilizador %1 aos grupos: %2. - - - - usermod terminated with error code %1. - usermod terminou com código de erro %1. - - - - Cannot set home directory ownership for user %1. - Impossível definir permissão da pasta pessoal para o utilizador %1. - - - - chown terminated with error code %1. - chown terminou com código de erro %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ O instalador será encerrado e todas as alterações serão perdidas. NetInstallPage - + Name Nome - + Description Descrição - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalaçao de Rede. (Desativada: Incapaz de buscar listas de pacotes, verifique a sua ligação de rede) - + Network Installation. (Disabled: Received invalid groups data) Instalação de Rede. (Desativada: Recebeu dados de grupos inválidos) @@ -1225,7 +1201,7 @@ O instalador será encerrado e todas as alterações serão perdidas. NetInstallViewStep - + Package selection Seleção de pacotes @@ -1835,6 +1811,24 @@ O instalador será encerrado e todas as alterações serão perdidas.Aparência + + PreserveFiles + + + Saving files for later ... + A guardar ficheiros para mais tarde ... + + + + No files configured to save for later. + Nenhuns ficheiros configurados para guardar para mais tarde. + + + + Not all of the configured files could be preserved. + Nem todos os ficheiros configurados puderam ser preservados. + + ProcessResult @@ -2523,7 +2517,7 @@ Saída de Dados: UsersViewStep - + Users Utilizadores diff --git a/lang/calamares_ro.ts b/lang/calamares_ro.ts index f23907288..8364bf400 100644 --- a/lang/calamares_ro.ts +++ b/lang/calamares_ro.ts @@ -477,15 +477,21 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CommandList - + + Could not run command. Nu s-a putut executa comanda. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CreateUserJob - + Create user %1 Creează utilizatorul %1 - + Create user <strong>%1</strong>. Creează utilizatorul <strong>%1</strong>. - + Creating user %1. Se creează utilizator %1. - + Sudoers dir is not writable. Nu se poate scrie în dosarul sudoers. - + Cannot create sudoers file for writing. Nu se poate crea fișierul sudoers pentru scriere. - + Cannot chmod sudoers file. Nu se poate chmoda fișierul sudoers. - + Cannot open groups file for reading. Nu se poate deschide fișierul groups pentru citire. - - - Cannot create user %1. - Nu se poate crea utilizatorul %1. - - - - useradd terminated with error code %1. - useradd s-a terminat cu codul de eroare %1. - - - - Cannot add user %1 to groups: %2. - Nu s-a reușit adăugarea utilizatorului %1 la grupurile: %2 - - - - usermod terminated with error code %1. - usermod s-a terminat cu codul de eroare %1. - - - - Cannot set home directory ownership for user %1. - Nu se poate seta apartenența dosarului home pentru utilizatorul %1. - - - - chown terminated with error code %1. - chown s-a terminat cu codul de eroare %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. NetInstallPage - + Name Nume - + Description Despre - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalarea rețelei. (Dezactivat: Nu se pot obține listele de pachete, verificați conexiunea la rețea) - + Network Installation. (Disabled: Received invalid groups data) Instalare prin rețea. (Dezactivată: S-au recepționat grupuri de date invalide) @@ -1225,7 +1201,7 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. NetInstallViewStep - + Package selection Selecția pachetelor @@ -1838,6 +1814,24 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Interfață + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2526,7 +2520,7 @@ Output UsersViewStep - + Users Utilizatori diff --git a/lang/calamares_ru.ts b/lang/calamares_ru.ts index db81fb3f4..4eb4ec417 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. Не удалось выполнить команду. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Создать учетную запись %1 - + Create user <strong>%1</strong>. Создать учетную запись <strong>%1</strong>. - + Creating user %1. Создается учетная запись %1. - + Sudoers dir is not writable. Каталог sudoers не доступен для записи. - + Cannot create sudoers file for writing. Не удалось записать файл sudoers. - + Cannot chmod sudoers file. Не удалось применить chmod к файлу sudoers. - + Cannot open groups file for reading. Не удалось открыть файл groups для чтения. - - - Cannot create user %1. - Не удалось создать учетную запись пользователя %1. - - - - useradd terminated with error code %1. - Команда useradd завершилась с кодом ошибки %1. - - - - Cannot add user %1 to groups: %2. - Не удается добавить пользователя %1 в группы: %2. - - - - usermod terminated with error code %1. - Команда usermod завершилась с кодом ошибки %1. - - - - Cannot set home directory ownership for user %1. - Не удалось задать владельца домашней папки пользователя %1. - - - - chown terminated with error code %1. - Команда chown завершилась с кодом ошибки %1. - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Имя - + Description Описание - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Установка по сети. (Отключено: не удается получить список пакетов, проверьте сетевое подключение) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Выбор пакетов @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users Пользователи diff --git a/lang/calamares_sk.ts b/lang/calamares_sk.ts index 1d0f153cd..13a4d1d7b 100644 --- a/lang/calamares_sk.ts +++ b/lang/calamares_sk.ts @@ -477,15 +477,21 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CommandList - + + Could not run command. Nepodarilo sa spustiť príkaz. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CreateUserJob - + Create user %1 Vytvoriť používateľa %1 - + Create user <strong>%1</strong>. Vytvoriť používateľa <strong>%1</strong>. - + Creating user %1. Vytvára sa používateľ %1. - + Sudoers dir is not writable. Adresár Sudoers nie je zapisovateľný. - + Cannot create sudoers file for writing. Nedá sa vytvoriť súbor sudoers na zapisovanie. - + Cannot chmod sudoers file. Nedá sa vykonať príkaz chmod na súbori sudoers. - + Cannot open groups file for reading. Nedá sa otvoriť súbor skupín na čítanie. - - - Cannot create user %1. - Nedá sa vytvoriť používateľ %1. - - - - useradd terminated with error code %1. - Príkaz useradd ukončený s chybovým kódom %1. - - - - Cannot add user %1 to groups: %2. - Nedá sa pridať používateľ %1 do skupín: %2. - - - - usermod terminated with error code %1. - Príkaz usermod ukončený s chybovým kódom %1. - - - - Cannot set home directory ownership for user %1. - Nedá sa nastaviť vlastníctvo domovského adresára pre používateľa %1. - - - - chown terminated with error code %1. - Príkaz chown ukončený s chybovým kódom %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. NetInstallPage - + Name Názov - + Description Popis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Sieťová inštalácia. (Zakázaná: Nie je možné získať zoznamy balíkov. Skontrolujte vaše sieťové pripojenie.) - + Network Installation. (Disabled: Received invalid groups data) Sieťová inštalácia. (Zakázaná: Boli prijaté neplatné údaje o skupinách) @@ -1225,7 +1201,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. NetInstallViewStep - + Package selection Výber balíkov @@ -1689,7 +1665,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Can not create new partition - + Nedá sa vytvoriť nový oddiel @@ -1835,6 +1811,24 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Vzhľad a dojem + + PreserveFiles + + + Saving files for later ... + Ukladajú sa súbory na neskôr... + + + + No files configured to save for later. + Žiadne konfigurované súbory pre uloženie na neskôr. + + + + Not all of the configured files could be preserved. + Nie všetky konfigurované súbory môžu byť uchované. + + ProcessResult @@ -2523,7 +2517,7 @@ Výstup: UsersViewStep - + Users Používatelia diff --git a/lang/calamares_sl.ts b/lang/calamares_sl.ts index 1bee31eae..1da5bd297 100644 --- a/lang/calamares_sl.ts +++ b/lang/calamares_sl.ts @@ -477,15 +477,21 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CreateUserJob - + Create user %1 Ustvari uporabnika %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Mapa sudoers ni zapisljiva. - + Cannot create sudoers file for writing. Ni mogoče ustvariti datoteke sudoers za pisanje. - + Cannot chmod sudoers file. Na datoteki sudoers ni mogoče izvesti opravila chmod. - + Cannot open groups file for reading. Datoteke skupin ni bilo mogoče odpreti za branje. - - - Cannot create user %1. - Ni mogoče ustvariti uporabnika %1. - - - - useradd terminated with error code %1. - useradd se je prekinil s kodo napake %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - Ni mogoče nastaviti lastništva domače mape za uporabnika %1. - - - - chown terminated with error code %1. - chown se je prekinil s kodo napake %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. NetInstallPage - + Name Ime - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_sq.ts b/lang/calamares_sq.ts index 7b118abb0..e1696323a 100644 --- a/lang/calamares_sq.ts +++ b/lang/calamares_sq.ts @@ -477,15 +477,21 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. CommandList - + + Could not run command. S’u xhirua dot urdhri. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Urdhri xhirohet në mjedisin strehë dhe është e nevojshme të dijë shtegun për rrënjën, por nuk ka rootMountPoint të përcaktuar. + + + The command needs to know the user's name, but no username is defined. + Urdhri lypset të dijë emrin e përdoruesit, por s’ka të përcaktuar emër përdoruesi. + ContextualProcessJob @@ -650,70 +656,40 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. CreateUserJob - + Create user %1 Krijo përdoruesin %1 - + Create user <strong>%1</strong>. Krijo përdoruesin <strong>%1</strong>. - + Creating user %1. Po krijohet përdoruesi %1. - + Sudoers dir is not writable. Drejtoria sudoers s’është e shkrueshme. - + Cannot create sudoers file for writing. S’krijohet dot kartelë sudoers për shkrim. - + Cannot chmod sudoers file. S’mund të kryhet chmod mbi kartelën sudoers. - + Cannot open groups file for reading. S’hapet dot kartelë grupesh për lexim. - - - Cannot create user %1. - S’krijohet dot përdoruesi %1. - - - - useradd terminated with error code %1. - useradd përfundoi me kod gabimi %1. - - - - Cannot add user %1 to groups: %2. - S’shton dot përdoruesin %1 te grupe: %2. - - - - usermod terminated with error code %1. - usermod përfundoi me kod gabimi %1. - - - - Cannot set home directory ownership for user %1. - S’caktohet dot pronësia e drejtorisë shtëpi për përdoruesin %1. - - - - chown terminated with error code %1. - chown përfundoi me kod gabimi %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. NetInstallPage - + Name Emër - + Description Përshkrim - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalim Nga Rrjeti. (U çaktivizua: S’arrihet të sillen lista paketash, kontrolloni lidhjen tuaj në rrjet) - + Network Installation. (Disabled: Received invalid groups data) Instalim Nga Rrjeti. (U çaktivizua: U morën të dhëna të pavlefshme grupesh) @@ -1225,7 +1201,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. NetInstallViewStep - + Package selection Përzgjedhje paketash @@ -1835,6 +1811,24 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Pamje-dhe-Ndjesi + + PreserveFiles + + + Saving files for later ... + Po ruhen kartela për më vonë ... + + + + No files configured to save for later. + S’ka kartela të formësuara për t’i ruajtur më vonë. + + + + Not all of the configured files could be preserved. + S’u mbajtën dot tërë kartelat e formësuara. + + ProcessResult @@ -2523,7 +2517,7 @@ Përfundim: UsersViewStep - + Users Përdorues diff --git a/lang/calamares_sr.ts b/lang/calamares_sr.ts index 31b13303b..669ed0ec3 100644 --- a/lang/calamares_sr.ts +++ b/lang/calamares_sr.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Направи корисника %1 - + Create user <strong>%1</strong>. - + Creating user %1. Правим корисника %1 - + Sudoers dir is not writable. Није могуће писати у "Судоерс" директоријуму. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. Није могуће променити мод (chmod) над "судоерс" фајлом - + Cannot open groups file for reading. - - - Cannot create user %1. - Није могуће направити корисника %1. - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Назив - + Description Опис - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Избор пакета @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Корисници diff --git a/lang/calamares_sr@latin.ts b/lang/calamares_sr@latin.ts index 564a10b08..96c30bf86 100644 --- a/lang/calamares_sr@latin.ts +++ b/lang/calamares_sr@latin.ts @@ -477,15 +477,21 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CreateUserJob - + Create user %1 Napravi korisnika %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Nemoguće mijenjati fajlove u sudoers direktorijumu - + Cannot create sudoers file for writing. Nemoguće napraviti sudoers fajl - + Cannot chmod sudoers file. Nemoguće uraditi chmod nad sudoers fajlom. - + Cannot open groups file for reading. Nemoguće otvoriti groups fajl - - - Cannot create user %1. - Nemoguće napraviti korisnika %1. - - - - useradd terminated with error code %1. - Komanda useradd prekinuta sa kodom greške %1 - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - Nemoguće postaviti vlasništvo nad početnim direktorijumom za korisnika %1. - - - - chown terminated with error code %1. - Komanda chown prekinuta sa kodom greške %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. NetInstallPage - + Name Naziv - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Korisnici diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index 5ee786adc..e60aa4e03 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -477,15 +477,21 @@ Alla ändringar kommer att gå förlorade. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ Alla ändringar kommer att gå förlorade. CreateUserJob - + Create user %1 Skapar användare %1 - + Create user <strong>%1</strong>. Skapa användare <strong>%1</strong>. - + Creating user %1. Skapar användare %1 - + Sudoers dir is not writable. Sudoerkatalogen är inte skrivbar. - + Cannot create sudoers file for writing. Kunde inte skapa sudoerfil för skrivning. - + Cannot chmod sudoers file. Kunde inte chmodda sudoerfilen. - + Cannot open groups file for reading. Kunde inte öppna gruppfilen för läsning. - - - Cannot create user %1. - Kunde inte skapa användaren %1. - - - - useradd terminated with error code %1. - useradd stoppades med felkod %1. - - - - Cannot add user %1 to groups: %2. - Kan inte lägga till användare %1 till grupper: %2. - - - - usermod terminated with error code %1. - usermod avslutade med felkod %1. - - - - Cannot set home directory ownership for user %1. - Kunde inte ge användaren %1 äganderätt till sin hemkatalog. - - - - chown terminated with error code %1. - chown stoppades med felkod %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ Alla ändringar kommer att gå förlorade. NetInstallPage - + Name Namn - + Description Beskrivning - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Nätverksinstallation. (Inaktiverad: Kan inte hämta paketlistor, kontrollera nätverksanslutningen) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ Alla ändringar kommer att gå förlorade. NetInstallViewStep - + Package selection Paketval @@ -1835,6 +1811,24 @@ Alla ändringar kommer att gå förlorade. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Användare diff --git a/lang/calamares_th.ts b/lang/calamares_th.ts index 9b8a95c00..cee8c5501 100644 --- a/lang/calamares_th.ts +++ b/lang/calamares_th.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 สร้างผู้ใช้ %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. ไม่สามารถเขียนไดเรคทอรี Sudoers ได้ - + Cannot create sudoers file for writing. ไม่สามารถสร้างไฟล์ sudoers เพื่อเขียนได้ - + Cannot chmod sudoers file. ไม่สามารถ chmod ไฟล์ sudoers - + Cannot open groups file for reading. ไม่สามารถเปิดไฟล์ groups เพื่ออ่านได้ - - - Cannot create user %1. - ไม่สามารถสร้างผู้ใช้ %1 - - - - useradd terminated with error code %1. - useradd จบด้วยโค้ดข้อผิดพลาด %1 - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod จบด้วยโค้ดข้อผิดพลาด %1 - - - - Cannot set home directory ownership for user %1. - ไม่สามารถตั้งค่าความเป็นเจ้าของไดเรคทอรี home สำหรับผู้ใช้ %1 - - - - chown terminated with error code %1. - chown จบด้วยโค้ดข้อผิดพลาด %1 - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name ชื่อ - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users ผู้ใช้ diff --git a/lang/calamares_tr_TR.ts b/lang/calamares_tr_TR.ts index 56a1fba88..d95659742 100644 --- a/lang/calamares_tr_TR.ts +++ b/lang/calamares_tr_TR.ts @@ -480,15 +480,21 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. CommandList - + + Could not run command. Komut çalıştırılamadı. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Komut, ana bilgisayar ortamında çalışır ve kök yolunu bilmesi gerekir, ancak kökMontajNoktası tanımlanmamıştır. + + + The command needs to know the user's name, but no username is defined. + Komutun kullanıcının adını bilmesi gerekir, ancak kullanıcı adı tanımlanmamıştır. + ContextualProcessJob @@ -653,70 +659,40 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. CreateUserJob - + Create user %1 %1 Kullanıcısı oluşturuluyor... - + Create user <strong>%1</strong>. <strong>%1</strong> kullanıcı oluştur. - + Creating user %1. %1 Kullanıcısı oluşturuluyor... - + Sudoers dir is not writable. Sudoers dosyası yazılabilir değil. - + Cannot create sudoers file for writing. sudoers dosyası oluşturulamadı ve yazılamadı. - + Cannot chmod sudoers file. Sudoers dosya izinleri ayarlanamadı. - + Cannot open groups file for reading. groups dosyası okunamadı. - - - Cannot create user %1. - %1 Kullanıcısı oluşturulamadı... - - - - useradd terminated with error code %1. - useradd komutu şu hata ile çöktü %1. - - - - Cannot add user %1 to groups: %2. - %1 Kullanıcısı şu gruba eklenemedi: %2. - - - - usermod terminated with error code %1. - usermod %1 hata koduyla çöktü. - - - - Cannot set home directory ownership for user %1. - %1 Kullanıcısı için ev dizini sahipliği ayarlanamadı. - - - - chown terminated with error code %1. - chown %1 hata koduyla sonlandırıldı. - DeletePartitionJob @@ -1205,22 +1181,22 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. NetInstallPage - + Name İsim - + Description Açıklama - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Ağ Üzerinden Kurulum. (Devre Dışı: Paket listeleri alınamıyor, ağ bağlantısını kontrol ediniz) - + Network Installation. (Disabled: Received invalid groups data) Ağ Kurulum. (Devre dışı: Geçersiz grup verileri alındı) @@ -1228,7 +1204,7 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. NetInstallViewStep - + Package selection Paket seçimi @@ -1839,6 +1815,24 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Look-and-Feel + + PreserveFiles + + + Saving files for later ... + Dosyalar daha sonrası için kaydediliyor ... + + + + No files configured to save for later. + Daha sonra kaydetmek için dosya yapılandırılmamış. + + + + Not all of the configured files could be preserved. + Yapılandırılmış dosyaların tümü korunamadı. + + ProcessResult @@ -2528,7 +2522,7 @@ Sistem güç kaynağına bağlı değil. UsersViewStep - + Users Kullanıcı Tercihleri diff --git a/lang/calamares_uk.ts b/lang/calamares_uk.ts index 2238af0ba..065ba5c95 100644 --- a/lang/calamares_uk.ts +++ b/lang/calamares_uk.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Створити користувача %1 - + Create user <strong>%1</strong>. Створити користувача <strong>%1</strong>. - + Creating user %1. Створення користувача %1. - + Sudoers dir is not writable. Неможливо запиcати у директорію sudoers. - + Cannot create sudoers file for writing. Неможливо створити файл sudoers для запису. - + Cannot chmod sudoers file. Неможливо встановити права на файл sudoers. - + Cannot open groups file for reading. Неможливо відкрити файл груп для читання. - - - Cannot create user %1. - Неможливо створити користувача %1. - - - - useradd terminated with error code %1. - useradd завершилася з кодом помилки %1. - - - - Cannot add user %1 to groups: %2. - Неможливо додати користувача %1 до груп: %2. - - - - usermod terminated with error code %1. - usermod завершилася з кодом помилки %1. - - - - Cannot set home directory ownership for user %1. - Неможливо встановити права власності на домашню теку для користувача %1. - - - - chown terminated with error code %1. - chown завершилася з кодом помилки %1. - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Ім'я - + Description Опис - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Встановлення через мережу. (Вимкнено: Неможливо отримати список пакетів, перевірте ваше підключення до мережі) - + Network Installation. (Disabled: Received invalid groups data) Встановлення через мережу. (Вимкнено: Отримано неправильні дані про групи) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Вибір пакетів @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2520,7 +2514,7 @@ Output: UsersViewStep - + Users Користувачі diff --git a/lang/calamares_ur.ts b/lang/calamares_ur.ts index 8e01b47f6..75c265cda 100644 --- a/lang/calamares_ur.ts +++ b/lang/calamares_ur.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_uz.ts b/lang/calamares_uz.ts index e3472169a..da044a690 100644 --- a/lang/calamares_uz.ts +++ b/lang/calamares_uz.ts @@ -476,15 +476,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -649,70 +655,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -1201,22 +1177,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1224,7 +1200,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1834,6 +1810,24 @@ The installer will quit and all changes will be lost. + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2519,7 +2513,7 @@ Output: UsersViewStep - + Users diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts index 2dd626a2c..ea18e8767 100644 --- a/lang/calamares_zh_CN.ts +++ b/lang/calamares_zh_CN.ts @@ -478,15 +478,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. 无法运行命令 - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + + ContextualProcessJob @@ -651,70 +657,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 创建用户 %1 - + Create user <strong>%1</strong>. 创建用户 <strong>%1</strong>。 - + Creating user %1. 正在创建用户 %1。 - + Sudoers dir is not writable. Sudoers 目录不可写。 - + Cannot create sudoers file for writing. 无法创建要写入的 sudoers 文件。 - + Cannot chmod sudoers file. 无法修改 sudoers 文件权限。 - + Cannot open groups file for reading. 无法打开要读取的 groups 文件。 - - - Cannot create user %1. - 无法创建用户 %1。 - - - - useradd terminated with error code %1. - useradd 以错误代码 %1 中止。 - - - - Cannot add user %1 to groups: %2. - 无法将用户 %1 加入到群组:%2. - - - - usermod terminated with error code %1. - usermod 终止,错误代码 %1. - - - - Cannot set home directory ownership for user %1. - 无法设置用户 %1 的主文件夹所有者。 - - - - chown terminated with error code %1. - chown 以错误代码 %1 中止。 - DeletePartitionJob @@ -1204,22 +1180,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name 名称 - + Description 描述 - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) 网络安装。(已禁用:无法获取软件包列表,请检查网络连接) - + Network Installation. (Disabled: Received invalid groups data) 联网安装。(已禁用:收到无效组数据) @@ -1227,7 +1203,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection 软件包选择 @@ -1837,6 +1813,24 @@ The installer will quit and all changes will be lost. 外观主题 + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult @@ -2525,7 +2519,7 @@ Output: UsersViewStep - + Users 用户 diff --git a/lang/calamares_zh_TW.ts b/lang/calamares_zh_TW.ts index 711d87d06..407a72e04 100644 --- a/lang/calamares_zh_TW.ts +++ b/lang/calamares_zh_TW.ts @@ -477,15 +477,21 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. 無法執行指令。 - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. 指令執行於主機環境中,且需要知道根路徑,但根掛載點未定義。 + + + The command needs to know the user's name, but no username is defined. + 指令需要知道使用者名稱,但是使用者名稱未定義。 + ContextualProcessJob @@ -650,70 +656,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 建立使用者 %1 - + Create user <strong>%1</strong>. 建立使用者 <strong>%1</strong>。 - + Creating user %1. 正在建立使用者 %1。 - + Sudoers dir is not writable. Sudoers 目錄不可寫入。 - + Cannot create sudoers file for writing. 無法建立要寫入的 sudoers 檔案。 - + Cannot chmod sudoers file. 無法修改 sudoers 檔案權限。 - + Cannot open groups file for reading. 無法開啟要讀取的 groups 檔案。 - - - Cannot create user %1. - 無法建立使用者 %1 。 - - - - useradd terminated with error code %1. - useradd 以錯誤代碼 %1 終止。 - - - - Cannot add user %1 to groups: %2. - 無法將使用者 %1 加入至群組:%2。 - - - - usermod terminated with error code %1. - usermod 以錯誤代碼 %1 終止。 - - - - Cannot set home directory ownership for user %1. - 無法將使用者 %1 設定為家目錄的擁有者。 - - - - chown terminated with error code %1. - chown 以錯誤代碼 %1 終止。 - DeletePartitionJob @@ -1202,22 +1178,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name 名稱 - + Description 描述 - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) 網路安裝。(已停用:無法擷取軟體包清單,請檢查您的網路連線) - + Network Installation. (Disabled: Received invalid groups data) 網路安裝。(已停用:收到無效的群組資料) @@ -1225,7 +1201,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection 軟體包選擇 @@ -1835,6 +1811,24 @@ The installer will quit and all changes will be lost. 外觀與感覺 + + PreserveFiles + + + Saving files for later ... + 稍後儲存檔案…… + + + + No files configured to save for later. + 沒有檔案被設定為稍後儲存。 + + + + Not all of the configured files could be preserved. + 並非所有已設定的檔案都可以被保留。 + + ProcessResult @@ -2523,7 +2517,7 @@ Output: UsersViewStep - + Users 使用者 From 960c33a5122e71cb8b6dc1d73cfb3540898d9b22 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 29 May 2018 03:27:21 -0400 Subject: [PATCH 02/68] i18n: [python] Automatic merge of Transifex translations --- lang/python.pot | 2 +- lang/python/ar/LC_MESSAGES/python.mo | Bin 503 -> 503 bytes lang/python/ar/LC_MESSAGES/python.po | 2 +- lang/python/ast/LC_MESSAGES/python.mo | Bin 668 -> 668 bytes lang/python/ast/LC_MESSAGES/python.po | 2 +- lang/python/be/LC_MESSAGES/python.mo | Bin 562 -> 562 bytes lang/python/be/LC_MESSAGES/python.po | 2 +- lang/python/bg/LC_MESSAGES/python.mo | Bin 894 -> 894 bytes lang/python/bg/LC_MESSAGES/python.po | 2 +- lang/python/ca/LC_MESSAGES/python.mo | Bin 1178 -> 1178 bytes lang/python/ca/LC_MESSAGES/python.po | 2 +- lang/python/cs_CZ/LC_MESSAGES/python.mo | Bin 1458 -> 1458 bytes lang/python/cs_CZ/LC_MESSAGES/python.po | 2 +- lang/python/da/LC_MESSAGES/python.mo | Bin 1115 -> 1115 bytes lang/python/da/LC_MESSAGES/python.po | 2 +- lang/python/de/LC_MESSAGES/python.mo | Bin 1130 -> 1130 bytes lang/python/de/LC_MESSAGES/python.po | 2 +- lang/python/el/LC_MESSAGES/python.mo | Bin 568 -> 568 bytes lang/python/el/LC_MESSAGES/python.po | 2 +- lang/python/en_GB/LC_MESSAGES/python.mo | Bin 444 -> 444 bytes lang/python/en_GB/LC_MESSAGES/python.po | 2 +- lang/python/eo/LC_MESSAGES/python.mo | Bin 1168 -> 1168 bytes lang/python/eo/LC_MESSAGES/python.po | 2 +- lang/python/es/LC_MESSAGES/python.mo | Bin 1075 -> 1075 bytes lang/python/es/LC_MESSAGES/python.po | 2 +- lang/python/es_MX/LC_MESSAGES/python.mo | Bin 436 -> 436 bytes lang/python/es_MX/LC_MESSAGES/python.po | 2 +- lang/python/es_PR/LC_MESSAGES/python.mo | Bin 441 -> 441 bytes lang/python/es_PR/LC_MESSAGES/python.po | 2 +- lang/python/et/LC_MESSAGES/python.mo | Bin 1113 -> 1113 bytes lang/python/et/LC_MESSAGES/python.po | 2 +- lang/python/eu/LC_MESSAGES/python.mo | Bin 420 -> 420 bytes lang/python/eu/LC_MESSAGES/python.po | 2 +- lang/python/fa/LC_MESSAGES/python.mo | Bin 420 -> 420 bytes lang/python/fa/LC_MESSAGES/python.po | 2 +- lang/python/fi_FI/LC_MESSAGES/python.mo | Bin 437 -> 437 bytes lang/python/fi_FI/LC_MESSAGES/python.po | 2 +- lang/python/fr/LC_MESSAGES/python.mo | Bin 1193 -> 1193 bytes lang/python/fr/LC_MESSAGES/python.po | 2 +- lang/python/fr_CH/LC_MESSAGES/python.mo | Bin 439 -> 439 bytes lang/python/fr_CH/LC_MESSAGES/python.po | 2 +- lang/python/gl/LC_MESSAGES/python.mo | Bin 422 -> 422 bytes lang/python/gl/LC_MESSAGES/python.po | 2 +- lang/python/gu/LC_MESSAGES/python.mo | Bin 422 -> 422 bytes lang/python/gu/LC_MESSAGES/python.po | 2 +- lang/python/he/LC_MESSAGES/python.mo | Bin 1366 -> 1366 bytes lang/python/he/LC_MESSAGES/python.po | 2 +- lang/python/hi/LC_MESSAGES/python.mo | Bin 1363 -> 1363 bytes lang/python/hi/LC_MESSAGES/python.po | 2 +- lang/python/hr/LC_MESSAGES/python.mo | Bin 1272 -> 1272 bytes lang/python/hr/LC_MESSAGES/python.po | 2 +- lang/python/hu/LC_MESSAGES/python.mo | Bin 844 -> 844 bytes lang/python/hu/LC_MESSAGES/python.po | 2 +- lang/python/id/LC_MESSAGES/python.mo | Bin 1082 -> 1082 bytes lang/python/id/LC_MESSAGES/python.po | 2 +- lang/python/is/LC_MESSAGES/python.mo | Bin 1066 -> 1066 bytes lang/python/is/LC_MESSAGES/python.po | 2 +- lang/python/it_IT/LC_MESSAGES/python.mo | Bin 1162 -> 1162 bytes lang/python/it_IT/LC_MESSAGES/python.po | 2 +- lang/python/ja/LC_MESSAGES/python.mo | Bin 1164 -> 1164 bytes lang/python/ja/LC_MESSAGES/python.po | 2 +- lang/python/kk/LC_MESSAGES/python.mo | Bin 418 -> 418 bytes lang/python/kk/LC_MESSAGES/python.po | 2 +- lang/python/kn/LC_MESSAGES/python.mo | Bin 420 -> 420 bytes lang/python/kn/LC_MESSAGES/python.po | 2 +- lang/python/lo/LC_MESSAGES/python.mo | Bin 410 -> 410 bytes lang/python/lo/LC_MESSAGES/python.po | 2 +- lang/python/lt/LC_MESSAGES/python.mo | Bin 1382 -> 1382 bytes lang/python/lt/LC_MESSAGES/python.po | 2 +- lang/python/mr/LC_MESSAGES/python.mo | Bin 421 -> 421 bytes lang/python/mr/LC_MESSAGES/python.po | 2 +- lang/python/nb/LC_MESSAGES/python.mo | Bin 616 -> 616 bytes lang/python/nb/LC_MESSAGES/python.po | 2 +- lang/python/nl/LC_MESSAGES/python.mo | Bin 658 -> 658 bytes lang/python/nl/LC_MESSAGES/python.po | 2 +- lang/python/pl/LC_MESSAGES/python.mo | Bin 1434 -> 1434 bytes lang/python/pl/LC_MESSAGES/python.po | 2 +- lang/python/pt_BR/LC_MESSAGES/python.mo | Bin 1177 -> 1177 bytes lang/python/pt_BR/LC_MESSAGES/python.po | 2 +- lang/python/pt_PT/LC_MESSAGES/python.mo | Bin 1173 -> 1173 bytes lang/python/pt_PT/LC_MESSAGES/python.po | 2 +- lang/python/ro/LC_MESSAGES/python.mo | Bin 1277 -> 1277 bytes lang/python/ro/LC_MESSAGES/python.po | 2 +- lang/python/ru/LC_MESSAGES/python.mo | Bin 740 -> 740 bytes lang/python/ru/LC_MESSAGES/python.po | 2 +- lang/python/sk/LC_MESSAGES/python.mo | Bin 1432 -> 1432 bytes lang/python/sk/LC_MESSAGES/python.po | 2 +- lang/python/sl/LC_MESSAGES/python.mo | Bin 475 -> 475 bytes lang/python/sl/LC_MESSAGES/python.po | 2 +- lang/python/sq/LC_MESSAGES/python.mo | Bin 1148 -> 1148 bytes lang/python/sq/LC_MESSAGES/python.po | 2 +- lang/python/sr/LC_MESSAGES/python.mo | Bin 495 -> 495 bytes lang/python/sr/LC_MESSAGES/python.po | 2 +- lang/python/sr@latin/LC_MESSAGES/python.mo | Bin 517 -> 517 bytes lang/python/sr@latin/LC_MESSAGES/python.po | 2 +- lang/python/sv/LC_MESSAGES/python.mo | Bin 421 -> 421 bytes lang/python/sv/LC_MESSAGES/python.po | 2 +- lang/python/th/LC_MESSAGES/python.mo | Bin 411 -> 411 bytes lang/python/th/LC_MESSAGES/python.po | 2 +- lang/python/tr_TR/LC_MESSAGES/python.mo | Bin 1192 -> 1192 bytes lang/python/tr_TR/LC_MESSAGES/python.po | 2 +- lang/python/uk/LC_MESSAGES/python.mo | Bin 645 -> 645 bytes lang/python/uk/LC_MESSAGES/python.po | 2 +- lang/python/ur/LC_MESSAGES/python.mo | Bin 418 -> 418 bytes lang/python/ur/LC_MESSAGES/python.po | 2 +- lang/python/uz/LC_MESSAGES/python.mo | Bin 412 -> 412 bytes lang/python/uz/LC_MESSAGES/python.po | 2 +- lang/python/zh_CN/LC_MESSAGES/python.mo | Bin 1101 -> 1101 bytes lang/python/zh_CN/LC_MESSAGES/python.po | 2 +- lang/python/zh_TW/LC_MESSAGES/python.mo | Bin 1126 -> 1126 bytes lang/python/zh_TW/LC_MESSAGES/python.po | 2 +- 111 files changed, 56 insertions(+), 56 deletions(-) diff --git a/lang/python.pot b/lang/python.pot index afce3007f..fab6d56ba 100644 --- a/lang/python.pot +++ b/lang/python.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/lang/python/ar/LC_MESSAGES/python.mo b/lang/python/ar/LC_MESSAGES/python.mo index 8003a12c728b005b5c098b26102937295219e00a..ed23b6f29e9760ebcdf682fd4350a6964de06278 100644 GIT binary patch delta 19 acmey){GEA1KZlWpf`N&Zsrkm~35)Jm8tn=ZpMj>068uM06514*8l(j diff --git a/lang/python/ast/LC_MESSAGES/python.po b/lang/python/ast/LC_MESSAGES/python.po index a55cf974f..ea5d77ca1 100644 --- a/lang/python/ast/LC_MESSAGES/python.po +++ b/lang/python/ast/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: enolp , 2017\n" "Language-Team: Asturian (https://www.transifex.com/calamares/teams/20061/ast/)\n" diff --git a/lang/python/be/LC_MESSAGES/python.mo b/lang/python/be/LC_MESSAGES/python.mo index 4454d0f300ea558ca047a2b4836933e54b1e3dbf..d553eb62fdf54bcf74cdc6ace069f24ac170996b 100644 GIT binary patch delta 19 acmdnQvWaCvKZlWpf`N&Zsrkm~vl#(BLIMG* diff --git a/lang/python/be/LC_MESSAGES/python.po b/lang/python/be/LC_MESSAGES/python.po index 96b3351ad..249c65dc1 100644 --- a/lang/python/be/LC_MESSAGES/python.po +++ b/lang/python/be/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/bg/LC_MESSAGES/python.mo b/lang/python/bg/LC_MESSAGES/python.mo index b43df8a288b6150b7c5cb3eec561b9cf3b74d682..15606e67b21508211d5223b05ee2be7a7bd150a9 100644 GIT binary patch delta 21 ccmeyz_K$6YJtK#ag@S>Jm8tn=cSdt208F6;$p8QV delta 21 ccmeyz_K$6YJtK#qnS!CAm5IS-cSdt208BasyZ`_I diff --git a/lang/python/bg/LC_MESSAGES/python.po b/lang/python/bg/LC_MESSAGES/python.po index 71995a29d..9b7153326 100644 --- a/lang/python/bg/LC_MESSAGES/python.po +++ b/lang/python/bg/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/ca/LC_MESSAGES/python.mo index 815e48a4118bfe8181ff81ddad8bd7c3aec184a0..4c682cf45ba3f5ec47a70ffef6da0b34f631b6d8 100644 GIT binary patch delta 21 ccmbQmIg4|HE)$25g@S>Jm8tn=Q>IiV06cjG6951J delta 21 ccmbQmIg4|HE)$2LnS!CAm5IS-Q>IiV06Y=}1^@s6 diff --git a/lang/python/ca/LC_MESSAGES/python.po b/lang/python/ca/LC_MESSAGES/python.po index 10e6289ae..a6aa48f8f 100644 --- a/lang/python/ca/LC_MESSAGES/python.po +++ b/lang/python/ca/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Davidmp , 2017\n" "Language-Team: Catalan (https://www.transifex.com/calamares/teams/20061/ca/)\n" diff --git a/lang/python/cs_CZ/LC_MESSAGES/python.mo b/lang/python/cs_CZ/LC_MESSAGES/python.mo index 082493dca83586348a6784b6d0bf9e1449a3a8e6..3099769f1db82525b1fb781b69d740206f4f1afc 100644 GIT binary patch delta 21 ccmdnQy@`8+E)$25g@S>Jm8tn=Q>I#G06?|{U;qFB delta 21 ccmdnQy@`8+E)$2LnS!CAm5IS-Q>I#G06, 2017\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.mo b/lang/python/da/LC_MESSAGES/python.mo index 720ee411425ecefc5bcb16aeef72de83a0c2080d..74ff6ea90e1b892aea1736a4eadade9a3197a65d 100644 GIT binary patch delta 21 ccmcc3ahqdJm8tn=QzkVg07d-;Q~&?~ delta 21 ccmcc3ahqdJm8tn=Qzla;07!EMfdBvi delta 21 ccmaFG@rq-EE)$2LnS!CAm5IS-Qzla;07wi4bN~PV diff --git a/lang/python/de/LC_MESSAGES/python.po b/lang/python/de/LC_MESSAGES/python.po index ac9777c23..66bcb4663 100644 --- a/lang/python/de/LC_MESSAGES/python.po +++ b/lang/python/de/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Dirk Hein , 2017\n" "Language-Team: German (https://www.transifex.com/calamares/teams/20061/de/)\n" diff --git a/lang/python/el/LC_MESSAGES/python.mo b/lang/python/el/LC_MESSAGES/python.mo index 83476e5694575b45b20e2105d25fd1a9b2e0538c..0e75c505149d2829e39d59c01ddc33efa9f71dfe 100644 GIT binary patch delta 19 acmdnNvV P7Wgr1p^Z+Q}c}n%NYSco(4z& delta 19 acmdnNvV P7Xse1w%tC6N8Nh%NYScL, 2017\n" "Language-Team: Greek (https://www.transifex.com/calamares/teams/20061/el/)\n" diff --git a/lang/python/en_GB/LC_MESSAGES/python.mo b/lang/python/en_GB/LC_MESSAGES/python.mo index 763f8ab01ae3287d93f46742d23ece4cd3ba9b82..b32de75241a90adfbcff42b825f9a9b3cf5247c8 100644 GIT binary patch delta 19 acmdnPyoY&0KZlWpf`N&Zsrkm~s*C_Vo&~4? delta 19 acmdnPyoY&0KZl{2f}x?6iNVI{s*C_VLJm8tn=Q>JJp06NtK^#A|> delta 21 ccmbQhIe~M7E)$2LnS!CAm5IS-Q>JJp06K02=l}o! diff --git a/lang/python/eo/LC_MESSAGES/python.po b/lang/python/eo/LC_MESSAGES/python.po index b0622a9aa..bffb7bf5d 100644 --- a/lang/python/eo/LC_MESSAGES/python.po +++ b/lang/python/eo/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/es/LC_MESSAGES/python.mo index 81e3121c0b2d703f436342332720fc02219d3ca7..0487a6d7e9f1c65fb586ca012de283631433c4d4 100644 GIT binary patch delta 21 ccmdnYv6*ATe?|@?3k3rcD^v5$>`XdL08AnUtpET3 delta 21 ccmdnYv6*ATe?|^NGX+CKD-(mw>`XdL086_Cpa1{> diff --git a/lang/python/es/LC_MESSAGES/python.po b/lang/python/es/LC_MESSAGES/python.po index 31ee2ba77..c88771e11 100644 --- a/lang/python/es/LC_MESSAGES/python.po +++ b/lang/python/es/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: strel, 2017\n" "Language-Team: Spanish (https://www.transifex.com/calamares/teams/20061/es/)\n" diff --git a/lang/python/es_MX/LC_MESSAGES/python.mo b/lang/python/es_MX/LC_MESSAGES/python.mo index 4ddd826e4e68e3c40a17dd97f3bb6a915b830872..3b6df235cfd484222c6a19c026a0dc5175d2f352 100644 GIT binary patch delta 19 acmdnOyoGr}KZlWpf`N&Zsrkm~vWx&cZUvA4 delta 19 acmdnOyoGr}KZl{2f}x?6iNVI{vWx&c6a|9- diff --git a/lang/python/es_MX/LC_MESSAGES/python.po b/lang/python/es_MX/LC_MESSAGES/python.po index f37751143..386952128 100644 --- a/lang/python/es_MX/LC_MESSAGES/python.po +++ b/lang/python/es_MX/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/es_PR/LC_MESSAGES/python.mo b/lang/python/es_PR/LC_MESSAGES/python.mo index c85a27627b4fd40ebdb243d03bf686acdb2894b4..c5fb7e34afc88165b20b491e26a096dc929053d7 100644 GIT binary patch delta 19 acmdnVypwrCKZlWpf`N&Zsrkm~N{j$KECrtc delta 19 acmdnVypwrCKZl{2f}x?6iNVI{N{j$J(gl(L diff --git a/lang/python/es_PR/LC_MESSAGES/python.po b/lang/python/es_PR/LC_MESSAGES/python.po index 20011ca91..8deeae26d 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/et/LC_MESSAGES/python.mo index 6e9c6d0a8557cbd04b5d487d3d9b19c15cf14ef6..89b3804b58ec00152f1f59824b47e745391b9d6c 100644 GIT binary patch delta 21 ccmcb~ag$?%E)$25g@S>Jm8tn=QzjKA07a<z>% diff --git a/lang/python/et/LC_MESSAGES/python.po b/lang/python/et/LC_MESSAGES/python.po index deec076dc..eeccccc30 100644 --- a/lang/python/et/LC_MESSAGES/python.po +++ b/lang/python/et/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Madis, 2018\n" "Language-Team: Estonian (https://www.transifex.com/calamares/teams/20061/et/)\n" diff --git a/lang/python/eu/LC_MESSAGES/python.mo b/lang/python/eu/LC_MESSAGES/python.mo index b7e4b019641280e13561297e197e7410d7156806..2cac09113490e6a47a5ca67a4c0801caf75284f7 100644 GIT binary patch delta 19 acmZ3&yo7l|KZlWpf`N&Zsrkm~yo>-k4h3KU delta 19 acmZ3&yo7l|KZl{2f}x?6iNVI{yo>-jv;|WD diff --git a/lang/python/eu/LC_MESSAGES/python.po b/lang/python/eu/LC_MESSAGES/python.po index 5f21601ef..3afc95834 100644 --- a/lang/python/eu/LC_MESSAGES/python.po +++ b/lang/python/eu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Basque (https://www.transifex.com/calamares/teams/20061/eu/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/fa/LC_MESSAGES/python.mo b/lang/python/fa/LC_MESSAGES/python.mo index 89339df1367d2e05f759b22a44fbde6db2850d7d..388bb4facc13b8bfe95f85d83448f4db1059ff89 100644 GIT binary patch delta 19 acmZ3&yo7l|KZlWpf`N&Zsrkm~yo>-k4h3KU delta 19 acmZ3&yo7l|KZl{2f}x?6iNVI{yo>-jv;|WD diff --git a/lang/python/fa/LC_MESSAGES/python.po b/lang/python/fa/LC_MESSAGES/python.po index aef009a1a..ef4e66649 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/fi_FI/LC_MESSAGES/python.mo index 25e22356f5a08dc22b7adaeeb3d78e963dc3a95d..dfa6aba76be140ad6bbcdd608d7bef9591f14766 100644 GIT binary patch delta 19 acmdnWyp?%EKZlWpf`N&Zsrkm~a*O~xlm(Lj delta 19 acmdnWyp?%EKZl{2f}x?6iNVI{a*O~xIt7LR diff --git a/lang/python/fi_FI/LC_MESSAGES/python.po b/lang/python/fi_FI/LC_MESSAGES/python.po index db7aad45d..623176d9b 100644 --- a/lang/python/fi_FI/LC_MESSAGES/python.po +++ b/lang/python/fi_FI/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Finnish (Finland) (https://www.transifex.com/calamares/teams/20061/fi_FI/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/fr/LC_MESSAGES/python.mo b/lang/python/fr/LC_MESSAGES/python.mo index 54d45fed762f230b5e58b674d01a81612d2048ac..416fa75c9881d4e397f5b5b83c345a873907d797 100644 GIT binary patch delta 21 ccmZ3Jm8tn=Q>GFo06y;pKmY&$ delta 21 ccmZ3GFo06vHXGXMYp diff --git a/lang/python/fr/LC_MESSAGES/python.po b/lang/python/fr/LC_MESSAGES/python.po index ebe18c3a8..f2bd01b95 100644 --- a/lang/python/fr/LC_MESSAGES/python.po +++ b/lang/python/fr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Jeremy Gourmel , 2018\n" "Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n" diff --git a/lang/python/fr_CH/LC_MESSAGES/python.mo b/lang/python/fr_CH/LC_MESSAGES/python.mo index b45acc7ee234bc9f21d000f89edd8101b50b8c9f..8bea975fdbd3fc3fa839c3550390bf586e8d40f6 100644 GIT binary patch delta 19 acmdnayq$SMKZlWpf`N&Zsrkm~3XA|e;02ig delta 19 acmdnayq$SMKZl{2f}x?6iNVI{3XA|eh6RiO diff --git a/lang/python/fr_CH/LC_MESSAGES/python.po b/lang/python/fr_CH/LC_MESSAGES/python.po index 1bc4d48a9..e0a7526fe 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/gl/LC_MESSAGES/python.mo index 797dd7426ed63a7e26aa95fdda323bbde966bb0c..5c0b1ef3386133a18fc13b15f66b5c3ee204418b 100644 GIT binary patch delta 19 acmZ3+yo`B5KZlWpf`N&Zsrkm~{EPrPS_NhR delta 19 acmZ3+yo`B5KZl{2f}x?6iNVI{{EPrP00mh9 diff --git a/lang/python/gl/LC_MESSAGES/python.po b/lang/python/gl/LC_MESSAGES/python.po index 13dbb8f32..cc8c6401e 100644 --- a/lang/python/gl/LC_MESSAGES/python.po +++ b/lang/python/gl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Galician (https://www.transifex.com/calamares/teams/20061/gl/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/gu/LC_MESSAGES/python.mo b/lang/python/gu/LC_MESSAGES/python.mo index 5e65e184e4b1d6a15c10d5e1e8581cf8509eaeb7..9c4847bcd77b26ec77b6d4217837c0e1ae923491 100644 GIT binary patch delta 19 acmZ3+yo`B5KZlWpf`N&Zsrkm~{EPrPS_NhR delta 19 acmZ3+yo`B5KZl{2f}x?6iNVI{{EPrP00mh9 diff --git a/lang/python/gu/LC_MESSAGES/python.po b/lang/python/gu/LC_MESSAGES/python.po index 5e00bc9bb..9e31e587c 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/he/LC_MESSAGES/python.mo index ca254403fb4b52bd33e9a5bba8c1a8faf6fdf050..5231dab2887f389115c0805e4dfcb942b4405155 100644 GIT binary patch delta 21 ccmcb{b&YGoe?|@?3k3rcD^v5$>`ea508%Xm8vp`ea508z#U4gdfE diff --git a/lang/python/he/LC_MESSAGES/python.po b/lang/python/he/LC_MESSAGES/python.po index 43a0b9ae2..36f95015d 100644 --- a/lang/python/he/LC_MESSAGES/python.po +++ b/lang/python/he/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Eli Shleifer , 2017\n" "Language-Team: Hebrew (https://www.transifex.com/calamares/teams/20061/he/)\n" diff --git a/lang/python/hi/LC_MESSAGES/python.mo b/lang/python/hi/LC_MESSAGES/python.mo index 9c5efc237e1d067609a51d483258c79a75bb8ab2..5504f771576dcfb266632cc13284f05d9b5d25aa 100644 GIT binary patch delta 21 ccmcc2b(w3!e?|@?3k3rcD^v5$>`Xq)08y_75&!@I delta 21 ccmcc2b(w3!e?|^NGX+CKD-(mw>`Xq)08vN=1poj5 diff --git a/lang/python/hi/LC_MESSAGES/python.po b/lang/python/hi/LC_MESSAGES/python.po index 3e2f7c7c5..a2a8bb3d4 100644 --- a/lang/python/hi/LC_MESSAGES/python.po +++ b/lang/python/hi/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Panwar108 , 2018\n" "Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n" diff --git a/lang/python/hr/LC_MESSAGES/python.mo b/lang/python/hr/LC_MESSAGES/python.mo index ac931c69735676fef2e704669333a9d224156e57..dd66059bbda62a95bdc6549e74a02a8d5656f659 100644 GIT binary patch delta 21 ccmeyt`Ga$VE)$25g@S>Jm8tn=Q>MdA088ZtEdT%j delta 21 ccmeyt`Ga$VE)$2LnS!CAm5IS-Q>MdA084%bAOHXW diff --git a/lang/python/hr/LC_MESSAGES/python.po b/lang/python/hr/LC_MESSAGES/python.po index 013b59492..24b5462a3 100644 --- a/lang/python/hr/LC_MESSAGES/python.po +++ b/lang/python/hr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Lovro Kudelić , 2017\n" "Language-Team: Croatian (https://www.transifex.com/calamares/teams/20061/hr/)\n" diff --git a/lang/python/hu/LC_MESSAGES/python.mo b/lang/python/hu/LC_MESSAGES/python.mo index 19aa8389a76367523d7eed277d9ed2736c2fa39d..4f62c3a16232a9590cbb139f3b21df05296ea00e 100644 GIT binary patch delta 21 ccmX@Zc7|<3B_oHCg@S>Jm8tpWM#j^O07`%cYybcN delta 21 ccmX@Zc7|<3B_oHSnS!CAm5IUTM#j^O07@AKUjP6A diff --git a/lang/python/hu/LC_MESSAGES/python.po b/lang/python/hu/LC_MESSAGES/python.po index b6d3785a9..90b3b9704 100644 --- a/lang/python/hu/LC_MESSAGES/python.po +++ b/lang/python/hu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: miku84, 2017\n" "Language-Team: Hungarian (https://www.transifex.com/calamares/teams/20061/hu/)\n" diff --git a/lang/python/id/LC_MESSAGES/python.mo b/lang/python/id/LC_MESSAGES/python.mo index 367bf272c440acc94560822fb6bdbb1656b86843..2cb9642e685c3f3e340371fe6865fe6515abb5ca 100644 GIT binary patch delta 21 ccmdnRv5RAaE)$25g@S>Jm8tn=Qzlj>06>!j@c;k- delta 21 ccmdnRv5RAaE)$2LnS!CAm5IS-Qzlj>06;7R, 2018\n" "Language-Team: Indonesian (https://www.transifex.com/calamares/teams/20061/id/)\n" diff --git a/lang/python/is/LC_MESSAGES/python.mo b/lang/python/is/LC_MESSAGES/python.mo index 5caca1051cdd2275bcc2717ab38d9514bbd5eddd..ceede96f685a268f316fd41ca04ee42147f9b516 100644 GIT binary patch delta 21 ccmZ3*v5I5Ee?|@?3k3rcD^v5$>`cl`07|F@k^lez delta 21 ccmZ3*v5I5Ee?|^NGX+CKD-(mw>`cl`07^jxg#Z8m diff --git a/lang/python/is/LC_MESSAGES/python.po b/lang/python/is/LC_MESSAGES/python.po index 7ff9df520..aeb38611d 100644 --- a/lang/python/is/LC_MESSAGES/python.po +++ b/lang/python/is/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kristján Magnússon, 2017\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" diff --git a/lang/python/it_IT/LC_MESSAGES/python.mo b/lang/python/it_IT/LC_MESSAGES/python.mo index 69fdb80c94dbe198773b3fd7fb90fd8d08c16580..2407dbe213cb18d12278dc8098376a97dc9363bb 100644 GIT binary patch delta 21 ccmeC;?Bd*@%fw-1p, 2018\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" diff --git a/lang/python/ja/LC_MESSAGES/python.mo b/lang/python/ja/LC_MESSAGES/python.mo index 6956c7822aec2e3e3a82f83e61808acd0686a7e1..22b7f39614cc084e894c22feb021da98d93f4483 100644 GIT binary patch delta 21 ccmeC-?BU#?%fw-1pPx# delta 21 ccmeC-?BU#?%fw-5reJ7jWn!?|lqsAE06E44+yDRo diff --git a/lang/python/ja/LC_MESSAGES/python.po b/lang/python/ja/LC_MESSAGES/python.po index 094731313..53280b249 100644 --- a/lang/python/ja/LC_MESSAGES/python.po +++ b/lang/python/ja/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Takefumi Nagata, 2017\n" "Language-Team: Japanese (https://www.transifex.com/calamares/teams/20061/ja/)\n" diff --git a/lang/python/kk/LC_MESSAGES/python.mo b/lang/python/kk/LC_MESSAGES/python.mo index f80a34e830ef797ca41efb61a23182d675c2e172..a869d667e372bbe415763ec14a08caf8730f06c1 100644 GIT binary patch delta 19 acmZ3)yoh;1KZlWpf`N&Zsrkm~+>8J@!Ub9Y delta 19 acmZ3)yoh;1KZl{2f}x?6iNVI{+>8J@Xa!9G diff --git a/lang/python/kk/LC_MESSAGES/python.po b/lang/python/kk/LC_MESSAGES/python.po index 599a78ef1..048347b3c 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/kn/LC_MESSAGES/python.mo index a55906ecf652949cd4705bd3d4fe47e5aca77376..cf404326f066dbde67092bf80009278c7529780e 100644 GIT binary patch delta 19 acmZ3&yo7l|KZlWpf`N&Zsrkm~yo>-k4h3KU delta 19 acmZ3&yo7l|KZl{2f}x?6iNVI{yo>-jv;|WD diff --git a/lang/python/kn/LC_MESSAGES/python.po b/lang/python/kn/LC_MESSAGES/python.po index 494299bf2..3c6ca0953 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Kannada (https://www.transifex.com/calamares/teams/20061/kn/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/lo/LC_MESSAGES/python.mo b/lang/python/lo/LC_MESSAGES/python.mo index 5bf185cf8649c8e82c7da00281b64250a226743d..878622b20159e8f9efcaed54fd3541b01f936d44 100644 GIT binary patch delta 19 acmbQmJd1fkKZlWpf`N&Zsrkm~%!~jyk_AEl delta 19 acmbQmJd1fkKZl{2f}x?6iNVI{%!~jyI0ZET diff --git a/lang/python/lo/LC_MESSAGES/python.po b/lang/python/lo/LC_MESSAGES/python.po index 626e03b4a..18f49126d 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/lt/LC_MESSAGES/python.mo index 28557858d5e6820dc77dc70704252ec15ad8a726..e5a4083ba80ab9969390f5702d6fe2858fb45c96 100644 GIT binary patch delta 21 ccmaFH^^9wSE)$25g@S>Jm8tn=Qzk=Z07w`GdH?_b delta 21 ccmaFH^^9wSE)$2LnS!CAm5IS-Qzk=Z07tO}Z2$lO diff --git a/lang/python/lt/LC_MESSAGES/python.po b/lang/python/lt/LC_MESSAGES/python.po index fe1dd58ed..d2221eeb9 100644 --- a/lang/python/lt/LC_MESSAGES/python.po +++ b/lang/python/lt/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Moo, 2017\n" "Language-Team: Lithuanian (https://www.transifex.com/calamares/teams/20061/lt/)\n" diff --git a/lang/python/mr/LC_MESSAGES/python.mo b/lang/python/mr/LC_MESSAGES/python.mo index a089d694c9cc378160f672c85eaf447358532af3..5ecb5178cf6fbe491d19c275519215f07c54f390 100644 GIT binary patch delta 19 acmZ3=yp(xDKZlWpf`N&Zsrkm~e2f4(GzDV- delta 19 acmZ3=yp(xDKZl{2f}x?6iNVI{e2f4&+67hs diff --git a/lang/python/mr/LC_MESSAGES/python.po b/lang/python/mr/LC_MESSAGES/python.po index e4d847a0a..8f61a6bb1 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/nb/LC_MESSAGES/python.mo index 378cce55a8bc7527ef6a63557382808293d0e380..86155114f1d6248b2f371b50a056f7df91f7e483 100644 GIT binary patch delta 19 acmaFC@`7c;Jq{xa1p^Z+Q}d0_niv5|=?47( delta 19 acmaFC@`7c;Jq|-N1w%tC6N8P, 2017\n" "Language-Team: Norwegian Bokmål (https://www.transifex.com/calamares/teams/20061/nb/)\n" diff --git a/lang/python/nl/LC_MESSAGES/python.mo b/lang/python/nl/LC_MESSAGES/python.mo index 769e8e775f5702a15e184f4b117c1da83224f002..8f6558834f4411c97ff6a35345a11ceab3f7cd0a 100644 GIT binary patch delta 21 ccmbQlI*D}yGb4wQg@S>Jm8tn=ZpL;-05^&R#sB~S delta 21 ccmbQlI*D}yGb4wgnS!CAm5IS-ZpL;-05>B9xc~qF diff --git a/lang/python/nl/LC_MESSAGES/python.po b/lang/python/nl/LC_MESSAGES/python.po index 49cfa3d3e..721f9d667 100644 --- a/lang/python/nl/LC_MESSAGES/python.po +++ b/lang/python/nl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Adriaan de Groot , 2017\n" "Language-Team: Dutch (https://www.transifex.com/calamares/teams/20061/nl/)\n" diff --git a/lang/python/pl/LC_MESSAGES/python.mo b/lang/python/pl/LC_MESSAGES/python.mo index eaed55ed3951438681be9206a94fa7463b45eb1d..9be7aab577b382cfa5e023484fd190b7852dfabc 100644 GIT binary patch delta 21 ccmbQmJ&SvTE)$25g@S>Jm8tn=Q>IjA06fM87ytkO delta 21 ccmbQmJ&SvTE)$2LnS!CAm5IS-Q>IjA06bp>3jhEB diff --git a/lang/python/pl/LC_MESSAGES/python.po b/lang/python/pl/LC_MESSAGES/python.po index a32062bfa..09b27b53f 100644 --- a/lang/python/pl/LC_MESSAGES/python.po +++ b/lang/python/pl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Marcin Mikołajczak , 2017\n" "Language-Team: Polish (https://www.transifex.com/calamares/teams/20061/pl/)\n" diff --git a/lang/python/pt_BR/LC_MESSAGES/python.mo b/lang/python/pt_BR/LC_MESSAGES/python.mo index a67e33f66e3e812e558681f857af7ab47736a5ae..eac961ff71aa33ee5ec2d8eb093bf0d3c57f5d33 100644 GIT binary patch delta 21 ccmbQqIg@jPE)$25g@S>Jm8tn=Q>GLq06b3x5C8xG delta 21 ccmbQqIg@jPE)$2LnS!CAm5IS-Q>GLq06XXf0{{R3 diff --git a/lang/python/pt_BR/LC_MESSAGES/python.po b/lang/python/pt_BR/LC_MESSAGES/python.po index 89fdcbd0c..4f40ef9c6 100644 --- a/lang/python/pt_BR/LC_MESSAGES/python.po +++ b/lang/python/pt_BR/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Caio Jordão Carvalho , 2018\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.mo b/lang/python/pt_PT/LC_MESSAGES/python.mo index f5b618b5d20dea1a31672d4acbcf8daf25217d66..a89214d0142291899ab96985ec493538cde51c3d 100644 GIT binary patch delta 21 ccmbQrIhAvRE)$25g@S>Jm8tn=Q>Fwa06V7z1ONa4 delta 21 ccmbQrIhAvRE)$2LnS!CAm5IS-Q>Fwa06Rbg_W%F@ diff --git a/lang/python/pt_PT/LC_MESSAGES/python.po b/lang/python/pt_PT/LC_MESSAGES/python.po index 9dabde94f..7f2a70dc1 100644 --- a/lang/python/pt_PT/LC_MESSAGES/python.po +++ b/lang/python/pt_PT/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Ricardo Simões , 2017\n" "Language-Team: Portuguese (Portugal) (https://www.transifex.com/calamares/teams/20061/pt_PT/)\n" diff --git a/lang/python/ro/LC_MESSAGES/python.mo b/lang/python/ro/LC_MESSAGES/python.mo index 2f8f300df137c03f8968f0050acc03b23c8628d0..1bd4758e88117cae8c737baba2145a24d3c67180 100644 GIT binary patch delta 21 ccmey%`ImEpE)$25g@S>Jm8tn=Q>GJ408FGJ408CH@F8}}l diff --git a/lang/python/ro/LC_MESSAGES/python.po b/lang/python/ro/LC_MESSAGES/python.po index c5cd117e3..fd16c3533 100644 --- a/lang/python/ro/LC_MESSAGES/python.po +++ b/lang/python/ro/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Baadur Jobava , 2018\n" "Language-Team: Romanian (https://www.transifex.com/calamares/teams/20061/ro/)\n" diff --git a/lang/python/ru/LC_MESSAGES/python.mo b/lang/python/ru/LC_MESSAGES/python.mo index 434a4e0fc00f73cf50886b2491bd0b97fd9d6833..e3e2b032d90cf0760a89b15a300c4efebb298b4a 100644 GIT binary patch delta 19 acmaFD`h<1DWey_?1p^Z+Q}d0tIhg=Q&jx7# delta 19 acmaFD`h<1DWe!6#1w%tC6N8PnIhg=Qbp~7j diff --git a/lang/python/ru/LC_MESSAGES/python.po b/lang/python/ru/LC_MESSAGES/python.po index 99f2b6eaf..3e4fc4e8f 100644 --- a/lang/python/ru/LC_MESSAGES/python.po +++ b/lang/python/ru/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/sk/LC_MESSAGES/python.mo index bb6e2937a9a951300fd170fe05168acc937dd47c..0dd441495e1a3b5d0f613d78ccda91bb593c92c1 100644 GIT binary patch delta 21 ccmbQiJ%f9LE)$25g@S>Jm8tn=Q>J8Q06cO95&!@I delta 21 ccmbQiJ%f9LE)$2LnS!CAm5IS-Q>J8Q06Yr?1poj5 diff --git a/lang/python/sk/LC_MESSAGES/python.po b/lang/python/sk/LC_MESSAGES/python.po index 8367fa5c3..2f3b0ba8a 100644 --- a/lang/python/sk/LC_MESSAGES/python.po +++ b/lang/python/sk/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Dušan Kazik , 2017\n" "Language-Team: Slovak (https://www.transifex.com/calamares/teams/20061/sk/)\n" diff --git a/lang/python/sl/LC_MESSAGES/python.mo b/lang/python/sl/LC_MESSAGES/python.mo index 4a3bfdf42263673aad9999987c6d61876db6091d..e800ecf1cae40b9bb1c6eb152a11d317983a65a0 100644 GIT binary patch delta 19 acmcc3e4BYfKZlWpf`N&Zsrkm~E{p&|I0gj( delta 19 acmcc3e4BYfKZl{2f}x?6iNVI{E{p&{-Uavo diff --git a/lang/python/sl/LC_MESSAGES/python.po b/lang/python/sl/LC_MESSAGES/python.po index 023a40c60..8e811c48f 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/sq/LC_MESSAGES/python.mo index a5ee0c3af902fbabb5c6563416cfa4c9098ef79f..b411951a24f2757c772bd609923e52189d7ae2a3 100644 GIT binary patch delta 21 ccmeyv@rPrBE)$25g@S>Jm8tn=QzmyN083{Dw*UYD delta 21 ccmeyv@rPrBE)$2LnS!CAm5IS-QzmyN080P`ssI20 diff --git a/lang/python/sq/LC_MESSAGES/python.po b/lang/python/sq/LC_MESSAGES/python.po index 7c78a70c4..0f3e368de 100644 --- a/lang/python/sq/LC_MESSAGES/python.po +++ b/lang/python/sq/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Besnik , 2017\n" "Language-Team: Albanian (https://www.transifex.com/calamares/teams/20061/sq/)\n" diff --git a/lang/python/sr/LC_MESSAGES/python.mo b/lang/python/sr/LC_MESSAGES/python.mo index b071a7166f2fd852c02794fc6dcbc2a4e4752b44..24eecc19b1864f89a8a2d9b235ee9ece293adca4 100644 GIT binary patch delta 19 acmaFQ{GNG2KZlWpf`N&Zsrkm~5sUyuFa|*Y delta 19 acmaFQ{GNG2KZl{2f}x?6iNVI{5sUyt)&?{H diff --git a/lang/python/sr/LC_MESSAGES/python.po b/lang/python/sr/LC_MESSAGES/python.po index c8b52fdf9..d883887db 100644 --- a/lang/python/sr/LC_MESSAGES/python.po +++ b/lang/python/sr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Serbian (https://www.transifex.com/calamares/teams/20061/sr/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/sr@latin/LC_MESSAGES/python.mo b/lang/python/sr@latin/LC_MESSAGES/python.mo index 815b243d70c5d26fb1bc0e962ca36c70606a53a1..27d72a95b7be2a361e0f38e6477b21f4054a2f21 100644 GIT binary patch delta 19 acmZo=X=Rzv&tYVtU|?cpYQAxL9wPuYmIZ|X delta 19 acmZo=X=Rzv&tYh$U}$J%Vz6;~9wPuYJOy|F diff --git a/lang/python/sr@latin/LC_MESSAGES/python.po b/lang/python/sr@latin/LC_MESSAGES/python.po index 0cb8231c3..bf6a1a557 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Serbian (Latin) (https://www.transifex.com/calamares/teams/20061/sr%40latin/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/sv/LC_MESSAGES/python.mo b/lang/python/sv/LC_MESSAGES/python.mo index 4a9a1f8804491d106141596ff70b7cf506fe4b2e..c3236012c7ff174c3f669bdd76d6eda325773820 100644 GIT binary patch delta 19 acmZ3=yp(xDKZlWpf`N&Zsrkm~e2f4(GzDV- delta 19 acmZ3=yp(xDKZl{2f}x?6iNVI{e2f4&+67hs diff --git a/lang/python/sv/LC_MESSAGES/python.po b/lang/python/sv/LC_MESSAGES/python.po index 5c5ea66eb..b9cb74c5c 100644 --- a/lang/python/sv/LC_MESSAGES/python.po +++ b/lang/python/sv/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Swedish (https://www.transifex.com/calamares/teams/20061/sv/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/th/LC_MESSAGES/python.mo b/lang/python/th/LC_MESSAGES/python.mo index 13c5108498fb42720760cd4ec21b9897e5856435..8dfdbaca7337d582f247bc457ef4065e5f8493c7 100644 GIT binary patch delta 19 acmbQuJezq!KZlWpf`N&Zsrkm~EQ|m+xCKQ3 delta 19 acmbQuJezq!KZl{2f}x?6iNVI{EQ|m+UIjP+ diff --git a/lang/python/th/LC_MESSAGES/python.po b/lang/python/th/LC_MESSAGES/python.po index 5ff443631..4d83497f2 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/tr_TR/LC_MESSAGES/python.mo index a26742798d03eb8950415ecba252495be2cd2b28..6976a94d235d93280c427bd5ce897514d664acb8 100644 GIT binary patch delta 21 ccmZ3%xq@?pE)$25g@S>Jm8tn=Q>J1j06xV9Jpcdz delta 21 ccmZ3%xq@?pE)$2LnS!CAm5IS-Q>J1j06ty?FaQ7m diff --git a/lang/python/tr_TR/LC_MESSAGES/python.po b/lang/python/tr_TR/LC_MESSAGES/python.po index 05df72bcb..59ea61cb8 100644 --- a/lang/python/tr_TR/LC_MESSAGES/python.po +++ b/lang/python/tr_TR/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Demiray “tulliana” Muhterem , 2017\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/calamares/teams/20061/tr_TR/)\n" diff --git a/lang/python/uk/LC_MESSAGES/python.mo b/lang/python/uk/LC_MESSAGES/python.mo index c74193fef8b6fdd0b695ccfdec4500c86f6e1a9c..64f638da4f7c1af08fc375806d0b454efa1699f7 100644 GIT binary patch delta 19 acmZo=ZDpO%&tYVtU|?cpYQAy$J4OIExCRFR delta 19 acmZo=ZDpO%&tYh$U}$J%Vz6=gJ4OIEUIqF9 diff --git a/lang/python/uk/LC_MESSAGES/python.po b/lang/python/uk/LC_MESSAGES/python.po index 51401375f..9aca36a28 100644 --- a/lang/python/uk/LC_MESSAGES/python.po +++ b/lang/python/uk/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Ukrainian (https://www.transifex.com/calamares/teams/20061/uk/)\n" "MIME-Version: 1.0\n" diff --git a/lang/python/ur/LC_MESSAGES/python.mo b/lang/python/ur/LC_MESSAGES/python.mo index 9a286384d9520bb11ff2e5a6968c8f8fb1ea9094..ae1248fd1d2ead9cf98552204ef47ff4d2f17906 100644 GIT binary patch delta 19 acmZ3)yoh;1KZlWpf`N&Zsrkm~+>8J@!Ub9Y delta 19 acmZ3)yoh;1KZl{2f}x?6iNVI{+>8J@Xa!9G diff --git a/lang/python/ur/LC_MESSAGES/python.po b/lang/python/ur/LC_MESSAGES/python.po index 7a4c4277a..f10805858 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/uz/LC_MESSAGES/python.mo index 19c871a4125a4081e5a46c7b19f3e3db0c32041b..0978980d556f2a9a84fc1ecdfedfe5f68583e736 100644 GIT binary patch delta 19 acmbQkJcoHgKZlWpf`N&Zsrkm~tc(CS-UUbi delta 19 acmbQkJcoHgKZl{2f}x?6iNVI{tc(CSgatbQ diff --git a/lang/python/uz/LC_MESSAGES/python.po b/lang/python/uz/LC_MESSAGES/python.po index b65f871ab..1e02a193a 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: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/zh_CN/LC_MESSAGES/python.mo index 69bd2f8a5eb873b4377f1cc74e56f0f10bdcc886..22a166e353f807ef52fc67df09699accc5816ff4 100644 GIT binary patch delta 21 ccmX@hah79)E)$25g@S>Jm8tn=Qzi)}07J0_DgXcg delta 21 ccmX@hah79)E)$2LnS!CAm5IS-Qzi)}07FUz9RL6T diff --git a/lang/python/zh_CN/LC_MESSAGES/python.po b/lang/python/zh_CN/LC_MESSAGES/python.po index 454a9ac9c..f20d60e7a 100644 --- a/lang/python/zh_CN/LC_MESSAGES/python.po +++ b/lang/python/zh_CN/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-16 11:40-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.mo b/lang/python/zh_TW/LC_MESSAGES/python.mo index 5403be70282618031f7b4c37f319720dc53e7308..bc07e495fffb574012b1e55b45f106345b882b87 100644 GIT binary patch delta 21 ccmaFH@r+}GE)$25g@S>Jm8tn=Qzk, 2017\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/calamares/teams/20061/zh_TW/)\n" From cfcc753130a70137cf989535d7bb1c189283a699 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 03:29:58 -0400 Subject: [PATCH 03/68] i18n: Enable Belorussian translation --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4031e698a..8e7ca237f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,8 +212,8 @@ endif() set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ ) set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk ) set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb - sl sr@latin mr es_PR kk kn et ) -set( _tx_bad uz lo ur gu fr_CH fa be eo ) + sl sr@latin mr es_PR kk kn et be ) +set( _tx_bad uz lo ur gu fr_CH fa eo ) # check translation update set( prev_tx ${p_tx_complete} ${p_tx_good} ${p_tx_ok} ${p_tx_bad} ) From a04915e6fac6b93452cba1f6013ea6466068769f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 03:37:37 -0400 Subject: [PATCH 04/68] [libcalamaresui] Add 'emergency' concept to modules. --- src/libcalamaresui/modulesystem/Module.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/libcalamaresui/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h index 896d3b597..ae9379859 100644 --- a/src/libcalamaresui/modulesystem/Module.h +++ b/src/libcalamaresui/modulesystem/Module.h @@ -155,6 +155,17 @@ public: */ virtual void loadSelf() = 0; + /** + * @brief Is this an emergency module? + * + * An emergency module is run even if an error occurs + * which would terminate Calamares earlier in the same + * *exec* block. Emergency modules in later exec blocks + * are not run (in the common case where there is only + * one exec block, this doesn't really matter). + */ + bool isEmergency() const { return m_emergency; } + /** * @brief jobs returns any jobs exposed by this module. * @return a list of jobs (can be empty). @@ -176,11 +187,14 @@ protected: private: void loadConfigurationFile( const QString& configFileName ); //throws YAML::Exception + QString m_name; QStringList m_requiredModules; QString m_directory; QString m_instanceId; + bool m_emergency; + friend void ::operator>>( const QVariantMap& moduleDescriptor, Calamares::Module* m ); }; From eddee7d76acfaf7eae69eb1fc42420719363ed46 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 03:38:17 -0400 Subject: [PATCH 05/68] [libcalamaresui] No point in isLoaded() being virtual. --- src/libcalamaresui/modulesystem/Module.cpp | 7 ------- src/libcalamaresui/modulesystem/Module.h | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index 05394e69f..54b6639ff 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -276,13 +276,6 @@ Module::interfaceString() const } -bool -Module::isLoaded() const -{ - return m_loaded; -} - - QVariantMap Module::configurationMap() { diff --git a/src/libcalamaresui/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h index ae9379859..9b481b157 100644 --- a/src/libcalamaresui/modulesystem/Module.h +++ b/src/libcalamaresui/modulesystem/Module.h @@ -147,7 +147,7 @@ public: * @brief isLoaded reports on the loaded status of a module. * @return true if the module's loading phase has finished, otherwise false. */ - virtual bool isLoaded() const; + bool isLoaded() const { return m_loaded; } /** * @brief loadSelf initialized the module. From 9f8f76befcd4d975f6c225597d1c508df07f49b5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 03:45:14 -0400 Subject: [PATCH 06/68] [locale] Introduce timezone-widget debugging Replace pin and text label with just a dot (to pinpoint where locations are) and draw latitude lines on the globe when DEbUG_TIMEZONE is set at compile time. Since there's probably still timezone-related bugs (in particular in the images that map points on the globe to timezones), leave this in the codebase. --- src/modules/locale/CMakeLists.txt | 5 +++ src/modules/locale/LocalePage.cpp | 4 +- .../locale/timezonewidget/timezonewidget.cpp | 45 ++++++++++++++++++- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt index 384135d4c..853ad8cc2 100644 --- a/src/modules/locale/CMakeLists.txt +++ b/src/modules/locale/CMakeLists.txt @@ -4,6 +4,11 @@ if( ECM_FOUND AND BUILD_TESTING ) find_package( Qt5 COMPONENTS Core Test REQUIRED ) endif() +# When debugging the timezone widget, add this debugging definition +# to have a debugging-friendly timezone widget, debug logging, +# and no intrusive timezone-setting while clicking around. +add_definitions( -DDEBUG_TIMEZONES ) + include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) set( geoip_src GeoIP.cpp GeoIPJSON.cpp ) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index e2571d085..e4f36daad 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -494,13 +494,15 @@ LocalePage::updateGlobalStorage() Calamares::JobQueue::instance()->globalStorage()->insert( "locale", bcp47 ); // If we're in chroot mode (normal install mode), then we immediately set the - // timezone on the live system. + // timezone on the live system. When debugging timezones, don't bother. +#ifndef DEBUG_TIMEZONES if ( Calamares::Settings::instance()->doChroot() ) { QProcess ::execute( "timedatectl", // depends on systemd { "set-timezone", location.region + '/' + location.zone } ); } +#endif // Preserve those settings that have been made explicit. auto newLocale = guessLocaleConfiguration(); diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 976c139fc..a06d3169d 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -23,6 +23,8 @@ #include +#include "utils/Logger.h" + #include "timezonewidget.h" constexpr double MATH_PI = 3.14159265; @@ -75,6 +77,13 @@ void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location ) { currentLocation = location; +#ifdef DEBUG_TIMEZONES + cDebug() << "Setting location" << location.region << location.zone << location.country; + cDebug() << " .. long" << location.longitude << "lat" << location.latitude; + + bool found = false; +#endif + // Set zone QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); @@ -85,8 +94,21 @@ void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location ) // If not transparent set as current if ( zone.pixel( pos ) != RGB_TRANSPARENT ) { +#ifdef DEBUG_TIMEZONES + // Log *all* the zones that contain this point, + // but only pick the first. + if ( !found ) + { + currentZoneImage = zone; + found = true; + cDebug() << " .. First zone found" << i; + } + else + cDebug() << " .. Also in zone" << i; +#else currentZoneImage = zone; break; +#endif } } @@ -149,8 +171,28 @@ void TimeZoneWidget::paintEvent( QPaintEvent* ) // Draw zone image painter.drawImage( 0, 0, currentZoneImage ); - // Draw pin +#ifdef DEBUG_TIMEZONES QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); + // Draw latitude lines + 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 lly = latLine0.y(); + + for ( int c = 0 ; c < width ; ++c ) + painter.drawPoint( c, lly ); + } + // Just a dot in the selected location, no label + painter.setPen( Qt::red ); + painter.drawPoint( point ); +#else + // 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 ); // Draw text and box @@ -173,6 +215,7 @@ void TimeZoneWidget::paintEvent( QPaintEvent* ) painter.drawRoundedRect( rect, 3, 3 ); painter.setPen( Qt::white ); painter.drawText( rect.x() + 5, rect.bottom() - 4, LocaleGlobal::Location::pretty( currentLocation.zone ) ); +#endif painter.end(); } From 2c18ba6ddb37a9d220b86c1cbc5b7cc1ac63ec54 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 05:52:07 -0400 Subject: [PATCH 07/68] [locale] Adjust latitude calculation in the southern hemisphere The scaling on the map was a little off; the degrees of latitude are a little wider there than around the equator and Europe. - Johannesburg is in the right spot - Hobart is no longer a suburb of Melbourne - Punta Arenas is in Chile --- src/modules/locale/timezonewidget/timezonewidget.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index a06d3169d..ae048ab6f 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -131,13 +131,17 @@ QPoint TimeZoneWidget::getLocationPosition( double longitude, double latitude ) double x = ( width / 2.0 + ( width / 2.0 ) * longitude / 180.0 ) + MAP_X_OFFSET * width; double y = ( height / 2.0 - ( height / 2.0 ) * latitude / 90.0 ) + MAP_Y_OFFSET * height; - //Far north, the MAP_Y_OFFSET no longer holds, cancel the Y offset; it's noticeable + // Far north, the MAP_Y_OFFSET no longer holds, cancel the Y offset; it's noticeable // from 62 degrees north, so scale those 28 degrees as if the world is flat south // of there, and we have a funny "rounded" top of the world. In practice the locations // 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 > 62.0 ) y -= sin( MATH_PI * ( latitude - 62.0 ) / 56.0 ) * MAP_Y_OFFSET * height; + // 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 < - 14 ) + y += int( (-latitude) / 5.0 ); // Antarctica isn't shown on the map, but you could try clicking there if ( latitude < -60 ) y = height - 1; From b7dbc8cc1ff4dea3d31005626e4a942c8de9d90a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 06:33:50 -0400 Subject: [PATCH 08/68] [locale] Name zones when debugging - When debugging timezones, state their names (e.g. UTC offset) and also log the pixel position under consideration. --- .../locale/timezonewidget/timezonewidget.cpp | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index ae048ab6f..5acdb6458 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -27,7 +27,12 @@ #include "timezonewidget.h" -constexpr double MATH_PI = 3.14159265; +constexpr static double MATH_PI = 3.14159265; + +#ifdef DEBUG_TIMEZONES +// Adds a label to the timezone with this name +constexpr static QLatin1Literal ZONE_NAME( "zone" ); +#endif TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : QWidget( parent ) @@ -50,7 +55,12 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : // Zone images 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 ) ); +#ifdef DEBUG_TIMEZONES + timeZoneImages.last().setText( ZONE_NAME, zones.at( i ) ); +#endif + } } @@ -77,15 +87,17 @@ void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location ) { currentLocation = location; + // Set zone + QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); + #ifdef DEBUG_TIMEZONES cDebug() << "Setting location" << location.region << location.zone << location.country; cDebug() << " .. long" << location.longitude << "lat" << location.latitude; + cDebug() << " .. x" << pos.x() << "y" << pos.y(); bool found = false; #endif - // Set zone - QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude ); for ( int i = 0; i < timeZoneImages.size(); ++i ) { @@ -101,10 +113,10 @@ void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location ) { currentZoneImage = zone; found = true; - cDebug() << " .. First zone found" << i; + cDebug() << " .. First zone found" << i << zone.text( ZONE_NAME ); } else - cDebug() << " .. Also in zone" << i; + cDebug() << " .. Also in zone" << i << zone.text( ZONE_NAME ); #else currentZoneImage = zone; break; From 4bacafb41102252321dbcb30235131fca0e5b8b0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 06:44:28 -0400 Subject: [PATCH 09/68] [locale] Fix timezone pixel map for Tierra del Fuego region - Punta Arenas, draw like it's in -4 - Ushuaia, draw like it's in -3 FIXUP pixel --- src/modules/locale/images/timezone_-3.0.png | Bin 16635 -> 15999 bytes src/modules/locale/images/timezone_-4.0.png | Bin 18758 -> 17925 bytes src/modules/locale/images/timezone_-5.0.png | Bin 23061 -> 22353 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/modules/locale/images/timezone_-3.0.png b/src/modules/locale/images/timezone_-3.0.png index 0c5246e10f5d225623eca6f1e6948a00055690b4..dc64644fcd17b5e8f0bc6039f8dcff700293f923 100644 GIT binary patch literal 15999 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 literal 16635 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 diff --git a/src/modules/locale/images/timezone_-4.0.png b/src/modules/locale/images/timezone_-4.0.png index d556e93f4095a72015eb6a96ca4fc8a05fb1bf10..da1e73735a3ec08d13659cc69ca04b356a109650 100644 GIT binary patch literal 17925 zcmZ_01yq|$)Ha$L)G1!9oCYZF6qibnqQ%|ai%XC?4hIP?#S0-pgIg)C#e%zgafdrO z-}=|Rcir!HwJR;_oq1>WJp0+t-h0xZ_lnYw?o-}}Kp>Ca$-q<~kXsKSkQ-`u@xV`l z#A@2X$Gs0S+Aa_XUIy;Z4aq5P@D~V$tE85zs-uOghq1Fc#KXgb!`i{t#nkwNIftXO zWzx1NC3uJd_mG*ftGTeLvpM*H@NjYSu!G-RJZjv0!n}gQd@otKxP`g6;N<4z|E~e| zj%L;tUjH+IONgC^TaAlL_$99}7cVOp4;b)q-h&eY`3Le2_FBy|d2`Auo@T^r=JYr@ zzxsUO{JT`<4SvXHNaZIIW|i0r9Zbc%3!#=#maW>ekdN&egi}?PIKS@5POO=QDCXN*PW%%%0B; z66DpW)g6lFujI{$t%ynA`GE%5R2 zCE-)tKMR5yA$&>h1z|T$n;I#DU_;sdP}?EfYxYE4LNKGE1M&gH!8N==MLWgEt0hH( zRLOPoAZl#7{cHWB%g?(+UP^26L3Sh|*?T&+O3g(Syb#E!=-r2}qDiy06wt|4tNAg8 zoW0~4VTO0#nA)MVLXJ1BDlnfN5f!E9Sc2^X6`FT#LE6gWHd{}NTMaHL45?6+)S@x^ zZQNjS9M8ER3guANVMKN@F%LIkpv*yRMJ^0B{+*z&MO9lObpoC2$&&-4b~2q>JDLl1 zuYDO_FmsWHWup4ld5jD|iV~SLMv8PY`t=kJ2Y2%F%BynrC{}t@B$65P&b7WJ# z#F;`u!ftkjz;q;y!_HIhS+v>2Q5l(1-H{Moq|6hUry6cUKP6xMykk6S75~$rz_9QX zu@pbdv+ha3m_R$q=+MosNFzc!tZA9(mjZ#zeg}5eQQDfhF4C;D|I@lcd8t_9A~;fE znVV!I$82jqt4YT#bunJT(VMJw|Mz;#y-a4p!qg9wjhZipvh&$vEW;jI4$ZGIBB9U< z>Z?;p&Z(mxJjOPsO{xrDzTrgRKoN9Yke=MdKhHfpnKw>SwDrT1wfuKJ3^bo3s5D9E!a0{O7;4>$uX=J;1={)%IHiACE zy{S4dTGsX9Op+__)I8I%vr7pfT_i?X3)vHqmg2LE)sB=74Qy|3f9n*zCjQga#!`%i zOhoE2xl1~mqEFK7k1tXg%E>9Io|~n8fij-@oWRE?xp3II!@ZPKP#Ni*e@{TOI6wcl z4L4FHpBK@ocv8Gc&X+%74`IJ+xyVI{$c6XmWW} zY9gv3hA^_?4xWdbMF};5g=F~o$cD}hNMo3^?@9!u@5Hhx~>2S`>+HBp1VYS4w|=r687X;yNUem{=)wXXcXz zQ`MK?NW8h5Abi?}=`~{T)gzIT6grVfS7{yVEv?Lqy~&_&dwVBH?u|aSo?f`Jb%E(= zQ^*38Xj9^%w6Gaww)AtzY^&&>xEVS&;Fmc#%rC!iK9yf-|B7FVCd7x;=d=6Gt3p0cEDW-aYJ)|Ct4TuvX5xKXp8F=^>WDB z?&}&Qr*gcU1elUT{RD(DoATu8#}}nJ`LV5OdUrF=>@xLOI+_V5hA{#gGrn8QNcIR`V9IPm?B^+>pZG!P$JTWq*FHq+OX` z9Z*XW(We`gkLTCWFzCqCv(m_yt$|Eid}J@;I`c*cns#$nHNjGoVjbLWG(J)i(TKrF zStDa?F<6r?!L&k=#m3>;Vc?K*TJPTaBdU`nz#KNLmdRx)xltV$S)_by%evBsWn?ta z7QGzd6TSucs1Rl-@F^@;{0d3ycU)c<6cH4;x%yy^Tv1fWM|9bZi7@hqpf1$|!{q2p zJ|XaYPXr;Jk?#$)qocv1@D3nfj39~wGHP=qeq!W)e3=(PupNHsSmi#p)T$P@ zkjLMq{%$K!Bkp&Tt)7x7p{0knu5;}&jcDnIdDu|NJYaJ)&bYE3mnYL^{0nZas){6c zqAE13+YpsO%}?plv5pOeChs~}Bd_dqFI(ay{FhBw*Fj9sBDi_$1EN>V3%xr)E~S*^ zK|rHif9{iM5w0E*7V<6IXuwgXH6-ur2J^_coN81I(LJAB%G} z8ix2d?g4bL@nQAPbIuC(D&B|k$EW>!-&!bi**FucbjCuNmozriG1Y<#5~X}psd|aL zyyTn@#RNorHy-Gm*U;xzzV&bmOF3=*=8Y@_)|?dq$lCbeWYjnYxAkt96T)wn8aCsP za#fs(k`W2w`or7uZTvG6h5S;=)LN~b<3_>bm2onB5jbnj1bnd`)+v%uZE9pU-~QG5 z5CdRUOB}0y2fMJ^KbsmMzIP#i-W?J&dU_6br@yk+jf3YhW$P)KpjW)H?b%0`<_y8| zPwrqQvybV?&WioT^*Vcl+e@KutZ?`wqkGsWOe5sn{Ood4dA~ERulM0h&Aypgtqbx& z*#2vyo3_KUnHEsuy!H_5k^PvJ7W!quc_xM^8RQM_sA>0+*;2-55}H>3t*YQ#BScSR ze_gXRC-uB5S}876)bdL_tz7GO;&)R^o-ErfYMWuKjM}Uj7#X&_W32_Od+o|>7h^bs zI)_BEJ&E+q$a@o=A>jBu>2m0AP+1+6W`?}2DTz2ew98d5Mr#d}+qTJ8t@a44D`p!g z^#pv14@Y+@+P08r;JHVL5l?x{{yJt*8AID;mZ*haM4TC$dkOJjbc$V_a^O}wolZi} zIx-_l{K0`#ZjY`}SbhF2;U(Db!G+xtc19w32&%`nzbx7KJDtwgm&!^DBlLUtDYuqv z^6IG19P|s^%Ql#azd}282=9dj*`c_G1M^#KeBGRjYn}c0?%$Vl>3997E#e$iF9pJh z3&2lLw!8SrAl&=0&*~>LcP2-aw{J{iAerxJ!*oy(^d6=8Jr)<`Og;(QxBiFo9l5E7 z&(5K6AsjcF$`bw2qn*1!7fB)6YGY2Y`q#$=YMpKdc{5>(2rrAp1M8W3t*x#G!-)!K0U0wE%BTbf#cqjNtPk?peL{N-GAYR(8=NWMiT z)NKPi$!O~C!^YTL$)@i%BrBnYI$A}o+8l~BhHm3$LOxchlHu_%`Ex$(7+<;(#;)h9z6uBx1_4 zz`#f;FR$Gp)dnY6a0|k|!msEzg`j6ZGu$JnJ(-K)9tcMaH*fucm8x23CvPS&$qvzD zKV-$)tedoU>ad#3i(MW+?tDL9+BKM6+N)XLU$g4@Mhmdp#w(zLW#HHl#tWYu`3Knb{XSr$ATit3$^Q7Ho4wpyc(`s@;*d}M-J}F3RP*bJ(Oqbp%Gj; z*T+247ky`I9TS(u2lp=K@ps^`A_<}L@&r5B$B|x6v$qpzS2>bEw;wuCWI{zGx#V3} z?rC+uxPDd(pC zNK3Aop`WWXSTW(vxXZnudzX$HWECyr9%3Kdi?nQnt zM{pp~+5b7|9ukVY7`JSLzSM(SCbE!`2^NNPe80CT>zn-7f~gu6D4XTp_C3@?eVY4y+$H*TRssy_?YDv26NLK*`FhbN2xt6&jqsS)LmE=Tx5jXkqDfKIj9EBWLkh4v9HrxXD5x_xi-4i z*EePx&MOn#@cu(UDaouas?ExsvQIJIgEuq}X(b16Aq_o_OHmzl|C@0lLzI~I&FR~7%otmJCQH|;%p>5k($%sQc?X3W|5tx9 zG!mB6_H!%11fvEI_;Ub4CiWAk2c+B&&rP_ojM41P|p~tMxt}y0cedu(b zQ&FLIhq-}YD>12lB{?wA8HyUIQKo`GUPS|9wx|(pkYQ#h&Uy#mWzsK-z7uqaRb8zp)JS%$x=YAW5W3%&&;m zHC&C&x!tN&j>y7_3y%q`?5E6f24=?Gywg_LbEZ$80Vc9&ilP4zl;2|JbTRbTg|(}r zIQ42DU!?j$#S0Z>gBa3=NWFZGb4I%8BTTtGE`a0m8mo+Y(F z!v3M<-qeFzRg;sc12z^pMJ1Lze<#-e;}2~dzdJ8rdzL9LeJ2vnKM1+y^>-AMkt3QXR zXkMZa^8x;VI&oXyfHB(|cHNOR$h zcq|$b0$=8{eF6ZYfO~jsk~K{`S=VPdk3(XEE#I6~M>ipfSH#ix=Xv>gRKpWV&ieDs z4s;>kx|lit2e9#^M_?)9biBO7Efuw^!oB1d->>RZ?L!C>XE$10Oasy$U!upQloWV6 z2WWvZz$#P#V_RSZtH#y!?!~^HadbV>uWUeWoD`87y6D~nYyQee{6o^N0e+EP*nOo` zN_@3a8}EcCtyo`C=TauER+&B+Ri-ZQ0syrk1qwxr?R3&j@|qT&6TK%}K{35%`99R_g)s6a- z2Ib}WYDo|#g|dow|GjAX8FgE0fxYK9M0l|drZfX)sQbG_#pLsM;vvnIm2lsy5YWZB}jdGWwU5o@YO2eSXXYfmktvyh=yz(Wc^Mpu1~f zU|^7)8dA&Om_vN*XO%HB1Xyx*MD7Ph?WtDKn|qQlYR#&ktY8rqWrAA*Mf_@$IY5ge zR*fM#UDHSDz9AiDlf+8-e%X@N(n1M77|v+@UOpR@yKhD+`0MKX@w{>I<0XjtBOU2V z&-SKEH^kPPgNPlyt^7|P?YcxX- zLj$Aa=pM_WSI5#CfpyS?Vh>;KR}oy-L@bIT{hIo-=NY%XR(CD0zOaRc4MQWNh=eHB zWci;v-upXF$cRAOZ_o&OD0%EG)@OgCVO+jdz{3>B<4MmLGXIC!o0s z2*97%-}R5Ob`k$~TN!jh&>B5}jHzXY2%-hQh;&up zKcaf{kaYX;&5ANU|8*_Q;!rHPqgXMYzmX1GCXgLJyl`_rqP1#hC^c+oK{LLZvh+WZ`3vv5-DdnGSh8Wv{kvHMSW2a}#{H!k*ubZ| z@VCH?mW@tHe{>L0OhwD&iMO3%W9YIGRwx)N!){hqy*>yoyHqLyQg*0ylGtS;QvQ0(k-)HML z75YH95X0>@WwqL+ULYU62%i*LaB|C2ntN1t|MhQlyo}^H;qk;F7gMofeI_=|vCuJu zQ9;qx2^M3;u2{~#`p(k!vdYKlpNGg6#A#jhdRW*W*`Pxz4kSJBokJ6lFWN6+tX9E0Gj7 zwkt2n4MCLMaA+y1jf(NT3qRq+(`?9+4C|0J<0gH zhv~yES~_MuFPujNTpyrmPosOq z4}YVNdyz~p*AmuwHBAcXK8*%Cqj{Q z#_g1^R`)!aLz=H(Daic>U^hDIzW{!uM#vN+4vKI1GbehBD7hz#iO@#>O?9+Z? zQ`W%%UP)C2XB(TB;pCPC98B9rkQD2YEKW26=+X%XVXS{HO>B}}M*t(J z!?x+8X<10z!kgI_Fqo-STOC7DB_L8{o5dTuvGHN@#Jx|>3oEQl!u=OmjUSZx{?HR# z)B11B{=ISOvR1npMz87|v&|=!>mU>(e09~ZKiy%&kj>b)T|Ii&{i}f}v#j3!c&cqA z%2TH$Q?3xixU$C}Bz}&#>WbKm$h}k&bl98fC~!f#wJLL{a&6PTu>Mjr0s-32q+m55fTnEc_R=Vrch@CoRpqr0V--aSc9W;E#5LtReRWY zD;xjlkLIDubMeAtZwDi|`9F769w;xWZ>SHCx@{zQs8bP>W+TVO@_LEa%G}pqx8<*z zt$J-wJUf|jGDs)8m+`8MDkRbE6PUXd$dAOXRKN7IY*f2Hrfg!~|A(Cejf(NrbUAEWi}MnV%o>yzV~@Ij)@t`P`utdd>!EU>jQRtkYcY zW``33ojBDivWr<9YspK!9xeC1exPVl)4Q}X9^hW*?ReZcK!c{r@tMhE$+pj?PGUow z^>OwRgmQFmr~cFwVSOQw->L;?W&`-q^9Kodhiidlqe5MUM9iEHi+c`yhNjQQUsuz* z5S#I!Yt3bl950oVT$ntT%v}-xwWhlENU$$zq%jc7rigQ=0N_qZD=b?rFy@ig!Iqdn zx29L8ODac`qd_(Gq5^I!UxTPKF)Hi%xzqsreB=Q8<^PmHp*j@mdgHt<%avDpJgQc@ z3ABkEWZ%hKsx@pgwHoh&&ZyLFyxD5*`GBg{?r$}1lCUzeejQY1Bn2?Q87OLxgpt{Y z4LDYBJXHtFNSc`Nz_lMCAG<)s%I!yiITLuB-Mjz4e(kGhX3~KM@O(Mj|EF6Eerlxf z|35IVu~^EQ)kH@hG~pZ7L4gkZ`d>Q1iD(XJCiLiffH3379mf-y7e`|UJ{+)OPW)u_sg?r$CG0oY6%-{cW7XUo*zckFj zPyd%Au;R(~LB?QEXy61mRfC)U|Iu{+W7bJf5EzJ&#Z-g5?IUujyc%Nkz-9YvmzI|L zsqD^?$#}1V2V$8Kp5O8H+WU!SXR%-9cy?LRdzO+nj9|`D6M&twu`fHpkKG?>Tr05H zF4SxsHZ{q6xz2aD=gB%v1TR!-6ewG71(J8^JjWHl*g;ZMkhVsd&oEKFP+?ZW?-0sK zQ+Md=`xfcZ+owRIn>^<4jVW?b4zg{Imou!qkX*hAP8$Vsj)IY^OKvLJ!VMX=zbVz+ z!hz6x#Cco|rXxe}@#0+@jE>u^GKa7M|?E4(Q=DOgZ2gWTF5og7>O7YlrF#Ax>* z`lW5=o2M}}{Zy_Z+Qmx)(_@}CLZ#gJw*d$xKpoz`sS(@t8bxBi_!`q3%CEtos=D=G z;Q@v7tw=PU+r-adfrB3!cC#xsQp0+-_W;6vxB*PO%%3o!D=}8z)ICM?}xtcm7iB zIkcsiQ(S+$PRw0=hC4a5n(8=9BtWVb)=NpM%?*{cmaa)9B4p;2zdhXIVri1lyVarR z*eWS4`J{+WIvfVwE5|>#Kfb*DC!_yoRI>y9ZxSLvLm zho1(jk%Ky)WuI$k)A%1QNn9orwu?M+17zSs1yb#i*3L+}IUPquiGA8!nAura;o&5TTx`>v#-rwBqT9ZY0m6V7be9=$HX-?tzFwtMkshs%XiBDtg;8v{}4uStH^8Y+;4lS^Ml>#lmYaxFXn2a zcPwwtF+9!dI3zO7QE%;aXh}f{fGswx5n^YuwzeHp!FlvxYpQojb~we=y^JxqfJWr% zQi;_(1{*6*4_rj8+aAK77vO*RUVJ9*G%##vgYGukl2~6X+G9)TWVFU4=vxf;x=8pl zE970k>qb*gjUoK$($5IRQhRAuC&|v2U;`8y>jTyKvY>NQT3uRqesWZPR5iz&>)>y* zHoqMbzMy0KmI2G8JkGLYFfNp+2r8~0!hmzUaJ?uGP}j}lq7FgwZ~52~<7LAbRH8_@ z2c{Z6C|MsS5$9enPv#;7X|P{)LOCeSsoUPs*SUIgO%?N6yLBTz^q>IyK&A;l-5CA) z?6O}vQ|W43T7s8XnQE+@_pm`2EnC0qYuobullIH2_2Pa`|Mhrk@q(qmz;;49sEyI= z``UP(!lNVV_pP=Qw(3vI=7j;7VWo{A{75ZVIcVNGR`wug1QlplvA?1;a($R*sVPne zl?tc!8eGgwNXS$t%!_R^AR*Ky63XKA1s%QF^*;~qmHp|v$|b0mc!<%=8_Mksi-_2n zfY0`#KQ;d{({R)@kswhL_VDILcrJK^5~^yI%v>x*T(q3SzE(-$su#&S7le===h?Sk zXf8!uu6>N8&lvG42qsfD0xzfJllFr=-}rh!mmUg->zI_+z89L0cdYoDMmKkZI&#fBapQI8$9~G8&Q35SjjyWe)&136O%+ z@6$8CMLL?iqs3mWfv^B*lBTJQ^h6TAj4${*$ zdP3N*qsCwOc=}YV?iwpK*Kss`($^9ll^@$(N_#yrBjUYTyuQ029Udcaa1(fn0;mEQ z-MTz*ylxMeIO}fcUQ8BOHbKO?LYY(irby&iul%q5eK$+54>5h>7yk9|iP`$pWAptp z|L(;UI3^Q2tZEh}^E7a$G6O^BFe``BiS1vvIcaYCe0e~7*=;CRHP!qQ%%EPlLs;Fh_bRRSZGy~vK}r|uGiA5N=V+HrokV23*}*n zgTDa&fyM(B7pgXHDH8+viYliR?~Np#5W&>-52pD&a;tW{zdr-%1KrJXEpzKQ7Qg74 zfx~(GKZjA!-I|;lGfKlj_Fl;X>=;;rDd#@!;yHz6eDu>v_5l_(JQhjG)@Py z-^Me#r64MzTzfrtOUyyu_n+8*Sq*l7Cd82GBVl>-Z}{SRm!&zw4Ib*?n%|?spb}xn zwUvOEXrLnLFP<^sEhzAv4OK1q?uh)WXubq05{o*@UpC&2 zhjhG`=1BC~E|e1Ji7LcBYXl}Y!vt$%u;q4cP;jvexz(w9zBmwZo893z;6dGcB4W1$ z1X-bIOE-AL@$ZI{lZZ+4P(Bt(T~@Y{>qP?b)6+IxeOdsaNgRaWCy@cBs%^Q+xwO8* zC%ZGJ^>!>|k65ZI^xo%8-nz%B3H#pz?9Brvb44k_TJ5nh+m# zJ3;UGTL}#k`YWM(PCtk;d)eyh#Z@0zq5?5<{n34>+VSyVa55UNK#0+Tk|K|H{?N9& zznIRYDVDWIr`{mec7pXv9Oo7Gl;bjyqSO9^hjv90XH^Z}eqPuM<2svM%(R~IYZxph zP`!T{+@OKjfquWyLc$>Du;EY5rf5{^_k%4f6n#ncN-V+5G=Lm<-!cekiAKlzRl274 z93#fRHY~6*WHgVJAESRwYm5MD<_9YG&+Xlq9u{dH6neovCeSdB>;BRjvA^HE{D1C~ zL<`dIo8}5{Sa)^w+jN-;^EAy%$`+p`#mE1ws0LlTqEno*`E}LXaG8Fqqu}fVlwqw0 z`}>I`^iapsZc}Sb4QY#W!&~6?79Oj{MRMSp`(%%s|F=)^h?c*7%Z#$u^YaHSr6@E| z#&(Z@9HS~Id!K~XtTPR(uIDAwWS^Kj4a;cMcp!H)mcV@;aJ{zjOal8qNH5OwyK%?i zw$jBB@d~3s-j$>^Go`&7yKKIA%^g|GQkH`vA9y^R=1NPjy?q zy={Z`z3j3uow3#@cto+9Tag1%7u%){hodK^ds+{WxK-mM#;dxzx;3>LpW3>%OBfIP zt_HstE5pFgv9W~x{#=Pe0*QUS4Hn$P6yV{12qZ3wqQ$61<99yzaYfqLYn_lSwVEmx z46Ea)q01WFu?(9>H+XdUPQBf3u-b9o>F-^xtcZ#F%A~qJidpcKcJy#tZ&n*!PsI6h z3G*|Xk5s?T{nx|cE?Z}es@m4JZtR8q;Z|+xzsKBnrhI|sJoepu#pOEl;ln(uB?}6T z%cURT;5m8p>#{DP_7ZI-b%?2s6>t_KRazN7a#d^?3CY`W!Z>VDPrI#m4_e;;pFw_X z$oqExR)rvz+6BOYn6jf;70ch^4ca?b5DgFikI8WmmVwTBVwHC_Ms^kN%PluIeOoBexr zHLWU}Wq@!t?ht)}9jdL|QrBQqwLde;v{}jI@-YZuwh}n{q-HRaaoGCxwCi~bS?s3V ze(AEubr&b7YD-arI{zfN72k-rHo5Ft|=FKfXRm z^Rw`)YXj&L5I6$%Y%JfIj+=0iK0D{7>4hIsF%mNq7DJcR_b&$IPvY9@ea;jJwijlo zIZ=uQ_14ErnhiYe^~dE~O2J1&yIBu|e^xT}7aoi1-Dr4@K?t2+`)*4ZoFE!brx;@k zm&O4gdvFQHN7o2jM}H-7Tee_d9JFH0c1G;;G)fA|;wZ1Lb|plP!YaOhc{#cO?wrfH zZZH;X#S`@tx5kqa4zG9<#j)Ofd?@QVzgRl#zkfjMbJ=}X2x>(incr0gxrU0y?5ij@ zC9bmgAsgOg|C}n6ZE)wH0p%#0j$RJ=B&8JJ;*++tYfPK8Bz<+_+h?aK3rlp)7ZO2% zJ|jxLn#U=$>!%Y{is!{~(u>I!L5hS?M25k`1tR%Vbq|xZ{#9Gor7B`Zl>~(5NV!|FvR#K`VdA(Zics+&ufrRvv&@D-K_WQ~V)TZkf&aT8D{~s<{#FjQ zzwLC@9!ZpI6BOs?271{B5>rcl-=%tDS(jFma?=FQ*T1LYyrm2{EIRTYs%KeKIBISD zBPl}$jPhk3Kc!8RT>iXN>c;P-+$fC6MdphVesIi_Jp6wN~pg%O?V=+@idnx`Ug=9fhp6G!1|;qne% zGPVrZ;24d~(RsC#fV9hD&boi7M6cJ5uYUEvT3mfVNxflgSq2;(w7P@W76(L0kug}EFh!=FsIol0YW8E)(m+#= z&QkT6Dh)daP6GYLO;DmSfldvYK1w~k70z0%6T8$@a$3uJ&s`hLAn;J*-A#1MQu-ZR zNy_2X?0v@WmFu&(XY3W#Y+xs0;6Ca zL@kgLG`h9jz4aqhHir|4euK^MH>B+Bn>9w6wbwKaIidN(Q7;>waaN)OvFqELM~lx1 zz2=40!0JBeb2UK%$*8J65g7_l=2ZuwFUpJ3O`!|lp-=<89qLJ%hB|BW`t72m?XfX9 z!cawl8RQX@fA2p0NV;+UCA(_PBZ5q0J6R>_GCcDEG%hi9pQg(`!OplQFiPvq-k4sI z$Mx@X-X7K?!YKhFOwGLBnvmLzK7q&a)Tx*Vtl8QCcjZ<}(g?y)%1>y`t$CQ@nI9j{ zc;QY+I6|CFv-0UOK?df6|Fx4QJa6mUY4IBCN#!%~i_$v#FCMiO_UB*Vux5TF zD8b@xFV4Ow!(ML{in2Y;v|}@nDR&|R z{FSI0hWGeVOS=9Ti$8u&upMk!1JW2!Z~2yEIjL4aYR)j!xo&%onPTZMTiL6+*i#%K zZ3_-GjJC zQB|dRp}%u#=I?EE{mJ#5{mZsZOZ)3%4qeg{A875OAgAHX|#bHE*L}V1ZFnK&~i)9JANwYIS(U)9{CDu!a@l)tX zw`BZy9!?bjTU62f;^M_kZwlkHmjxIY|I2qnFFP_a^*JM2f=o&F4U9gRo(K|wC z`5r()u`p-u^{q;0endwPf4&WWLit2XuomllOP1KgvrUnM{V|sX z_WOoc+-GP-Oz=%Sf{3^yW$H-84)Y8X&Kfigy{+ADDW>a@`fFPJ-Hs_w_+!!7WS1Yer&A2foZHbLC%m*CFdgC4A4N;qCCWNnK*val{-2H{8_0JzGi>$zwf`5s~WJ+Im22exu3`cxW27H)_^JW&~2#vb5Tn&nk>R-=bGv*SNQUEG#gyiaH^(q;PPB#MdbL& z&0CG)G!ne2rK+3vri@}$DjuuEa--b9{h9!d^2(nnPb_&H9OY03Cw>8eZ=f0Nbow3f ztdgNmfM-Ky#XmMeijx06DV`KYoMN%gMkkHt!E_qhD+42%zCV8-2w4_$&K3CDv8dgTWY0#(fEKy!bGAxXdS*3;|y6vG_JAI^*!Vf(w-%r*@ugDM*(^>dIQpYc1Q#;s&J zrwk|P1jU+}bgp!`TjK7QI>n(1nyEo{am`Daxugx&^)>ShatA{@WmYk!`-;{M!S}l8 zTSy~Chq~IH0m6h-Qh{z|g-fc*!v6Q%vpKD&yJk)Oor+RsFH_1aQn0#Vs||j;nO9wK zM10cuS7r-EQa)A*R&y?6^W6PJYZnzFn*U}g1nu2PMNEF1y<=zZQ$=HFT36hms(Tc* z0^MAeR`tRMW!?NoR~Jp6pXVs1$&xKUD|czLOJ{VzkdW|$ujWA-F9FjS5e(a?r+M?Z zSh$v7c%(C$`wsfE8}=)1kdez0dexnrwWQ&55)IeBe%YFG9Gg7Q;UyxGuqYov0KW$s z!;r?;Z;T*Mf1G9Kiwh}x+g(&%q4vuB`2U)9^{$e3SuCf)Z@u~8uo5a3fNvGNk?hp_ zROH|iWCRchKDY{M^l^-sj(I7M0IOLS$EGVlQY>%YD$0I)0S0rDC&BZnn+SE-R9{K- zUHI;|FdP!K2$#>bb4ho4aeIY+I)Mrx6jJ%X)AYvE*)U$si{`NILU+IMYcI`>2D32} zzbunviwo?Z=M9DHhhZo9Kv7k#9I>e(J6b#2Djx23T2z#l(7|b@WJsc#%6w{zktV26( z!_V|e0iR#`s4~kgX_KI$X349ssyKp6Lg|p9I0}~nT=1H>3odw7zU8+}*lGPee zVoK+=BPVMs*ldn}QZ7Ywy#;C}AJ1t4`#`jzaztX!O;2Gt zKV0-JU!TVN$==Q2dXKK5GGv5GRqSvT1$}d=T3pPF&f7aENT5)%P5k!g4|w+ndO#l! z|G0$x*>K}r3K{QSl|NE$)oPEQmn|-;qVq4``+h9CWhyk#+|=gs4PW9SUOzsCOe6R~ zYri%a{*eynA0HJbBNNP^?TGHRuPC0d!&xa-2JG*8pSgLtFvshYglyY$mYCG`qz>ol zB3|kM4A^v|a_P#2=f~^55@ij_&u%8~>ZW>5Yzk={KA^o>9Z&i$+j!+(jw5T{Go)Nm zx0`o6h*^71f*0oce+J(iy7LtG{{qae{-S!=29AiN-+VxQ~JNA@$ z@KRwU#IJOv@@9?dfkuJMZUG11G#(sRYhfZ^VO^_T`95TQVvA(GI9%3neQ8)OU4PbX zYG_?iHX^7h&)xDS?NoPUe8g`rC2jIYjX~6+O}Hu*g~-t|aqL@*CY#U)VltGm=vwsP zAHI(HTY3jT;zItqgR1TkSA`h)z`Y$Mi#H?l@pWAr-#%FjThw<;^U_^>GSjIoeDXde zkQ*u`oA-}|$<@I1UV?w#bzYs%ZZ5fIP>9Glq$fUSe)Mtq2)V(w`+kq!T&H{=yTeQO zaC>)nw8C4a@ZU4I?Gzc)@HIZO!6X*cRgcRz)O_fHPLWq9Dn*RC$jXjYu5q%qL?tRx z49>3^=(?AWoN0b*-A62}5m?G9j_mBo5%$olwk$+fBg&7QdMB=b(ub-8WfJM zm9+`zgyHiqFfG}>+4CJX2{l^{`D5!~e|2?AO1X^#3FMD4WE4NPekrm!myVY@u5Fxa$*fW& zywD6L_nXg69^wMkM-LJMafpM`5PfsY3hLiTmX`BFb{S)~>GOCqJ#b z+IJ2)zTG%qm=V3|s}h8^R1TQ4B}9$?=tsVtlckZN!A)h1i}MjW-sQ`=_t&I&EQLBk zxhW6Seor0hhOuAwXo&T~BKfDrw(E|z$ouSV@T^05CCe3xXCA+qQCIn%Eci?a%p#~$ zM1RlddZ;&P+T26nWTNvcubduY!&dCeMy(c;?oR*1qiq=?7hU5t?jB92y2|i$wlVAH7j%L#3OD7B81ZvGm&X9?{{NqFzCbo zwGv?5$!ysE&GN#t_h!3Yw%Gk%Sp4q<^UOJZcaEJr15$A%;h6FPMeai-^JmE3dHotF z#IQpcXjQxKv500+K6DoYFFa#l;AuGkk_DdR0?hm%aKHhww28ssLOnAlgXEY0RtK(u OBs^XHT-G@yGywo*;s?(F literal 18758 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 SY@~pS7(8A5T-G@yGywocC$v%k diff --git a/src/modules/locale/images/timezone_-5.0.png b/src/modules/locale/images/timezone_-5.0.png index 8facd09f8a0441c6ea868acb773b33b0ba582f6a..1ab1a6713841f2a9a7e982ca7727563622b46235 100644 GIT binary patch literal 22353 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 From 6b3299e6ffda4064c7861b9dc020079df12215bc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 07:56:50 -0400 Subject: [PATCH 10/68] [locale] Adjust the North - Fudge the numbers in the North, to improve location of the pins and lines of latitude. - Inuvik, Yellowknife, Cambridge Bay, Resolute look ok - Thule, Scoresbysund look ok; Danmarkshavn a pixel or so too far North - Reykjavik is a bit too far North - Longyearbyen is a bit too far North Since these places are off by one or two pixels, this becomes invisible when a large pin + text label is placed on it. --- .../locale/timezonewidget/timezonewidget.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 5acdb6458..64557c151 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -148,11 +148,21 @@ QPoint TimeZoneWidget::getLocationPosition( double longitude, double latitude ) // of there, and we have a funny "rounded" top of the world. In practice the locations // 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 > 62.0 ) - y -= sin( MATH_PI * ( latitude - 62.0 ) / 56.0 ) * MAP_Y_OFFSET * height; + 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 ); // 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 < - 14 ) + if ( latitude < 0 ) y += int( (-latitude) / 5.0 ); // Antarctica isn't shown on the map, but you could try clicking there if ( latitude < -60 ) From 1ee87c3cdeb4c861ae5997f9e7e441bd06a4e254 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 08:00:50 -0400 Subject: [PATCH 11/68] [locale] Drop debugging define --- src/modules/locale/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt index 853ad8cc2..24259d797 100644 --- a/src/modules/locale/CMakeLists.txt +++ b/src/modules/locale/CMakeLists.txt @@ -7,7 +7,8 @@ endif() # When debugging the timezone widget, add this debugging definition # to have a debugging-friendly timezone widget, debug logging, # and no intrusive timezone-setting while clicking around. -add_definitions( -DDEBUG_TIMEZONES ) +# +# add_definitions( -DDEBUG_TIMEZONES ) include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) From 40b60abcb31e9f088c25e403e7225fff5ccd1ffe Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 29 May 2018 11:29:44 -0400 Subject: [PATCH 12/68] [locale] Move constants for map-munging These don't have to be defines at all. --- src/modules/locale/timezonewidget/timezonewidget.cpp | 3 +++ src/modules/locale/timezonewidget/timezonewidget.h | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 64557c151..6609160d5 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -27,6 +27,9 @@ #include "timezonewidget.h" + +static constexpr double MAP_Y_OFFSET = 0.125; +static constexpr double MAP_X_OFFSET = -0.0370; constexpr static double MATH_PI = 3.14159265; #ifdef DEBUG_TIMEZONES diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index a96a0309c..8589dc74d 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -36,8 +36,6 @@ #include "localeglobal.h" -#define MAP_Y_OFFSET 0.125 -#define MAP_X_OFFSET -0.0370 #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 From b66d4856e753241fc7de014cd884adc99f65a71d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 30 May 2018 07:51:23 -0400 Subject: [PATCH 13/68] [libcalamaresui] Use modern C++ for (auto)deleting failed modules --- src/libcalamaresui/modulesystem/Module.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index 54b6639ff..2d0de8e55 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -64,7 +64,7 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, const QString& configFileName, const QString& moduleDirectory ) { - Module* m = nullptr; + std::unique_ptr m; QString typeString = moduleDescriptor.value( "type" ).toString(); QString intfString = moduleDescriptor.value( "interface" ).toString(); @@ -79,12 +79,12 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, { if ( intfString == "qtplugin" ) { - m = new ViewModule(); + m.reset( new ViewModule() ); } else if ( intfString == "pythonqt" ) { #ifdef WITH_PYTHONQT - m = new PythonQtViewModule(); + m.reset( new PythonQtViewModule() ); #else cError() << "PythonQt view modules are not supported in this version of Calamares."; #endif @@ -96,16 +96,16 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, { if ( intfString == "qtplugin" ) { - m = new CppJobModule(); + m.reset( new CppJobModule() ); } else if ( intfString == "process" ) { - m = new ProcessJobModule(); + m.reset( new ProcessJobModule() ); } else if ( intfString == "python" ) { #ifdef WITH_PYTHON - m = new PythonJobModule(); + m.reset( new PythonJobModule() ); #else cError() << "Python modules are not supported in this version of Calamares."; #endif @@ -130,7 +130,6 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, else { cError() << "Bad module directory" << moduleDirectory << "for" << instanceId; - delete m; return nullptr; } @@ -144,10 +143,9 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, catch ( YAML::Exception& e ) { cError() << "YAML parser error " << e.what(); - delete m; return nullptr; } - return m; + return m.release(); } From 41d427e543071a8692b994f95354989aad6aa209 Mon Sep 17 00:00:00 2001 From: Gabriel Craciunescu Date: Fri, 1 Jun 2018 17:45:40 +0200 Subject: [PATCH 14/68] [modules]: hwclock fix typo - methode -> method --- src/modules/hwclock/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/hwclock/main.py b/src/modules/hwclock/main.py index d247ccd00..e2f70ee61 100644 --- a/src/modules/hwclock/main.py +++ b/src/modules/hwclock/main.py @@ -46,7 +46,7 @@ def run(): libcalamares.utils.debug("Hwclock returned error code {}".format(ret)) libcalamares.utils.debug(" .. ISA bus method failed.") else: - libcalamares.utils.debug("Hwclock set using ISA bus methode.") + libcalamares.utils.debug("Hwclock set using ISA bus method.") if is_broken_rtc and is_broken_isa: libcalamares.utils.debug("BIOS or Kernel BUG: Setting hwclock failed.") From 8430970e719251cb871a79743455c010e1d66ae0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:47:41 +0200 Subject: [PATCH 15/68] [preservefiles] Reduce copying by using const-ref into list --- src/modules/preservefiles/PreserveFiles.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp index 29564fcd1..0fe1d278b 100644 --- a/src/modules/preservefiles/PreserveFiles.cpp +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -93,7 +93,7 @@ Calamares::JobResult PreserveFiles::exec() prefix.append( '/' ); int count = 0; - for ( const auto it : m_items ) + for ( const auto& it : m_items ) { QString source = it.source; QString dest = prefix + atReplacements( it.dest ); @@ -162,7 +162,7 @@ void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap) QVariantList l = files.toList(); unsigned int c = 0; - for ( const auto li : l ) + for ( const auto& li : l ) { if ( li.type() == QVariant::String ) { From d82b103edae31067d5d7f71ddb9bf7a747f6ba4c Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 4 Jun 2018 08:21:57 -0400 Subject: [PATCH 16/68] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_da.ts | 6 +- lang/calamares_et.ts | 14 ++-- lang/calamares_fr.ts | 14 ++-- lang/calamares_id.ts | 14 ++-- lang/calamares_it_IT.ts | 165 ++++++++++++++++++++-------------------- lang/calamares_pl.ts | 8 +- 6 files changed, 111 insertions(+), 110 deletions(-) diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 8ee303ef1..edbe2737f 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -485,12 +485,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Kommandoen kører i værtsmiljøet og har brug for at kende rodstien, men der er ikke defineret nogen rootMountPoint. The command needs to know the user's name, but no username is defined. - + Kommandoen har brug for at kende brugerens navn, men der er ikke defineret noget brugernavn. @@ -1670,7 +1670,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + Partitionstabellen på %1 har allerede %2 primære partitioner, og der kan ikke tilføjes flere. Fjern venligst en primær partition og tilføj i stedet en udviddet partition. diff --git a/lang/calamares_et.ts b/lang/calamares_et.ts index e56118622..871f447da 100644 --- a/lang/calamares_et.ts +++ b/lang/calamares_et.ts @@ -485,12 +485,12 @@ Installija sulgub ja kõik muutused kaovad. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + See käsklus käivitatakse hostikeskkonnas ning peab teadma juurteed, kuid rootMountPoint pole defineeritud. The command needs to know the user's name, but no username is defined. - + Käsklus peab teadma kasutaja nime, aga kasutajanimi pole defineeritud. @@ -1665,12 +1665,12 @@ Installija sulgub ja kõik muutused kaovad. Can not create new partition - + Uut partitsiooni ei saa luua The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + Partitsioonitabel kohas %1 juba omab %2 peamist partitsiooni ning rohkem juurde ei saa lisada. Palun eemalda selle asemel üks peamine partitsioon ja lisa juurde laiendatud partitsioon. @@ -1816,17 +1816,17 @@ Installija sulgub ja kõik muutused kaovad. Saving files for later ... - + Salvestan faile hiljemaks... No files configured to save for later. - + Ühtegi faili ei konfigureeritud hiljemaks salvestamiseks. Not all of the configured files could be preserved. - + Ühtegi konfigureeritud faili ei suudetud säilitada. diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index f9796a5c9..b2356b5d2 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -485,12 +485,12 @@ L'installateur se fermera et les changements seront perdus. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + La commande est exécutée dans l'environnement hôte et a besoin de connaître le chemin racine, mais aucun point de montage racine n'est défini. The command needs to know the user's name, but no username is defined. - + La commande a besoin de connaître le nom de l'utilisateur, mais aucun nom d'utilisateur n'est défini. @@ -1665,12 +1665,12 @@ L'installateur se fermera et les changements seront perdus. Can not create new partition - + Impossible de créer une nouvelle partition The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + La table de partition sur %1 contient déjà %2 partitions primaires, et aucune supplémentaire ne peut être ajoutée. Veuillez supprimer une partition primaire et créer une partition étendue à la place. @@ -1817,17 +1817,17 @@ Vous pouvez obtenir un aperçu des différentes apparences en cliquant sur celle Saving files for later ... - + Sauvegarde des fichiers en cours pour plus tard... No files configured to save for later. - + Aucun fichier de sélectionné pour sauvegarde ultérieure. Not all of the configured files could be preserved. - + Certains des fichiers configurés n'ont pas pu être préservés. diff --git a/lang/calamares_id.ts b/lang/calamares_id.ts index ebfb416c3..3e6e991bd 100644 --- a/lang/calamares_id.ts +++ b/lang/calamares_id.ts @@ -487,12 +487,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Perintah berjalan di lingkungan host dan perlu diketahui alur root-nya, tetapi bukan rootMountPoint yang ditentukan. The command needs to know the user's name, but no username is defined. - + Perintah perlu diketahui nama si pengguna, tetapi bukan nama pengguna yang ditentukan. @@ -1667,12 +1667,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Can not create new partition - + Tidak bisa menciptakan partisi baru. The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + Partisi tabel pada %1 sudah memiliki %2 partisi primer, dan tidak ada lagi yang bisa ditambahkan. Silakan hapus salah satu partisi primer dan tambahkan sebuah partisi extended, sebagai gantinya. @@ -1818,17 +1818,17 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Saving files for later ... - + Menyimpan file untuk kemudian... No files configured to save for later. - + Tiada file yang dikonfigurasi untuk penyimpanan nanti. Not all of the configured files could be preserved. - + Tidak semua file yang dikonfigurasi dapat dipertahankan. diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index 889f60c97..453321e44 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -4,7 +4,7 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - L'<strong>ambiente di avvio</strong> di questo sistema. <br><br>I vecchi sistemi x86 supportano solo <strong>BIOS</strong>. <bt>I sistemi moderni normalmente usano <strong>EFI</strong> ma possono anche usare BIOS se l'avvio viene eseguito in modalità compatibile. + L'<strong>ambiente di avvio</strong> di questo sistema. <br><br>I vecchi sistemi x86 supportano solo <strong>BIOS</strong>. <bt>I sistemi moderni normalmente usano <strong>EFI</strong> ma possono anche apparire come sistemi BIOS se avviati in modalità compatibile. @@ -241,7 +241,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno The installation is complete. Close the installer. - L'installazione è terminata. Chiudere l'installer. + L'installazione è terminata. Chiudere il programma d'installazione. @@ -485,12 +485,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Il comando viene eseguito nell'ambiente host e richiede il percorso di root ma nessun rootMountPoint (punto di montaggio di root) è definito. The command needs to know the user's name, but no username is defined. - + Il comando richiede il nome utente, nessun nome utente definito. @@ -498,7 +498,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Contextual Processes Job - Attività dei processi contestuali + Job dei processi contestuali @@ -536,7 +536,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno LVM LV name - Nome LVM LV + Nome LV di LVM @@ -915,7 +915,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Quando questa casella è selezionata, il sistema sarà riavviato immediatamente al click su <span style=" font-style:italic;">Fatto</span> o alla chiusura del programma d'installazione.</p></body></html> @@ -943,12 +943,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Installation Complete - Installazione Eseguita + Installazione completata The installation of %1 is complete. - L'installazione di %1 è completa. + L'installazione di %1 è completata. @@ -979,12 +979,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Konsole not installed - Konsole non installato + Konsole non installata Please install KDE Konsole and try again! - Si prega di installare KDE Konsole e provare nuovamente! + Si prega di installare KDE Konsole e riprovare! @@ -1195,7 +1195,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Network Installation. (Disabled: Received invalid groups data) - Installazione di rete. (Disabilitata: Ricevuti dati non validi sui gruppi) + Installazione di rete. (Disabilitata: Ricevuti dati non validi dei gruppi) @@ -1221,12 +1221,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Password is too weak - La password è troppo debole + Password troppo debole Memory allocation error when setting '%1' - + Errore di allocazione della memoria quando si imposta '%1' @@ -1236,217 +1236,217 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno The password is the same as the old one - La nuova password coincide con la precedente + La password coincide con la precedente The password is a palindrome - La password è palindroma + La password è un palindromo The password differs with case changes only - + La password differisce solo per lettere minuscole e maiuscole The password is too similar to the old one - La nuova password è troppo simile a quella precedente + La password è troppo simile a quella precedente The password contains the user name in some form - La password contiene il nome utente in una qualche forma + La password contiene il nome utente in qualche campo The password contains words from the real name of the user in some form - La password contiene parte del nome reale dell'utente in qualche forma + La password contiene parti del nome utente reale in qualche campo The password contains forbidden words in some form - + La password contiene parole vietate in alcuni campi The password contains less than %1 digits - La password contiene meno di %1 numeri + La password contiene meno di %1 cifre The password contains too few digits - La password contiene troppo pochi numeri + La password contiene poche cifre The password contains less than %1 uppercase letters - + La password contiene meno di %1 lettere maiuscole The password contains too few uppercase letters - + La password contiene poche lettere maiuscole The password contains less than %1 lowercase letters - + La password contiene meno di %1 lettere minuscole The password contains too few lowercase letters - + La password contiene poche lettere minuscole The password contains less than %1 non-alphanumeric characters - + La password contiene meno di %1 caratteri non alfanumerici The password contains too few non-alphanumeric characters - + La password contiene pochi caratteri non alfanumerici The password is shorter than %1 characters - + La password ha meno di %1 caratteri The password is too short - + La password è troppo corta The password is just rotated old one - + La password è solo una rotazione della precedente The password contains less than %1 character classes - + La password contiene meno di %1 classi di caratteri The password does not contain enough character classes - + La password non contiene classi di caratteri sufficienti The password contains more than %1 same characters consecutively - + La password contiene più di %1 caratteri uguali consecutivi The password contains too many same characters consecutively - + La password contiene troppi caratteri uguali consecutivi The password contains more than %1 characters of the same class consecutively - + La password contiene più di %1 caratteri consecutivi della stessa classe The password contains too many characters of the same class consecutively - + La password contiene molti caratteri consecutivi della stessa classe The password contains monotonic sequence longer than %1 characters - + La password contiene una sequenza monotona più lunga di %1 caratteri The password contains too long of a monotonic character sequence - + La password contiene una sequenza di caratteri monotona troppo lunga No password supplied - + Nessuna password fornita Cannot obtain random numbers from the RNG device - + Impossibile ottenere numeri casuali dal dispositivo RNG Password generation failed - required entropy too low for settings - + Generazione della password fallita - entropia richiesta troppo bassa per le impostazioni The password fails the dictionary check - %1 - + La password non supera il controllo del dizionario - %1 The password fails the dictionary check - + La password non supera il controllo del dizionario Unknown setting - %1 - + Impostazioni sconosciute - %1 Unknown setting - + Impostazione sconosciuta Bad integer value of setting - %1 - + Valore intero non valido per l'impostazione - %1 Bad integer value - + Valore intero non valido Setting %1 is not of integer type - + Impostazione %1 non è di tipo intero Setting is not of integer type - + Impostazione non è di tipo intero Setting %1 is not of string type - + Impostazione %1 non è di tipo stringa Setting is not of string type - + Impostazione non è di tipo stringa Opening the configuration file failed - + Apertura del file di configurazione fallita The configuration file is malformed - + Il file di configurazione non è corretto Fatal failure - + Errore fatale Unknown error - + Errore sconosciuto @@ -1665,12 +1665,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Can not create new partition - + Impossibile creare nuova partizione The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + La tabella delle partizioni su %1 contiene già %2 partizioni primarie, non se ne possono aggiungere altre. Rimuovere una partizione primaria e aggiungere una partizione estesa invece. @@ -1776,13 +1776,13 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Plasma Look-and-Feel Job - Attività del tema di Plasma + Job di Plasma Look-and-Feel Could not select KDE Plasma Look-and-Feel package - Impossibile selezionare il pacchetto del tema di KDE Plasma + Impossibile selezionare il pacchetto di KDE Plasma Look-and-Feel @@ -1800,7 +1800,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. - + Scegliere il tema per il desktop KDE Plasma. Si può anche saltare questa scelta e configurare il tema dopo aver installato il sistema. Cliccando su selezione del tema, ne sarà mostrata un'anteprima dal vivo. @@ -1808,7 +1808,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Look-and-Feel - Tema + Look-and-Feel @@ -1816,17 +1816,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Saving files for later ... - + Salvataggio dei file per dopo ... No files configured to save for later. - + Nessun file configurato per dopo. Not all of the configured files could be preserved. - + Non tutti i file configurati possono essere preservati. @@ -1835,7 +1835,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno There was no output from the command. - + Non c'era output dal comando. @@ -1864,7 +1864,8 @@ Output: Command <i>%1</i> failed to start. - Il comando %1 non si è avviato. + Il comando %1 non si è avviato. + @@ -1874,7 +1875,7 @@ Output: Bad parameters for process job call. - Parametri errati per elaborare l'attività richiesta + Parametri errati per elaborare la chiamata al job. @@ -2334,7 +2335,7 @@ Output: Shell Processes Job - + Job dei processi della shell @@ -2343,7 +2344,7 @@ Output: %L1 / %L2 slide counter, %1 of %2 (numeric) - + %L1 / %L2 @@ -2372,7 +2373,7 @@ Output: Sending installation feedback. - Invio in corso della valutazione dell'installazione + Invio della valutazione dell'installazione. @@ -2382,7 +2383,7 @@ Output: HTTP request timed out. - La richiesta HTTP ha raggiunto il timeout. + La richiesta HTTP è scaduta. @@ -2406,12 +2407,12 @@ Output: Could not configure machine feedback correctly, script error %1. - Non è stato possibile configurare correttamente la valutazione automatica, errore script %1. + Non è stato possibile configurare correttamente la valutazione automatica, errore dello script %1. Could not configure machine feedback correctly, Calamares error %1. - Non è stato possibile configurare correttamente la valutazione automatica, errore Calamares %1. + Non è stato possibile configurare correttamente la valutazione automatica, errore di Calamares %1. @@ -2429,7 +2430,7 @@ Output: <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Selezionando questo, non verrà inviata <span style=" font-weight:600;">alcuna informazione</span> riguardo la propria installazione.</p></body></html> + <html><head/><body><p>Selezionando questo, non verrà inviata <span style=" font-weight:600;">alcuna informazione</span> relativa alla propria installazione.</p></body></html> @@ -2448,27 +2449,27 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Cliccare qui per maggiori informazioni riguardo la valutazione degli utenti</span></a></p></body></html> + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Cliccare qui per maggiori informazioni sulla valutazione degli utenti</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - Il tracciamento dell'installazione aiuta %1 a capire quanti utenti vengono serviti, su quale hardware installano %1 e (con le ultime due opzioni qui sotto), a ricevere continue informazioni riguardo le applicazioni preferite. Per vedere cosa verrà inviato, si prega di cliccare sull'icona di aiuto vicino ad ogni area. + Il tracciamento dell'installazione aiuta %1 a capire quanti utenti vengono serviti, su quale hardware si installa %1 e (con le ultime due opzioni sotto), a ricevere continue informazioni sulle applicazioni preferite. Per vedere cosa verrà inviato, cliccare sull'icona di aiuto accanto ad ogni area. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - Selezionando questa opzione verranno inviate informazioni riguardo l'installazione e l'hardware. Queste informazioni verranno <b>inviate solo una volta</b> dopo che l'installazione è terminata. + Selezionando questa opzione saranno inviate informazioni relative all'installazione e all'hardware. I dati saranno <b>inviati solo una volta</b> al termine dell'installazione. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Selezionando questa opzione verranno inviate <b>periodicamente</b> informazioni riguardo l'installazione, l'hardware e le applicazioni, a %1. + Selezionando questa opzione saranno inviate <b>periodicamente</b> informazioni sull'installazione, l'hardware e le applicazioni, a %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Selezionando questa opzione verranno inviate <b>regolarmente</b> informazioni riguardo l'installazione, l'hardware, le applicazioni e il modo di utilizzo, a %1. + Selezionando questa opzione verranno inviate <b>regolarmente</b> informazioni sull'installazione, l'hardware, le applicazioni e i modi di utilizzo, a %1. @@ -2571,7 +2572,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Grazie a: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg e al <a href="https://www.transifex.com/calamares/calamares/">team dei traduttori di Calamares</a>.<br/><br/>Lo sviluppo di<a href="https://calamares.io/">Calamares</a> è sponsorizzato da <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. diff --git a/lang/calamares_pl.ts b/lang/calamares_pl.ts index ea5512300..65c0343f0 100644 --- a/lang/calamares_pl.ts +++ b/lang/calamares_pl.ts @@ -490,7 +490,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. The command needs to know the user's name, but no username is defined. - + Polecenie musi znać nazwę użytkownika, ale żadna nazwa nie została jeszcze zdefiniowana. @@ -1816,17 +1816,17 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. Saving files for later ... - + Zapisywanie plików na później ... No files configured to save for later. - + Nie skonfigurowano żadnych plików do zapisania na później. Not all of the configured files could be preserved. - + Nie wszystkie pliki konfiguracyjne mogą być zachowane. From 8acb88ed4dd1e82e2abd5f4a60821d9b9f9f6561 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 4 Jun 2018 08:21:58 -0400 Subject: [PATCH 17/68] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/calamares.desktop b/calamares.desktop index caba57a7e..f8be5d1f3 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -92,9 +92,9 @@ GenericName[lt]=Sistemos diegimas į kompiuterį Comment[lt]=Calamares — Sistemos diegimo programa Name[lt]=Įdiegti Sistemą Icon[it_IT]=calamares -GenericName[it_IT]=Programma di installazione -Comment[it_IT]=Calamares — Installare il Sistema -Name[it_IT]=Installa il Sistema +GenericName[it_IT]=Programma d'installazione del sistema +Comment[it_IT]=Calamares — Programma d'installazione del sistema +Name[it_IT]=Installa il sistema Icon[nb]=calamares GenericName[nb]=Systeminstallatør Comment[nb]=Calamares-systeminstallatør From 54515688f7afa87592376e4e8d439b5e9cb43d8f Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 4 Jun 2018 08:21:59 -0400 Subject: [PATCH 18/68] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/it_IT/LC_MESSAGES/dummypythonqt.mo | Bin 970 -> 979 bytes .../lang/it_IT/LC_MESSAGES/dummypythonqt.po | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo index 14d83f4892241afb32aee1a8c69b5ee5b3c93ee7..2c001df40a95891aa1c484f764d780697ee2e759 100644 GIT binary patch delta 141 zcmX@bewlqji0O7l28IM67Gz*xkYHwDFaXk8K$;s!M+0doAe|1RMS*k^khTKSGd6Z= zFbY`c8kp)DStuBoSecsZ8kkHz$Y`SzoLH7xl$oz!Qw(9~B^4#+B_}2)XXZPk=O$+6 b=q2ap+UY1585o*vR$vNXWK5e}$Q%g(2gn~} delta 132 zcmcc2eu{lUi0L{;28IM67Gz*x;AduFFaXkuK$;s!2LWj*ARPy!MS*lBkhTKS{Tn+q z7zNCA4UKe-3>6H`tV~R_4GbqAWVBKCO)N^zSBTP6u*uELORO?8GjmAKP0Y;EOU}== W(@`)oFf`w+$rQlI=r*~EIT8Sxwi;Cc diff --git a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po index 02dec56cb..6b22b4b65 100644 --- a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-21 16:44+0100\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Marco Z. , 2017\n" +"Last-Translator: Saverio , 2016\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +28,7 @@ msgstr "Una nuova QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "PythonQt ViewStep Fittizio" +msgstr "PythonQt ViewStep fittizio" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" From 430ca800f7454f341375c78f96494c4492a45cb6 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 4 Jun 2018 08:21:59 -0400 Subject: [PATCH 19/68] i18n: [python] Automatic merge of Transifex translations --- lang/python/it_IT/LC_MESSAGES/python.mo | Bin 1162 -> 1173 bytes lang/python/it_IT/LC_MESSAGES/python.po | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lang/python/it_IT/LC_MESSAGES/python.mo b/lang/python/it_IT/LC_MESSAGES/python.mo index 2407dbe213cb18d12278dc8098376a97dc9363bb..9aee6696ec0bbaacade9577ec1c0e5ad4d389a30 100644 GIT binary patch delta 254 zcmeC;oXR;N#dRek1H*M77GYpuXk=z!5C_uJfV2>hUI(Owf%HKjZ40EY0%;>4EzH8e zU;(7vfV3!(uHU%wG^1QVW@<@MzJgm(VqS7;aWasVpI4HYm#Cv)WMF7Mc{0;`W3T)q zg@VeGjQl)>w9Jx{%&N?MJ%#{?KygWGfkJgHT!O(pH7~U&ak2oT$mGM!`r1IXd8rC1 znF^{Jd8N6UDGCLN$;lb1KvVP>TyqkW@{1CoN>V3_usCq$!!%5eW|0z5$OIakld4c$ K3A86yj{yLesz*lv delta 174 zcmbQr*~K{_#dQ@U1H*M77Gz*xXkuny5CPItfV2>hUJ0ayf%G0AZ2_b&0BJoS&B?;R zUSaQa(;Y4VsffOZgHMoa(=Fzj)IYap~d7$Oz$T? z)SbMA*_k;nC4cgNW@#26tuR@M#euyvzbq9bn9U+3nx3ASuaJ_OqmY)Fld4c$SzMBu G%K!iuXe-hH diff --git a/lang/python/it_IT/LC_MESSAGES/python.po b/lang/python/it_IT/LC_MESSAGES/python.po index 24100878d..0ad2a26ed 100644 --- a/lang/python/it_IT/LC_MESSAGES/python.po +++ b/lang/python/it_IT/LC_MESSAGES/python.po @@ -10,7 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Mark , 2018\n" +"Last-Translator: Pietro Francesco Fontana, 2017\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,15 +20,15 @@ msgstr "" #: src/modules/umount/main.py:40 msgid "Unmount file systems." -msgstr "Smontaggio del file system" +msgstr "Smonta i file system." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "Dummy python job." +msgstr "Job python fittizio." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "Dummy python step {}" +msgstr "Python step {} fittizio" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." @@ -37,7 +37,7 @@ msgstr "Genera machine-id." #: src/modules/packages/main.py:61 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Elaborando i pacchetti (%(count)d / %(total)d)" +msgstr "Elaborazione dei pacchetti (%(count)d / %(total)d)" #: src/modules/packages/main.py:63 src/modules/packages/main.py:73 msgid "Install packages." @@ -48,11 +48,11 @@ msgstr "Installa pacchetti." msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Installando un pacchetto." -msgstr[1] "Installando %(num)d pacchetti." +msgstr[1] "Installazione di %(num)d pacchetti." #: src/modules/packages/main.py:69 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "Rimuovendo un pacchetto." -msgstr[1] "Rimuovendo %(num)d pacchetti." +msgstr[1] "Rimozione di %(num)d pacchetti." From 91a5ec426d57aa1724fd7ca0e4faa4e0eb14c426 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:16:57 +0200 Subject: [PATCH 21/68] CMake: shuffle the top-level CMakeLists - Put all the options near the top, easy to spot when reading the file - Put the settings that need regular updates, like version, near the top - Add some "section headers" --- CMakeLists.txt | 61 +++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e7ca237f..2de3d661a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,12 +33,33 @@ project( calamares C CXX ) cmake_minimum_required( VERSION 3.2 ) -set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ) -set( CMAKE_CXX_STANDARD 14 ) -set( CMAKE_CXX_STANDARD_REQUIRED ON ) -set( CMAKE_C_STANDARD 99 ) -set( CMAKE_C_STANDARD_REQUIRED ON ) +### OPTIONS +# +option( INSTALL_CONFIG "Install configuration files" ON ) +option( BUILD_TESTING "Build the testing tree." ON ) +option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON ) +option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON ) +option( WITH_KF5Crash "Enable crash reporting with KCrash." ON ) + + +### Calamares application info +# +set( CALAMARES_ORGANIZATION_NAME "Calamares" ) +set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" ) +set( CALAMARES_APPLICATION_NAME "Calamares" ) +set( CALAMARES_DESCRIPTION_SUMMARY + "The distribution-independent installer framework" ) + +set( CALAMARES_VERSION_MAJOR 3 ) +set( CALAMARES_VERSION_MINOR 2 ) +set( CALAMARES_VERSION_PATCH 0 ) +set( CALAMARES_VERSION_RC 0 ) + + +### CMAKE SETUP +# +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ) # CMake 3.9, 3.10 compatibility if( POLICY CMP0071 ) @@ -52,8 +73,15 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.10.0") ) endif() - set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" ) +### C++ SETUP +# +set( CMAKE_CXX_STANDARD 14 ) +set( CMAKE_CXX_STANDARD_REQUIRED ON ) +set( CMAKE_C_STANDARD 99 ) +set( CMAKE_C_STANDARD_REQUIRED ON ) + +set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" ) if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) message( STATUS "Found Clang ${CMAKE_CXX_COMPILER_VERSION}, setting up Clang-specific compiler flags." ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" ) @@ -139,12 +167,6 @@ if( ECM_FOUND ) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) endif() -option( INSTALL_CONFIG "Install configuration files" ON ) -option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON ) -option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON ) -option( WITH_KF5Crash "Enable crash reporting with KCrash." ON ) -option( BUILD_TESTING "Build the testing tree." ON ) - find_package( KF5 COMPONENTS CoreAddons Crash ) if( NOT KF5Crash_FOUND ) set( WITH_KF5Crash OFF ) @@ -245,23 +267,10 @@ endif() unset( prev_tx ) unset( curr_tx ) -add_subdirectory( lang ) # i18n tools - -### -### Calamares application info -### -set( CALAMARES_ORGANIZATION_NAME "Calamares" ) -set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" ) -set( CALAMARES_APPLICATION_NAME "Calamares" ) -set( CALAMARES_DESCRIPTION_SUMMARY "The distribution-independent installer framework" ) set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} ) list( SORT CALAMARES_TRANSLATION_LANGUAGES ) -### Bump version here -set( CALAMARES_VERSION_MAJOR 3 ) -set( CALAMARES_VERSION_MINOR 2 ) -set( CALAMARES_VERSION_PATCH 0 ) -set( CALAMARES_VERSION_RC 0 ) +add_subdirectory( lang ) # i18n tools set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} ) set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" ) From fc979404d1e8e443f7820e0efcfbbea023442219 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:26:22 +0200 Subject: [PATCH 22/68] CMake: move translation settings up - Follow previous move of user-adaptable settings and regularly-updated variables to the top of CMakeLists.txt with a move of the list of translated languages. --- CMakeLists.txt | 60 ++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2de3d661a..73af6b201 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,37 @@ set( CALAMARES_VERSION_PATCH 0 ) set( CALAMARES_VERSION_RC 0 ) +### Transifex (languages) info +# +# complete = 100% translated, +# good = nearly complete (use own judgement, right now >= 75%) +# ok = incomplete (more than 25% untranslated), +# bad = 0% translated, placeholder in tx; these are not included. +# +# Language en (source language) is added later. It isn't listed in +# Transifex either. Get the list of languages and their status +# from https://transifex.com/calamares/calamares/ . +# +# When adding a new language, take care that it is properly loaded +# by the translation framework. Languages with alternate scripts +# (sr@latin in particular) may need special handling in CalamaresUtils.cpp. +# +# TODO: drop the es_ES translation from Transifex +# TODO: move eo (Esperanto) to _ok once Qt can actually create a +# locale for it. +# +# NOTE: when updating the list from Transifex, copy these four lines +# and prefix each variable name with "p", so that the automatic +# checks for new languages and misspelled ones are done (that is, +# copy these four lines to four backup lines, add "p", and then update +# the original four lines with the current translations). +set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ ) +set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk ) +set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb + sl sr@latin mr es_PR kk kn et be ) +set( _tx_bad uz lo ur gu fr_CH fa eo ) + + ### CMAKE SETUP # set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ) @@ -211,33 +242,10 @@ endif() ### Transifex Translation status # -# complete = 100% translated, -# good = nearly complete (use own judgement, right now >= 75%) -# ok = incomplete (more than 25% untranslated), -# bad = 0% translated, placeholder in tx; these are not included. -# -# Language en (source language) is added later. It isn't listed in -# Transifex either. Get the list of languages and their status -# from https://transifex.com/calamares/calamares/ . -# -# When adding a new language, take care that it is properly loaded -# by the translation framework. Languages with alternate scripts -# (sr@latin in particular) may need special handling in CalamaresUtils.cpp. +# Construct language lists for use. If there are p_tx* variables, +# then run an extra cmake-time check for consistency of the old +# (p_tx*) and new (_tx*) lists. # -# TODO: drop the es_ES translation from Transifex -# TODO: move eo (Esperanto) to _ok once Qt can actually create a -# locale for it. -# -# NOTE: when updating the list from Transifex, copy these four lines -# and prefix each variable name with "p", so that the automatic -# checks for new languages and misspelled ones are done. -set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ ) -set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk ) -set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb - sl sr@latin mr es_PR kk kn et be ) -set( _tx_bad uz lo ur gu fr_CH fa eo ) - -# check translation update set( prev_tx ${p_tx_complete} ${p_tx_good} ${p_tx_ok} ${p_tx_bad} ) set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_bad} ) if ( prev_tx ) From 15b97f8e3f330b5548c365dbedd84d3059e32a1b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:31:12 +0200 Subject: [PATCH 23/68] [libcalamares] Add missing include-dir - Fix build on FreeBSD, where the yaml-cpp headers don't live in any normally-searched include directory. --- src/libcalamares/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index cbc049ac6..598d3c313 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -40,6 +40,7 @@ mark_thirdparty_code( ${kdsagSources} ) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} + ${YAMLCPP_INCLUDE_DIR} ) if( WITH_PYTHON ) From dfd76ed384f617856870e361759e088f97cc8331 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:34:15 +0200 Subject: [PATCH 24/68] CMake: drop unused variable (no thirdparty/ dir anymore) --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 73af6b201..1c393a675 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -329,7 +329,6 @@ configure_file( set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" ) set( CALAMARES_LIBRARIES calamares ) -set( THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/thirdparty" ) ### Example Distro # @@ -382,7 +381,6 @@ endif() # "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html" add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.") -# add_subdirectory( thirdparty ) add_subdirectory( src ) add_feature_info(Python ${WITH_PYTHON} "Python job modules") From fd2afc3ba9e1058b9ee284a49f1a2d60a70d52b5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:39:28 +0200 Subject: [PATCH 25/68] CMake: move dependency-versioning info to top --- CMakeLists.txt | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c393a675..66550a13e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,6 +88,16 @@ set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb set( _tx_bad uz lo ur gu fr_CH fa eo ) +### Required versions +# +# See DEPENDENCIES section below. +set( QT_VERSION 5.6.0 ) +set( YAMLCPP_VERSION 0.5.1 ) +set( ECM_VERSION 5.18 ) +set( PYTHONLIBS_VERSION 3.3 ) +set( BOOSTPYTHON_VERSION 1.54.0 ) + + ### CMAKE SETUP # set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ) @@ -182,17 +192,17 @@ endif() include( FeatureSummary ) include( CMakeColors ) -set( QT_VERSION 5.6.0 ) +### DEPENDENCIES +# find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg Quick QuickWidgets ) -find_package( YAMLCPP 0.5.1 REQUIRED ) +find_package( YAMLCPP ${YAMLCPP_VERSION} REQUIRED ) find_package( PolkitQt5-1 REQUIRED ) # Find ECM once, and add it to the module search path; Calamares # modules that need ECM can do # find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE), # no need to mess with the module path after. -set( ECM_VERSION 5.18 ) find_package(ECM ${ECM_VERSION} NO_MODULE) if( ECM_FOUND ) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) @@ -207,7 +217,7 @@ if( BUILD_TESTING ) enable_testing() endif () -find_package( PythonLibs 3.3 ) +find_package( PythonLibs ${PYTHONLIBS_VERSION} ) set_package_properties( PythonLibs PROPERTIES DESCRIPTION "C interface libraries for the Python 3 interpreter." @@ -217,7 +227,7 @@ set_package_properties( if ( PYTHONLIBS_FOUND ) include( BoostPython3 ) - find_boost_python3( 1.54.0 ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND ) + find_boost_python3( ${BOOSTPYTHON_VERSION} ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND ) set_package_properties( Boost PROPERTIES PURPOSE "Boost.Python is used for Python job modules." From e52c99685d1165ea8de0ae532c636860e7868cf9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 13:43:44 +0200 Subject: [PATCH 26/68] CMake: untangle more sections of top-level CMakeLists.txt --- CMakeLists.txt | 119 ++++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 57 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 66550a13e..4d4a24550 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,55 +290,6 @@ list( SORT CALAMARES_TRANSLATION_LANGUAGES ) add_subdirectory( lang ) # i18n tools -set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} ) -set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" ) -if( CALAMARES_VERSION_RC ) - set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} ) -endif() - -# additional info for non-release builds -if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" ) - include( CMakeDateStamp ) - set( CALAMARES_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" ) - if( CALAMARES_VERSION_DATE GREATER 0 ) - set( CALAMARES_VERSION ${CALAMARES_VERSION}.${CALAMARES_VERSION_DATE} ) - endif() - - include( CMakeVersionSource ) - if( CMAKE_VERSION_SOURCE ) - set( CALAMARES_VERSION ${CALAMARES_VERSION}-${CMAKE_VERSION_SOURCE} ) - endif() -endif() - -# enforce using constBegin, constEnd for const-iterators -add_definitions( "-DQT_STRICT_ITERATORS" ) - -# set paths -set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) -set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) -set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) - -# Better default installation paths: GNUInstallDirs defines -# CMAKE_INSTALL_FULL_SYSCONFDIR to be CMAKE_INSTALL_PREFIX/etc by default -# but we really want /etc -if( NOT DEFINED CMAKE_INSTALL_SYSCONFDIR ) - set( CMAKE_INSTALL_SYSCONFDIR "/etc" ) -endif() - -# make predefined install dirs available everywhere -include( GNUInstallDirs ) - -# make uninstall support -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY -) - -# Early configure these files as we need them later on -set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" ) -set( CALAMARES_LIBRARIES calamares ) - ### Example Distro # @@ -391,6 +342,58 @@ endif() # "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html" add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.") + +### CALAMARES PROPER +# +set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} ) +set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" ) +if( CALAMARES_VERSION_RC ) + set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} ) +endif() + +# additional info for non-release builds +if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" ) + include( CMakeDateStamp ) + set( CALAMARES_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" ) + if( CALAMARES_VERSION_DATE GREATER 0 ) + set( CALAMARES_VERSION ${CALAMARES_VERSION}.${CALAMARES_VERSION_DATE} ) + endif() + + include( CMakeVersionSource ) + if( CMAKE_VERSION_SOURCE ) + set( CALAMARES_VERSION ${CALAMARES_VERSION}-${CMAKE_VERSION_SOURCE} ) + endif() +endif() + +# enforce using constBegin, constEnd for const-iterators +add_definitions( "-DQT_STRICT_ITERATORS" ) + +# set paths +set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) +set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) +set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) + +# Better default installation paths: GNUInstallDirs defines +# CMAKE_INSTALL_FULL_SYSCONFDIR to be CMAKE_INSTALL_PREFIX/etc by default +# but we really want /etc +if( NOT DEFINED CMAKE_INSTALL_SYSCONFDIR ) + set( CMAKE_INSTALL_SYSCONFDIR "/etc" ) +endif() + +# make predefined install dirs available everywhere +include( GNUInstallDirs ) + +# make uninstall support +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY +) + +# Early configure these files as we need them later on +set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" ) +set( CALAMARES_LIBRARIES calamares ) + add_subdirectory( src ) add_feature_info(Python ${WITH_PYTHON} "Python job modules") @@ -398,14 +401,6 @@ add_feature_info(PythonQt ${WITH_PYTHONQT} "Python view modules") add_feature_info(Config ${INSTALL_CONFIG} "Install Calamares configuration") add_feature_info(KCrash ${WITH_KF5Crash} "Crash dumps via KCrash") -feature_summary(WHAT ALL) - -get_directory_property( SKIPPED_MODULES - DIRECTORY src/modules - DEFINITION LIST_SKIPPED_MODULES -) -calamares_explain_skipped_modules( ${SKIPPED_MODULES} ) - # Add all targets to the build-tree export set set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files" ) set( CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" ) @@ -490,3 +485,13 @@ configure_file( add_custom_target( uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ) + +### CMAKE SUMMARY REPORT +# +feature_summary(WHAT ALL) + +get_directory_property( SKIPPED_MODULES + DIRECTORY src/modules + DEFINITION LIST_SKIPPED_MODULES +) +calamares_explain_skipped_modules( ${SKIPPED_MODULES} ) From 52f2161c35d84b921681649d2a1e4f49c8d7a914 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 14:17:43 +0200 Subject: [PATCH 27/68] CMake: make polkit-qt5-1 optional - This is only found in order to know where polkit files should be installed. In distro's that don't use polkit, may as well make it entirely optional. --- CMakeLists.txt | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d4a24550..c33ad8e6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,7 @@ cmake_minimum_required( VERSION 3.2 ) ### OPTIONS # option( INSTALL_CONFIG "Install configuration files" ON ) +option( INSTALL_POLKIT "Install Polkit configuration" ON ) option( BUILD_TESTING "Build the testing tree." ON ) option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON ) option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON ) @@ -197,7 +198,18 @@ include( CMakeColors ) # find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg Quick QuickWidgets ) find_package( YAMLCPP ${YAMLCPP_VERSION} REQUIRED ) -find_package( PolkitQt5-1 REQUIRED ) +if( INSTALL_POLKIT ) + find_package( PolkitQt5-1 REQUIRED ) +else() + # Find it anyway, for dependencies-reporting + find_package( PolkitQt5-1 ) +endif() +set_package_properties( + PolkitQt5-1 PROPERTIES + DESCRIPTION "Qt5 support for Polkit" + URL "https://cgit.kde.org/polkit-qt-1.git" + PURPOSE "PolkitQt5-1 helps with installing Polkit configuration" +) # Find ECM once, and add it to the module search path; Calamares # modules that need ECM can do @@ -454,12 +466,14 @@ if( INSTALL_CONFIG ) ) endif() -install( - FILES - com.github.calamares.calamares.policy - DESTINATION - "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}" -) +if( INSTALL_POLKIT ) + install( + FILES + com.github.calamares.calamares.policy + DESTINATION + "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}" + ) +endif() install( FILES From 24b0df3c044eb8445d938c989bca365c8f6b21a0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 7 Jun 2018 09:03:54 -0400 Subject: [PATCH 28/68] [locale] Missing includes - Implicitly included in recent Qt, but not in old versions Reported from Neptune Linux --- src/modules/locale/GeoIPTests.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/locale/GeoIPTests.cpp b/src/modules/locale/GeoIPTests.cpp index 42779ede0..d9c0a5898 100644 --- a/src/modules/locale/GeoIPTests.cpp +++ b/src/modules/locale/GeoIPTests.cpp @@ -23,6 +23,10 @@ #include "GeoIPXML.h" #endif +#include +#include +#include + #include QTEST_GUILESS_MAIN( GeoIPTests ) From a626e52bf32cba3900a209e190d02992491e6ccd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 8 Jun 2018 17:36:29 -0400 Subject: [PATCH 29/68] [libcalamares] Introduce more descriptive type name --- src/libcalamares/Settings.cpp | 2 +- src/libcalamares/Settings.h | 6 ++++-- src/libcalamaresui/modulesystem/ModuleManager.cpp | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/Settings.cpp b/src/libcalamares/Settings.cpp index 732afa8d8..087822623 100644 --- a/src/libcalamares/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -175,7 +175,7 @@ Settings::modulesSearchPaths() const } -QList > +Settings::InstanceDescriptionList Settings::customModuleInstances() const { return m_customModuleInstances; diff --git a/src/libcalamares/Settings.h b/src/libcalamares/Settings.h index 42720b986..35527243a 100644 --- a/src/libcalamares/Settings.h +++ b/src/libcalamares/Settings.h @@ -43,7 +43,9 @@ public: QStringList modulesSearchPaths() const; - QList< QMap< QString, QString > > customModuleInstances() const; + using InstanceDescription = QMap< QString, QString >; + using InstanceDescriptionList = QList< InstanceDescription >; + InstanceDescriptionList customModuleInstances() const; QList< QPair< ModuleAction, QStringList > > modulesSequence() const; @@ -60,7 +62,7 @@ private: QStringList m_modulesSearchPaths; - QList< QMap< QString, QString > > m_customModuleInstances; + InstanceDescriptionList m_customModuleInstances; QList< QPair< ModuleAction, QStringList > > m_modulesSequence; QString m_brandingComponentName; diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 83273e924..df77c5602 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -159,7 +159,7 @@ ModuleManager::loadModules() { QTimer::singleShot( 0, this, [ this ]() { - QList< QMap< QString, QString > > customInstances = + Settings::InstanceDescriptionList customInstances = Settings::instance()->customModuleInstances(); const auto modulesSequence = Settings::instance()->modulesSequence(); From dccf6f16f5cec7d7ed94c4ffa028687c58cbfea5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 8 Jun 2018 17:56:23 -0400 Subject: [PATCH 30/68] [libcalamaresui] Lambdas are fun, but not always the solution --- .../modulesystem/ModuleManager.cpp | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index df77c5602..317ca884f 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -154,6 +154,26 @@ ModuleManager::moduleInstance( const QString& instanceKey ) } +/** + * @brief Search a list of instance descriptions for one matching @p module and @p id + * + * @return -1 on failure, otherwise index of the instance that matches. + */ +static int findCustomInstance( const Settings::InstanceDescriptionList& customInstances, + const QString& module, + const QString& id ) +{ + for ( int i = 0; i < customInstances.count(); ++i ) + { + const auto& thisInstance = customInstances[ i ]; + if ( thisInstance.value( "module" ) == module && + thisInstance.value( "id" ) == id ) + return i; + } + return -1; +} + + void ModuleManager::loadModules() { @@ -196,25 +216,11 @@ ModuleManager::loadModules() return; } - auto findCustomInstance = - [ customInstances ]( const QString& module, - const QString& id) -> int - { - for ( int i = 0; i < customInstances.count(); ++i ) - { - auto thisInstance = customInstances[ i ]; - if ( thisInstance.value( "module" ) == module && - thisInstance.value( "id" ) == id ) - return i; - } - return -1; - }; - if ( moduleName != instanceId ) //means this is a custom instance { - if ( findCustomInstance( moduleName, instanceId ) > -1 ) + if ( int found = findCustomInstance( customInstances, moduleName, instanceId ) > -1 ) { - configFileName = customInstances[ findCustomInstance( moduleName, instanceId ) ].value( "config" ); + configFileName = customInstances[ found ].value( "config" ); } else //ought to be a custom instance, but cannot find instance entry { From 1999e4e5c2839628a88ce4816b711af18e171a8c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 8 Jun 2018 18:14:51 -0400 Subject: [PATCH 31/68] [libcalamaresui] Error out consistently when module loading fails - Some module-loading failures were ignored and produce only a warning, instead of erroring out. --- .../modulesystem/ModuleManager.cpp | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 317ca884f..48a2c1476 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -177,6 +177,8 @@ static int findCustomInstance( const Settings::InstanceDescriptionList& customIn void ModuleManager::loadModules() { + static const char GOODBYE[] = "\nCalamares will now quit."; + QTimer::singleShot( 0, this, [ this ]() { Settings::InstanceDescriptionList customInstances = @@ -197,8 +199,8 @@ ModuleManager::loadModules() if ( moduleEntrySplit.length() < 1 || moduleEntrySplit.length() > 2 ) { - cError() << "Wrong module entry format for module" << moduleEntry << '.'; - cError() << "Calamares will now quit."; + cError() << "Wrong module entry format for module" << moduleEntry << '.' + << GOODBYE; qApp->exit( 1 ); return; } @@ -210,8 +212,8 @@ ModuleManager::loadModules() m_availableDescriptorsByModuleName.value( moduleName ).isEmpty() ) { cError() << "Module" << moduleName << "not found in module search paths." - << Logger::DebugList( m_paths ); - cError() << "Calamares will now quit."; + << Logger::DebugList( m_paths ) + << GOODBYE; qApp->exit( 1 ); return; } @@ -224,8 +226,8 @@ ModuleManager::loadModules() } else //ought to be a custom instance, but cannot find instance entry { - cError() << "Custom instance" << moduleEntry << "not found in custom instances section."; - cError() << "Calamares will now quit."; + cError() << "Custom instance" << moduleEntry << "not found in custom instances section." + << GOODBYE; qApp->exit( 1 ); return; } @@ -248,7 +250,7 @@ ModuleManager::loadModules() if ( thisModule && !thisModule->isLoaded() ) { cError() << "Module" << instanceKey << "exists but not loaded." - << "\nCalamares will now quit."; + << GOODBYE; qApp->exit( 1 ); return; } @@ -266,18 +268,18 @@ ModuleManager::loadModules() m_moduleDirectoriesByModuleName.value( moduleName ) ); if ( !thisModule ) { - cWarning() << "Module" << instanceKey << "cannot be created from descriptor."; - Q_ASSERT( thisModule ); - continue; + cError() << "Module" << instanceKey << "cannot be created from descriptor" << configFileName + << GOODBYE; + qApp->exit( 1 ); } // If it's a ViewModule, it also appends the ViewStep to the ViewManager. thisModule->loadSelf(); m_loadedModulesByInstanceKey.insert( instanceKey, thisModule ); if ( !thisModule->isLoaded() ) { - cWarning() << "Module" << moduleName << "loading FAILED"; - Q_ASSERT( thisModule->isLoaded() ); - continue; + cError() << "Module" << instanceKey << "loading FAILED" + << GOODBYE; + qApp->exit( 1 ); } } From a40c36ef493b6a5596515d9d288cc4c91e270834 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 11 Jun 2018 05:59:56 -0400 Subject: [PATCH 32/68] [libcalamaresui] Report on failed module loading - Collect the failed modules, instead of bailing out on the first one (this also prevents crashes caused by quit() called from a timer). - Introduce a slot to report on failed module loading (no UI yet). --- src/calamares/CalamaresApplication.cpp | 8 ++++++ src/calamares/CalamaresApplication.h | 1 + .../modulesystem/ModuleManager.cpp | 28 +++++++++++-------- .../modulesystem/ModuleManager.h | 3 +- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 2bb0af8df..2f61749b0 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -335,6 +335,8 @@ CalamaresApplication::initView() connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded, this, &CalamaresApplication::initViewSteps ); + connect( m_moduleManager, &Calamares::ModuleManager::modulesFailed, + this, &CalamaresApplication::initFailed ); m_moduleManager->loadModules(); @@ -356,6 +358,12 @@ CalamaresApplication::initViewSteps() cDebug() << "STARTUP: Window now visible and ProgressTreeView populated"; } +void +CalamaresApplication::initFailed(const QStringList& l) +{ + cError() << "STARTUP: failed modules are" << l; + m_mainwindow->show(); +} void CalamaresApplication::initJobQueue() diff --git a/src/calamares/CalamaresApplication.h b/src/calamares/CalamaresApplication.h index 3cfd4f79f..a588afcee 100644 --- a/src/calamares/CalamaresApplication.h +++ b/src/calamares/CalamaresApplication.h @@ -70,6 +70,7 @@ public: private slots: void initView(); void initViewSteps(); + void initFailed( const QStringList& l ); private: void initQmlPath(); diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 48a2c1476..57a82994f 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -181,6 +181,7 @@ ModuleManager::loadModules() QTimer::singleShot( 0, this, [ this ]() { + QStringList failedModules; Settings::InstanceDescriptionList customInstances = Settings::instance()->customModuleInstances(); @@ -201,8 +202,8 @@ ModuleManager::loadModules() { cError() << "Wrong module entry format for module" << moduleEntry << '.' << GOODBYE; - qApp->exit( 1 ); - return; + failedModules.append( moduleEntry ); + continue; } moduleName = moduleEntrySplit.first(); instanceId = moduleEntrySplit.last(); @@ -214,8 +215,8 @@ ModuleManager::loadModules() cError() << "Module" << moduleName << "not found in module search paths." << Logger::DebugList( m_paths ) << GOODBYE; - qApp->exit( 1 ); - return; + failedModules.append( moduleName ); + continue; } if ( moduleName != instanceId ) //means this is a custom instance @@ -228,8 +229,8 @@ ModuleManager::loadModules() { cError() << "Custom instance" << moduleEntry << "not found in custom instances section." << GOODBYE; - qApp->exit( 1 ); - return; + failedModules.append( moduleEntry ); + continue; } } @@ -251,8 +252,8 @@ ModuleManager::loadModules() { cError() << "Module" << instanceKey << "exists but not loaded." << GOODBYE; - qApp->exit( 1 ); - return; + failedModules.append( instanceKey ); + continue; } if ( thisModule && thisModule->isLoaded() ) @@ -270,7 +271,8 @@ ModuleManager::loadModules() { cError() << "Module" << instanceKey << "cannot be created from descriptor" << configFileName << GOODBYE; - qApp->exit( 1 ); + failedModules.append( instanceKey ); + continue; } // If it's a ViewModule, it also appends the ViewStep to the ViewManager. thisModule->loadSelf(); @@ -279,7 +281,8 @@ ModuleManager::loadModules() { cError() << "Module" << instanceKey << "loading FAILED" << GOODBYE; - qApp->exit( 1 ); + failedModules.append( instanceKey ); + continue; } } @@ -300,7 +303,10 @@ ModuleManager::loadModules() } } } - emit modulesLoaded(); + if ( !failedModules.isEmpty() ) + emit modulesFailed( failedModules ); + else + emit modulesLoaded(); } ); } diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index ed7700c40..e1763d93c 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -82,7 +82,8 @@ public: signals: void initDone(); - void modulesLoaded(); + void modulesLoaded(); /// All of the modules were loaded successfully + void modulesFailed( QStringList ); /// .. or not private slots: void doInit(); From 49622a6a3079172b8ba86f9be0e4f3f6d4819ba2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 11 Jun 2018 06:28:31 -0400 Subject: [PATCH 33/68] Tests: expand test-application test_conf - Add -v (verbose) and -b (load via bytearray) - Verbose prints the keys read from the file, - Bytes reads via an indirection through QByteArray, like Settings does --- src/modules/CMakeLists.txt | 2 +- src/modules/test_conf.cpp | 55 +++++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 7f93c555a..514d6b4f6 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -6,7 +6,7 @@ set( LIST_SKIPPED_MODULES "" ) if( BUILD_TESTING ) add_executable( test_conf test_conf.cpp ) - target_link_libraries( test_conf ${YAMLCPP_LIBRARY} ) + target_link_libraries( test_conf ${YAMLCPP_LIBRARY} Qt5::Core ) target_include_directories( test_conf PUBLIC ${YAMLCPP_INCLUDE_DIR} ) endif() diff --git a/src/modules/test_conf.cpp b/src/modules/test_conf.cpp index 7ef557a3c..082f626c8 100644 --- a/src/modules/test_conf.cpp +++ b/src/modules/test_conf.cpp @@ -21,43 +21,86 @@ * shipped with each module for correctness -- well, for parseability. */ +#include +#include + #include + #include +#include +#include + using std::cerr; +static const char usage[] = "Usage: test_conf [-v] [-b] ...\n"; + int main(int argc, char** argv) { - if (argc != 2) + bool verbose = false; + bool bytes = false; + + int opt; + while ((opt = getopt(argc, argv, "vb")) != -1) { + switch (opt) { + case 'v': + verbose = true; + break; + case 'b': + bytes = true; + break; + default: /* '?' */ + cerr << usage; + return 1; + } + } + + if ( optind >= argc ) { - cerr << "Usage: test_conf \n"; + cerr << usage; return 1; } + const char* filename = argv[optind]; try { - YAML::Node doc = YAML::LoadFile( argv[1] ); + YAML::Node doc; + if ( bytes ) + { + QFile f( filename ); + if ( f.open( QFile::ReadOnly | QFile::Text ) ) + doc = YAML::Load( f.readAll().constData() ); + } + else + doc = YAML::LoadFile( filename ); if ( doc.IsNull() ) { // Special case: empty config files are valid, // but aren't a map. For the example configs, // this is still an error. - cerr << "WARNING:" << argv[1] << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: empty YAML\n"; return 1; } if ( !doc.IsMap() ) { - cerr << "WARNING:" << argv[1] << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: not-a-YAML-map\n"; return 1; } + + if ( verbose ) + { + cerr << "Keys:\n"; + for ( auto i = doc.begin(); i != doc.end(); ++i ) + cerr << i->first.as() << '\n'; + } } catch ( YAML::Exception& e ) { - cerr << "WARNING:" << argv[1] << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: YAML parser error " << e.what() << '\n'; return 1; } From a732ce11bcf60c6c9ac978200d0bab0e0081cd45 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 11 Jun 2018 08:33:47 -0400 Subject: [PATCH 34/68] [libcalamares] Warn more about badly-formed config --- src/libcalamares/Settings.cpp | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/libcalamares/Settings.cpp b/src/libcalamares/Settings.cpp index 087822623..bc645ab39 100644 --- a/src/libcalamares/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -30,6 +30,32 @@ #include +/** Helper function to grab a QString out of the config, and to warn if not present. */ +static QString +requireString( const YAML::Node& config, const char* key ) +{ + if ( config[ key ] ) + return QString::fromStdString( config[ key ].as< std::string >() ); + else + { + cWarning() << "Required settings.conf key" << key << "is missing."; + return QString(); + } +} + +/** Helper function to grab a bool out of the config, and to warn if not present. */ +static bool +requireBool( const YAML::Node& config, const char* key, bool d ) +{ + if ( config[ key ] ) + return config[ key ].as< bool >(); + else + { + cWarning() << "Required settings.conf key" << key << "is missing."; + return d; + } +} + namespace Calamares { @@ -41,7 +67,6 @@ Settings::instance() return s_instance; } - Settings::Settings( const QString& settingsFilePath, bool debugMode, QObject* parent ) @@ -148,11 +173,9 @@ Settings::Settings( const QString& settingsFilePath, } } - m_brandingComponentName = QString::fromStdString( config[ "branding" ] - .as< std::string >() ); - m_promptInstall = config[ "prompt-install" ].as< bool >(); - - m_doChroot = config[ "dont-chroot" ] ? !config[ "dont-chroot" ].as< bool >() : true; + m_brandingComponentName = requireString( config, "branding" ); + m_promptInstall = requireBool( config, "prompt-install", false ); + m_doChroot = requireBool( config, "dont-chroot", true ); } catch ( YAML::Exception& e ) { From 35124c149e493a1659eed73b6b29dc8ad6d9e5e2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 11 Jun 2018 13:35:12 -0400 Subject: [PATCH 35/68] [libcalamaresui] Drop the 'goodbye' message --- .../modulesystem/ModuleManager.cpp | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 57a82994f..194db65a2 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -177,8 +177,6 @@ static int findCustomInstance( const Settings::InstanceDescriptionList& customIn void ModuleManager::loadModules() { - static const char GOODBYE[] = "\nCalamares will now quit."; - QTimer::singleShot( 0, this, [ this ]() { QStringList failedModules; @@ -200,8 +198,7 @@ ModuleManager::loadModules() if ( moduleEntrySplit.length() < 1 || moduleEntrySplit.length() > 2 ) { - cError() << "Wrong module entry format for module" << moduleEntry << '.' - << GOODBYE; + cError() << "Wrong module entry format for module" << moduleEntry; failedModules.append( moduleEntry ); continue; } @@ -213,8 +210,7 @@ ModuleManager::loadModules() m_availableDescriptorsByModuleName.value( moduleName ).isEmpty() ) { cError() << "Module" << moduleName << "not found in module search paths." - << Logger::DebugList( m_paths ) - << GOODBYE; + << Logger::DebugList( m_paths ); failedModules.append( moduleName ); continue; } @@ -227,8 +223,7 @@ ModuleManager::loadModules() } else //ought to be a custom instance, but cannot find instance entry { - cError() << "Custom instance" << moduleEntry << "not found in custom instances section." - << GOODBYE; + cError() << "Custom instance" << moduleEntry << "not found in custom instances section."; failedModules.append( moduleEntry ); continue; } @@ -250,8 +245,7 @@ ModuleManager::loadModules() m_loadedModulesByInstanceKey.value( instanceKey, nullptr ); if ( thisModule && !thisModule->isLoaded() ) { - cError() << "Module" << instanceKey << "exists but not loaded." - << GOODBYE; + cError() << "Module" << instanceKey << "exists but not loaded."; failedModules.append( instanceKey ); continue; } @@ -269,8 +263,7 @@ ModuleManager::loadModules() m_moduleDirectoriesByModuleName.value( moduleName ) ); if ( !thisModule ) { - cError() << "Module" << instanceKey << "cannot be created from descriptor" << configFileName - << GOODBYE; + cError() << "Module" << instanceKey << "cannot be created from descriptor" << configFileName; failedModules.append( instanceKey ); continue; } @@ -279,8 +272,7 @@ ModuleManager::loadModules() m_loadedModulesByInstanceKey.insert( instanceKey, thisModule ); if ( !thisModule->isLoaded() ) { - cError() << "Module" << instanceKey << "loading FAILED" - << GOODBYE; + cError() << "Module" << instanceKey << "loading FAILED."; failedModules.append( instanceKey ); continue; } From d61b32aba65901236c00ff67db0df1b57ec0717c Mon Sep 17 00:00:00 2001 From: Raul Rodrigo Segura Date: Tue, 12 Jun 2018 13:44:28 +0200 Subject: [PATCH 36/68] Add configuration values into pythonqt modules --- src/libcalamaresui/modulesystem/PythonQtViewModule.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index 486d9a8e2..d010f2200 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -95,6 +95,9 @@ PythonQtViewModule::loadSelf() s_utils = new ::Utils( Calamares::JobQueue::instance()->globalStorage() ); cala.addObject( "utils", s_utils ); + // Append configuration object, in module PythonQt.calamares + cala.addVariable("configuration",m_configurationMap); + // Basic stdout/stderr handling QObject::connect( PythonQt::self(), &PythonQt::pythonStdOut, []( const QString& message ) From 8b406cac9b57a8e5f535087ea743f2e8fde46c79 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 13 Jun 2018 04:37:52 -0400 Subject: [PATCH 37/68] [libcalamaresui] Improve module loading - Add a TODO for allowing modules to come from somewhere other than the module loader (this would allow "internal" modules that are always present) - Warnings are warnings --- src/libcalamaresui/modulesystem/ViewModule.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 1f940b30b..317d32712 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -52,27 +52,32 @@ ViewModule::loadSelf() PluginFactory* pf = qobject_cast< PluginFactory* >( m_loader->instance() ); if ( !pf ) { - cDebug() << Q_FUNC_INFO << "No factory:" << m_loader->errorString(); + cWarning() << Q_FUNC_INFO << "No factory:" << m_loader->errorString(); return; } m_viewStep = pf->create< Calamares::ViewStep >(); if ( !m_viewStep ) { - cDebug() << Q_FUNC_INFO << "create() failed" << m_loader->errorString(); + cWarning() << Q_FUNC_INFO << "create() failed" << m_loader->errorString(); return; } -// cDebug() << "ViewModule loading self for instance" << instanceKey() -// << "\nViewModule at address" << this -// << "\nCalamares::PluginFactory at address" << pf -// << "\nViewStep at address" << m_viewStep; + } + + // TODO: allow internal view steps to be created here; they would + // have to be linked into the main application somehow. + // If any method created the view step, use it now. + if ( m_viewStep ) + { m_viewStep->setModuleInstanceKey( instanceKey() ); m_viewStep->setConfigurationMap( m_configurationMap ); ViewManager::instance()->addViewStep( m_viewStep ); m_loaded = true; cDebug() << "ViewModule" << instanceKey() << "loading complete."; } + else + cWarning() << Q_FUNC_INFO << "No view step was created"; } From 3e24c3c58fce63ec223dc317fda8dc9b15e52aae Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 13 Jun 2018 19:31:00 +0200 Subject: [PATCH 38/68] [libcalamaresui] Provide standardised large font --- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 9 +++++++++ src/libcalamaresui/utils/CalamaresUtilsGui.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index b05d4ea4f..3c59b0f89 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -226,6 +226,15 @@ defaultFont() } +QFont +largeFont() +{ + QFont f; + f.setPointSize( defaultFontSize() + 4 ); + return f; +} + + void setDefaultFontSize( int points ) { diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index c0905d4d0..98a49db61 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -115,6 +115,7 @@ UIDLLEXPORT void setDefaultFontSize( int points ); UIDLLEXPORT int defaultFontSize(); // in points UIDLLEXPORT int defaultFontHeight(); // in pixels, DPI-specific UIDLLEXPORT QFont defaultFont(); +UIDLLEXPORT QFont largeFont(); UIDLLEXPORT QSize defaultIconSize(); /** From 9918dfb95ffc17fcf0885cb036356d76c7d1f201 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 13 Jun 2018 05:11:31 -0400 Subject: [PATCH 39/68] [libcalamaresui] Reporting on failures - Provide information on failed modules - Disallow further progress when configuration is borked --- src/libcalamaresui/CMakeLists.txt | 1 + src/libcalamaresui/ViewManager.cpp | 15 +++ src/libcalamaresui/ViewManager.h | 6 + .../modulesystem/ModuleManager.cpp | 3 + .../viewpages/BlankViewStep.cpp | 113 ++++++++++++++++++ src/libcalamaresui/viewpages/BlankViewStep.h | 70 +++++++++++ 6 files changed, 208 insertions(+) create mode 100644 src/libcalamaresui/viewpages/BlankViewStep.cpp create mode 100644 src/libcalamaresui/viewpages/BlankViewStep.h diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 6bbb285bb..efd0ebb29 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -15,6 +15,7 @@ set( calamaresui_SOURCES utils/qjsonitem.cpp viewpages/AbstractPage.cpp + viewpages/BlankViewStep.cpp viewpages/ViewStep.cpp widgets/ClickableLabel.cpp diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index e597bf6a3..8777f79d7 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -20,6 +20,7 @@ #include "ViewManager.h" #include "utils/Logger.h" +#include "viewpages/BlankViewStep.h" #include "viewpages/ViewStep.h" #include "ExecutionViewStep.h" #include "JobQueue.h" @@ -172,6 +173,20 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail } +void +ViewManager::onInitFailed( const QStringList& modules) +{ + QString title( tr( "Calamares Initialization Failed" ) ); + QString description( tr( "Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. %1 can not be installed." ) ); + QStringList details; + details << QLatin1Literal("
    "); + for( const auto& m : modules ) + details << QLatin1Literal("
  • ") << m << QLatin1Literal("
  • "); + details << QLatin1Literal("
"); + + insertViewStep( 0, new BlankViewStep( title, description.arg( *Calamares::Branding::ShortProductName ), details.join( QString() ) ) ); +} + ViewStepList ViewManager::viewSteps() const { diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index e4f215f8f..ee199f725 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -117,6 +117,12 @@ public slots: */ void onInstallationFailed( const QString& message, const QString& details ); + /** @brief Replaces the stack with a view step stating that initialization failed. + * + * @param modules a list of failed modules. + */ + void onInitFailed( const QStringList& modules ); + signals: void currentStepChanged(); void enlarge( QSize enlarge ) const; // See ViewStep::enlarge() diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 194db65a2..6361fa20b 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -296,7 +296,10 @@ ModuleManager::loadModules() } } if ( !failedModules.isEmpty() ) + { + ViewManager::instance()->onInitFailed( failedModules ); emit modulesFailed( failedModules ); + } else emit modulesLoaded(); } ); diff --git a/src/libcalamaresui/viewpages/BlankViewStep.cpp b/src/libcalamaresui/viewpages/BlankViewStep.cpp new file mode 100644 index 000000000..093d19d8b --- /dev/null +++ b/src/libcalamaresui/viewpages/BlankViewStep.cpp @@ -0,0 +1,113 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, 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 "BlankViewStep.h" + +#include "utils/CalamaresUtilsGui.h" + +#include +#include +#include + +namespace Calamares +{ + +BlankViewStep::BlankViewStep( const QString& title, const QString& description, const QString& details, QObject* parent) + : Calamares::ViewStep( parent ) + , m_widget( new QWidget() ) +{ + QBoxLayout* layout = new QVBoxLayout(); + + auto* label = new QLabel( title ); + label->setAlignment( Qt::AlignHCenter ); + label->setFont( CalamaresUtils::largeFont() ); + layout->addWidget( label ); + + label = new QLabel( description ); + label->setWordWrap( true ); + layout->addSpacing( 10 ); + layout->addWidget( label ); + + if ( !details.isEmpty() ) + { + label = new QLabel( details ); + layout->addSpacing( 10 ); + layout->addWidget( label ); + } + + layout->addStretch( 10 ); + + m_widget->setLayout( layout ); +} + +BlankViewStep::~BlankViewStep() +{ +} + +QString +BlankViewStep::prettyName() const +{ + return tr( "Blank Page" ); +} + +void +BlankViewStep::back() +{ +} + +void +BlankViewStep::next() +{ +} + +bool +BlankViewStep::isBackEnabled() const +{ + return false; +} + +bool +BlankViewStep::isNextEnabled() const +{ + return false; +} + +bool +BlankViewStep::isAtBeginning() const +{ + return true; +} + +bool +BlankViewStep::isAtEnd() const +{ + return false; +} + +QWidget* +BlankViewStep::widget() +{ + return m_widget; +} + +Calamares::JobList +BlankViewStep::jobs() const +{ + return JobList(); +} + +} // namespace diff --git a/src/libcalamaresui/viewpages/BlankViewStep.h b/src/libcalamaresui/viewpages/BlankViewStep.h new file mode 100644 index 000000000..5e6938143 --- /dev/null +++ b/src/libcalamaresui/viewpages/BlankViewStep.h @@ -0,0 +1,70 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, 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 BLANKVIEWSTEP_H +#define BLANKVIEWSTEP_H + +#include + +#include +#include + +class QWidget; + +namespace Calamares +{ + +/** @brief A "blank" view step, used for error and status reporting + * + * + */ +class BlankViewStep : public Calamares::ViewStep +{ + Q_OBJECT + +public: + explicit BlankViewStep( const QString& title, const QString& description, const QString& details = QString(), QObject* parent = nullptr ); + virtual ~BlankViewStep() override; + + QString prettyName() const override; + + QWidget* widget() override; + + void next() override; + void back() override; + + bool isNextEnabled() const override; + bool isBackEnabled() const override; + + bool isAtBeginning() const override; + bool isAtEnd() const override; + + Calamares::JobList jobs() const override; +#if 0 + void onActivate() override; + + + void setConfigurationMap( const QVariantMap& configurationMap ) override; +#endif + +private: + QWidget* m_widget; +}; + +} // namespace +#endif // BLANKVIEWSTEP_H From bb5ac0326d35d8649d4a504e1a049f06449957e8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 02:31:06 -0400 Subject: [PATCH 40/68] [libcalamaresui] Improve layout of "blank" view step --- src/libcalamaresui/viewpages/BlankViewStep.cpp | 11 ++++++++--- src/libcalamaresui/viewpages/BlankViewStep.h | 9 ++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/libcalamaresui/viewpages/BlankViewStep.cpp b/src/libcalamaresui/viewpages/BlankViewStep.cpp index 093d19d8b..243305c1f 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.cpp +++ b/src/libcalamaresui/viewpages/BlankViewStep.cpp @@ -32,6 +32,9 @@ BlankViewStep::BlankViewStep( const QString& title, const QString& description, { QBoxLayout* layout = new QVBoxLayout(); + constexpr int const marginWidth = 10; + constexpr int const spacingHeight = 10; + auto* label = new QLabel( title ); label->setAlignment( Qt::AlignHCenter ); label->setFont( CalamaresUtils::largeFont() ); @@ -39,17 +42,19 @@ BlankViewStep::BlankViewStep( const QString& title, const QString& description, label = new QLabel( description ); label->setWordWrap( true ); - layout->addSpacing( 10 ); + label->setMargin( marginWidth ); + layout->addSpacing( spacingHeight ); layout->addWidget( label ); if ( !details.isEmpty() ) { label = new QLabel( details ); - layout->addSpacing( 10 ); + label->setMargin( marginWidth ); + layout->addSpacing( spacingHeight ); layout->addWidget( label ); } - layout->addStretch( 10 ); + layout->addStretch( 1 ); // Push the rest to the top m_widget->setLayout( layout ); } diff --git a/src/libcalamaresui/viewpages/BlankViewStep.h b/src/libcalamaresui/viewpages/BlankViewStep.h index 5e6938143..a3f46d1d5 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.h +++ b/src/libcalamaresui/viewpages/BlankViewStep.h @@ -31,7 +31,8 @@ namespace Calamares /** @brief A "blank" view step, used for error and status reporting * - * + * This view step never allows navigation (forward or back); it's a trap. + * It displays a title and explanation, and optional details. */ class BlankViewStep : public Calamares::ViewStep { @@ -55,12 +56,6 @@ public: bool isAtEnd() const override; Calamares::JobList jobs() const override; -#if 0 - void onActivate() override; - - - void setConfigurationMap( const QVariantMap& configurationMap ) override; -#endif private: QWidget* m_widget; From 97a45db4bf87e416f5096c1b92ecaec09bb22dbe Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 02:35:49 -0400 Subject: [PATCH 41/68] [libcalamaresui] Reset font height when changing size - defaultFontHeight() caches the result; clear cache when changing the default size, even though this happens only once in the current codebase. --- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 3c59b0f89..e4dc6b555 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -239,6 +239,7 @@ void setDefaultFontSize( int points ) { s_defaultFontSize = points; + s_defaultFontHeight = 0; // Recalculate on next call to defaultFontHeight() } From a8426730ca1dd05ccd9f290935566d6e33d52dbe Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 02:48:52 -0400 Subject: [PATCH 42/68] [libcalamaresui] Improve wording of modules failure warning --- src/libcalamaresui/ViewManager.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index 8777f79d7..2b9f87db8 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -177,14 +177,21 @@ void ViewManager::onInitFailed( const QStringList& modules) { QString title( tr( "Calamares Initialization Failed" ) ); - QString description( tr( "Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. %1 can not be installed." ) ); - QStringList details; - details << QLatin1Literal("
    "); - for( const auto& m : modules ) - details << QLatin1Literal("
  • ") << m << QLatin1Literal("
  • "); - details << QLatin1Literal("
"); - - insertViewStep( 0, new BlankViewStep( title, description.arg( *Calamares::Branding::ShortProductName ), details.join( QString() ) ) ); + QString description( tr( "%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution." ) ); + QString detailString; + + if ( modules.count() > 0 ) + { + description.append( tr( "
The following modules could not be loaded:" ) ); + QStringList details; + details << QLatin1Literal("
    "); + for( const auto& m : modules ) + details << QLatin1Literal("
  • ") << m << QLatin1Literal("
  • "); + details << QLatin1Literal("
"); + detailString = details.join( QString() ); + } + + insertViewStep( 0, new BlankViewStep( title, description.arg( *Calamares::Branding::ShortProductName ), detailString ) ); } ViewStepList From c47fd88ff0e2c23972d21f3fdbfdcb5ec2b3b676 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 14 Jun 2018 04:47:51 -0400 Subject: [PATCH 43/68] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_es_MX.ts | 427 ++++++++++++++++++++-------------------- lang/calamares_et.ts | 134 ++++++------- 2 files changed, 281 insertions(+), 280 deletions(-) diff --git a/lang/calamares_es_MX.ts b/lang/calamares_es_MX.ts index f6e76dc9a..657507b9d 100644 --- a/lang/calamares_es_MX.ts +++ b/lang/calamares_es_MX.ts @@ -4,17 +4,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + El <strong>entorno de arranque </strong>de este sistema. <br><br>Sistemas antiguos x86 solo admiten <strong>BIOS</strong>. <br>Sistemas modernos usualmente usan <strong>EFI</strong>, pero podrían aparecer como BIOS si inició en modo de compatibilidad. This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - + Este sistema fue iniciado con un entorno de arranque <strong>EFI. </strong><br><br>Para configurar el arranque desde un entorno EFI, este instalador debe hacer uso de un cargador de arranque, como <strong>GRUB</strong>, <strong>system-boot </strong> o una <strong>Partición de sistema EFI</strong>. Esto es automático, a menos que escoja el particionado manual, en tal caso debe escogerla o crearla por su cuenta. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - + Este sistema fue iniciado con un entorno de arranque <strong>BIOS. </strong><br><br>Para configurar el arranque desde un entorno BIOS, este instalador debe instalar un gestor de arranque como <strong>GRUB</strong>, ya sea al inicio de la partición o en el <strong> Master Boot Record</strong> cerca del inicio de la tabla de particiones (preferido). Esto es automático, a menos que escoja el particionado manual, en este caso debe configurarlo por su cuenta.
@@ -76,12 +76,12 @@ none - + ninguno Interface: - + Interfaz: @@ -138,7 +138,7 @@ Working directory %1 for python job %2 is not readable. - La carpeta de trabajo %1 para la tarea de python %2 no se pudo leer. + La carpeta de trabajo %1 para la tarea de python %2 no es accesible. @@ -179,44 +179,44 @@ Cancel installation without changing the system. - + Cancelar instalación sin cambiar el sistema. &Install - + &Instalar Cancel installation? - Cancelar la instalación? + ¿Cancelar la instalación? Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - Realmente desea cancelar el proceso de instalación actual? + ¿Realmente desea cancelar el proceso de instalación actual? El instalador terminará y se perderán todos los cambios. &Yes - + &Si &No - + &No &Close - + &Cerrar Continue with setup? - Continuar con la instalación? + ¿Continuar con la instalación? @@ -236,12 +236,12 @@ El instalador terminará y se perderán todos los cambios. &Done - + &Hecho The installation is complete. Close the installer. - + Instalación completa. Cierre el instalador. @@ -259,12 +259,12 @@ El instalador terminará y se perderán todos los cambios. Unknown exception type - Excepción desconocida + Tipo de excepción desconocida unparseable Python error - error no analizable Python + error Python no analizable @@ -274,7 +274,7 @@ El instalador terminará y se perderán todos los cambios. Unfetchable Python error. - Error de Python Unfetchable. + Error de Python inalcanzable. @@ -305,8 +305,7 @@ El instalador terminará y se perderán todos los cambios. 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. - + El programa le hará algunas preguntas y configurará %2 en su ordenador. @@ -344,7 +343,7 @@ El instalador terminará y se perderán todos los cambios. %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - + %1 será reducido a %2MB y una nueva partición de %3MB será creado para %4. @@ -362,7 +361,7 @@ El instalador terminará y se perderán todos los cambios. Reuse %1 as home partition for %2. - + Reuse %1 como partición home para %2. @@ -393,7 +392,7 @@ El instalador terminará y se perderán todos los cambios. This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento parece no tener un sistema operativo en el. ¿que le gustaría hacer?<br/> Usted podrá revisar y confirmar sus elecciones antes que cualquier cambio se realice al dispositivo de almacenamiento. @@ -401,12 +400,12 @@ El instalador terminará y se perderán todos los cambios. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>Borrar disco</strong> <br/>Esto <font color="red">borrará</font> todos los datos presentes actualmente en el dispositivo de almacenamiento seleccionado. This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento tiene %1 en el. ¿Que le gustaría hacer? <br/>Usted podrá revisar y confirmar sus elecciones antes de que cualquier cambio se realice al dispositivo de almacenamiento. @@ -414,7 +413,7 @@ El instalador terminará y se perderán todos los cambios. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>Instalar junto a</strong> <br/>El instalador reducirá una partición con el fin de hacer espacio para %1. @@ -422,17 +421,17 @@ El instalador terminará y se perderán todos los cambios. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>Reemplazar una partición</strong> <br/>Reemplaza una partición con %1. This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento ya tiene un sistema operativo en el. ¿Que le gustaría hacer?<br/> Usted podrá revisar y confirmar sus elecciones antes que cualquier cambio se realice al dispositivo de almacenamiento. This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento tiene múltiples sistemas operativos en el. ¿Que le gustaria hacer?<br/> Usted podrá revisar y confirmar sus elecciones antes que cualquier cambio se realice al dispositivo de almacenamiento. @@ -440,18 +439,17 @@ El instalador terminará y se perderán todos los cambios. Clear mounts for partitioning operations on %1 - <b>Instalar %1 en una partición existente</b><br/>Podrás elegir que partición borrar. + Despejar puntos de montaje para operaciones de particionamiento en %1 Clearing mounts for partitioning operations on %1. - Limpiar puntos de montaje para operaciones de particionamiento en %1 + Despejando puntos de montaje para operaciones de particionamiento en %1 Cleared all mounts for %1 - Todas las unidades desmontadas en %1 - + Puntos de montaje despejados para %1 @@ -459,12 +457,12 @@ El instalador terminará y se perderán todos los cambios. Clear all temporary mounts. - Quitar todos los puntos de montaje temporales. + Despejar todos los puntos de montaje temporales. Clearing all temporary mounts. - Limpiando todos los puntos de montaje temporales. + Despejando todos los puntos de montaje temporales. @@ -474,7 +472,7 @@ El instalador terminará y se perderán todos los cambios. Cleared all temporary mounts. - Se han quitado todos los puntos de montaje temporales. + Todos los puntos de montaje temporales despejados. @@ -483,17 +481,17 @@ El instalador terminará y se perderán todos los cambios. Could not run command. - + No puede ejecutarse el comando. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Este comando se ejecuta en el entorno host y necesita saber la ruta root, pero no hay rootMountPoint definido. The command needs to know the user's name, but no username is defined. - + Este comando necesita saber el nombre de usuario, pero no hay nombre de usuario definido. @@ -501,7 +499,7 @@ El instalador terminará y se perderán todos los cambios. Contextual Processes Job - + Tareas de procesos contextuales. @@ -509,12 +507,12 @@ El instalador terminará y se perderán todos los cambios. Create a Partition - Crear partición + Crear una partición MiB - + MiB @@ -539,27 +537,27 @@ El instalador terminará y se perderán todos los cambios. LVM LV name - + Nombre del LVM LV. Flags: - Banderas: + Indicadores: &Mount Point: - Punto de &montaje: + Punto de &Montaje: Si&ze: - &Tamaño: + Ta&maño: En&crypt - + En&criptar @@ -579,7 +577,7 @@ El instalador terminará y se perderán todos los cambios. Mountpoint already in use. Please select another one. - + Punto de montaje ya esta en uso. Por favor seleccione otro. @@ -722,32 +720,32 @@ El instalador terminará y se perderán todos los cambios. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - + Este tipo de <strong>tabla de partición</strong> en el dispositivo de almacenamiento seleccionado.<br> <br>La única forma de cambiar el tipo de tabla de partición es borrar y recrear la tabla de partición de cero. lo cual destruye todos los datos en el dispositivo de almacenamiento.<br> Este instalador conservará la actual tabla de partición a menos que usted explícitamente elija lo contrario. <br>Si no está seguro, en los sistemas modernos GPT es lo preferible. This device has a <strong>%1</strong> partition table. - + Este dispositivo tiene una tabla de partición <strong>%1</strong> This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - + Este es un dispositivo<br> <strong>loop</strong>. <br>Es un pseudo - dispositivo sin tabla de partición que hace un archivo accesible como un dispositivo bloque. Este tipo de configuración usualmente contiene un solo sistema de archivos. This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - + Este instalador <strong>no puede detectar una tabla de partición</strong> en el dispositivo de almacenamiento seleccionado.<br> <br>El dispositivo o no tiene tabla de partición, o la tabla de partición esta corrupta o de un tipo desconocido. <br>Este instalador puede crear una nueva tabla de partición por usted ya sea automáticamente, o a través de la página de particionado manual. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br>Este es el tipo de tabla de partición recomendada para sistemas modernos que inician desde un entorno de arranque <strong>EFI</strong>. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>Este tipo de tabla de partición solo es recomendable en sistemas antiguos que inician desde un entorno de arranque <strong>BIOS</strong>. GPT es recomendado en la otra mayoría de casos.<br><br><strong> Precaución:</strong> La tabla de partición MBR es una era estándar MS-DOS obsoleta.<br> Unicamente 4 particiones <em>primarias</em> pueden ser creadas, y de esas 4, una puede ser una partición <em>extendida</em>, la cual puede a su vez contener varias particiones <em>logicas</em>. @@ -763,17 +761,17 @@ El instalador terminará y se perderán todos los cambios. Write LUKS configuration for Dracut to %1 - + Escribe configuración LUKS para Dracut a %1 Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - + Omitir escritura de configuración LUKS por Dracut: "/" partición no está encriptada. Failed to open %1 - + Falla al abrir %1 @@ -781,7 +779,7 @@ El instalador terminará y se perderán todos los cambios. Dummy C++ Job - + Trabajo C++ Simulado @@ -824,7 +822,7 @@ El instalador terminará y se perderán todos los cambios. MiB - + MiB @@ -834,12 +832,12 @@ El instalador terminará y se perderán todos los cambios. Flags: - Banderas: + Indicadores: Mountpoint already in use. Please select another one. - + Punto de montaje ya esta en uso. Por favor seleccione otro. @@ -852,22 +850,22 @@ El instalador terminará y se perderán todos los cambios. En&crypt system - + En&criptar sistema Passphrase - + Contraseña segura Confirm passphrase - + Confirmar contraseña segura Please enter the same passphrase in both boxes. - + Favor ingrese la misma contraseña segura en ambas casillas. @@ -913,12 +911,12 @@ El instalador terminará y se perderán todos los cambios. Form - Forma + Formulario <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Cuando esta casilla esta chequeada, su sistema reiniciará inmediatamente cuando de click en <span style=" font-style:italic;">Hecho</span> o cierre el instalador.</p></body></html> @@ -933,7 +931,7 @@ El instalador terminará y se perderán todos los cambios. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Instalación fallida</h1> <br/>%1 no ha sido instalado en su computador. <br/>El mensaje de error es: %2. @@ -946,12 +944,12 @@ El instalador terminará y se perderán todos los cambios. Installation Complete - + Instalación Completa The installation of %1 is complete. - + La instalación de %1 está completa. @@ -987,7 +985,7 @@ El instalador terminará y se perderán todos los cambios. Please install KDE Konsole and try again! - + Favor instale la Konsola KDE e intentelo de nuevo! @@ -1044,7 +1042,7 @@ El instalador terminará y se perderán todos los cambios. &OK - + &OK @@ -1130,12 +1128,12 @@ El instalador terminará y se perderán todos los cambios. The system language will be set to %1. - + El lenguaje del sistema será establecido a %1. The numbers and dates locale will be set to %1. - + Los números y datos locales serán establecidos a %1. @@ -1188,17 +1186,17 @@ El instalador terminará y se perderán todos los cambios. Description - + Descripción Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Instalación de Red. (Deshabilitada: No se puede acceder a la lista de paquetes, verifique su conección de red) Network Installation. (Disabled: Received invalid groups data) - + Instalación de Red. (Deshabilitada: Grupos de datos invalidos recibidos) @@ -1206,7 +1204,7 @@ El instalador terminará y se perderán todos los cambios. Package selection - + Selección de paquete @@ -1214,242 +1212,242 @@ El instalador terminará y se perderán todos los cambios. Password is too short - + La contraseña es muy corta Password is too long - + La contraseña es muy larga Password is too weak - + La contraseña es muy débil Memory allocation error when setting '%1' - + Error de asignación de memoria al configurar '%1' Memory allocation error - + Error en la asignación de memoria The password is the same as the old one - + La contraseña es la misma que la anterior The password is a palindrome - + La contraseña es un Palíndromo The password differs with case changes only - + La contraseña solo difiere en cambios de mayúsculas y minúsculas The password is too similar to the old one - + La contraseña es muy similar a la anterior. The password contains the user name in some form - + La contraseña contiene el nombre de usuario de alguna forma The password contains words from the real name of the user in some form - + La contraseña contiene palabras del nombre real del usuario de alguna forma The password contains forbidden words in some form - + La contraseña contiene palabras prohibidas de alguna forma The password contains less than %1 digits - + La contraseña contiene menos de %1 dígitos The password contains too few digits - + La contraseña contiene muy pocos dígitos The password contains less than %1 uppercase letters - + La contraseña contiene menos de %1 letras mayúsculas The password contains too few uppercase letters - + La contraseña contiene muy pocas letras mayúsculas The password contains less than %1 lowercase letters - + La contraseña continee menos de %1 letras minúsculas The password contains too few lowercase letters - + La contraseña contiene muy pocas letras minúsculas The password contains less than %1 non-alphanumeric characters - + La contraseña contiene menos de %1 caracteres no alfanuméricos The password contains too few non-alphanumeric characters - + La contraseña contiene muy pocos caracteres alfanuméricos The password is shorter than %1 characters - + La contraseña es mas corta que %1 caracteres The password is too short - + La contraseña es muy corta The password is just rotated old one - + La contraseña solo es la rotación de la anterior The password contains less than %1 character classes - + La contraseña contiene menos de %1 tipos de caracteres The password does not contain enough character classes - + La contraseña no contiene suficientes tipos de caracteres The password contains more than %1 same characters consecutively - + La contraseña contiene más de %1 caracteres iguales consecutivamente The password contains too many same characters consecutively - + La contraseña contiene muchos caracteres iguales repetidos consecutivamente The password contains more than %1 characters of the same class consecutively - + La contraseña contiene mas de %1 caracteres de la misma clase consecutivamente The password contains too many characters of the same class consecutively - + La contraseña contiene muchos caracteres de la misma clase consecutivamente The password contains monotonic sequence longer than %1 characters - + La contraseña contiene secuencias monotónicas mas larga que %1 caracteres The password contains too long of a monotonic character sequence - + La contraseña contiene secuencias monotónicas muy largas No password supplied - + Contraseña no suministrada Cannot obtain random numbers from the RNG device - + No pueden obtenerse números aleatorios del dispositivo RING Password generation failed - required entropy too low for settings - + Generación de contraseña fallida - entropía requerida muy baja para los ajustes The password fails the dictionary check - %1 - + La contraseña falla el chequeo del diccionario %1 The password fails the dictionary check - + La contraseña falla el chequeo del diccionario Unknown setting - %1 - + Configuración desconocida - %1 Unknown setting - + Configuración desconocida Bad integer value of setting - %1 - + Valor entero de configuración incorrecto - %1 Bad integer value - + Valor entero incorrecto Setting %1 is not of integer type - + Ajuste de % 1 no es de tipo entero Setting is not of integer type - + Ajuste no es de tipo entero Setting %1 is not of string type - + El ajuste %1 no es de tipo cadena Setting is not of string type - + El ajuste no es de tipo cadena Opening the configuration file failed - + Apertura del archivo de configuración fallida The configuration file is malformed - + El archivo de configuración está malformado Fatal failure - + Falla fatal Unknown error - + Error desconocido @@ -1545,32 +1543,32 @@ El instalador terminará y se perderán todos los cambios. Root - + Root Home - + Home Boot - + Boot EFI system - + Sistema EFI Swap - + Swap New partition for %1 - + Partición nueva para %1 @@ -1580,7 +1578,7 @@ El instalador terminará y se perderán todos los cambios. %1 %2 - + %1 %2 @@ -1628,7 +1626,7 @@ El instalador terminará y se perderán todos los cambios. Storage de&vice: - + Dis&positivo de almacenamiento: @@ -1658,7 +1656,7 @@ El instalador terminará y se perderán todos los cambios. Install boot &loader on: - + Instalar &cargador de arranque en: @@ -1668,12 +1666,12 @@ El instalador terminará y se perderán todos los cambios. Can not create new partition - + No se puede crear nueva partición The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + La tabla de partición en %1 ya tiene %2 particiones primarias, y no pueden agregarse mas. Favor remover una partición primaria y en cambio, agregue una partición extendida. @@ -1746,32 +1744,32 @@ El instalador terminará y se perderán todos los cambios. No EFI system partition configured - + Sistema de partición EFI no configurada An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + Un sistema de partición EFI es necesario para iniciar %1. <br/><br/>Para configurar un sistema de partición EFI, Regrese y seleccione o cree un sistema de archivos FAT32 con la bandera <strong>esp</strong> activada y el punto de montaje <strong>%2</strong>. <br/><br/>Puede continuar sin configurar una partición de sistema EFI, pero su sistema podría fallar al iniciar. EFI system partition flag not set - + Indicador de partición del sistema EFI no configurado An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Una partición del sistema EFI es necesaria para iniciar% 1. <br/><br/>Una partición se configuró con el punto de montaje <strong>% 2</strong>, pero su bandera <strong>esp</strong> no está configurada. <br/>Para establecer el indicador, retroceda y edite la partición.<br/><br/> Puede continuar sin configurar el indicador, pero su sistema puede fallar al iniciar. Boot partition not encrypted - + Partición de arranque no encriptada A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - + Se creó una partición de arranque separada junto con una partición raíz cifrada, pero la partición de arranque no está encriptada.<br/><br/> Existen problemas de seguridad con este tipo de configuración, ya que los archivos importantes del sistema se guardan en una partición no encriptada. <br/>Puede continuar si lo desea, pero el desbloqueo del sistema de archivos ocurrirá más tarde durante el inicio del sistema. <br/>Para encriptar la partición de arranque, retroceda y vuelva a crearla, seleccionando <strong>Encriptar</strong> en la ventana de creación de la partición. @@ -1779,13 +1777,13 @@ El instalador terminará y se perderán todos los cambios. Plasma Look-and-Feel Job - + Trabajo Plasma Look-and-Feel Could not select KDE Plasma Look-and-Feel package - + No se pudo seleccionar el paquete KDE Plasma Look-and-Feel @@ -1798,12 +1796,12 @@ El instalador terminará y se perderán todos los cambios. Placeholder - + Marcador de posición Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. - + Favor seleccione un Escritorio Plasma KDE Look-and-Feel. También puede omitir este paso y configurar el Look-and-Feel una vez el sistema está instalado. Haciendo clic en la selección Look-and-Feel le dará una previsualización en vivo de ese Look-and-Feel. @@ -1811,7 +1809,7 @@ El instalador terminará y se perderán todos los cambios. Look-and-Feel - + Look-and-Feel @@ -1819,17 +1817,17 @@ El instalador terminará y se perderán todos los cambios. Saving files for later ... - + Guardando archivos para más tarde ... No files configured to save for later. - + No hay archivos configurados para guardar más tarde. Not all of the configured files could be preserved. - + No todos los archivos configurados podrían conservarse. @@ -1838,39 +1836,42 @@ El instalador terminará y se perderán todos los cambios. There was no output from the command. - + +No hubo salida desde el comando. Output: - + +Salida + External command crashed. - + El comando externo ha fallado. Command <i>%1</i> crashed. - + El comando <i>%1</i> ha fallado. External command failed to start. - + El comando externo falló al iniciar. Command <i>%1</i> failed to start. - + El comando <i>%1</i> Falló al iniciar. Internal error when starting command. - + Error interno al iniciar el comando. @@ -1880,22 +1881,22 @@ Output: External command failed to finish. - + Comando externo falla al finalizar Command <i>%1</i> failed to finish in %2 seconds. - + Comando <i>%1</i> falló al finalizar en %2 segundos. External command finished with errors. - + Comando externo finalizado con errores Command <i>%1</i> finished with exit code %2. - + Comando <i>%1</i> finalizó con código de salida %2. @@ -1914,27 +1915,27 @@ Output: unknown - + desconocido extended - + extendido unformatted - + no formateado swap - + swap Unpartitioned space or unknown partition table - + Espacio no particionado o tabla de partición desconocida @@ -2068,7 +2069,7 @@ Output: The screen is too small to display the installer. - + La pantalla es muy pequeña para mostrar el instalador @@ -2099,12 +2100,12 @@ Output: Scanning storage devices... - + Escaneando dispositivos de almacenamiento... Partitioning - + Particionando @@ -2164,7 +2165,7 @@ Output: Failed to write keyboard configuration to existing /etc/default directory. - + Fallo al escribir la configuración del teclado en el directorio /etc/default existente. @@ -2172,82 +2173,82 @@ Output: Set flags on partition %1. - + Establecer indicadores en la partición% 1. Set flags on %1MB %2 partition. - + Establecer indicadores en la partición %1MB %2. Set flags on new partition. - + Establecer indicadores en la nueva partición. Clear flags on partition <strong>%1</strong>. - + Borrar indicadores en la partición <strong>%1</strong>. Clear flags on %1MB <strong>%2</strong> partition. - + Borrar indicadores %1MB en la partición <strong>%2</strong>. Clear flags on new partition. - + Borrar indicadores en la nueva partición. Flag partition <strong>%1</strong> as <strong>%2</strong>. - + Indicador de partición <strong>%1</strong> como <strong>%2</strong>. Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + Indicador %1MB de partición <strong>%2</strong> como <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - + Marcar la nueva partición como <strong>%1</strong>. Clearing flags on partition <strong>%1</strong>. - + Borrar indicadores en la partición <strong>%1</strong>. Clearing flags on %1MB <strong>%2</strong> partition. - + Borrar indicadores en la partición %1MB <strong>%2</strong>. Clearing flags on new partition. - + Borrar indicadores en la nueva partición. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + Establecer indicadores <strong>%2</strong> en la partición <strong>%1</strong>. Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + Establecer indicadores <strong>%3</strong> en partición %1MB <strong>%2</strong> Setting flags <strong>%1</strong> on new partition. - + Establecer indicadores <strong>%1</strong> en nueva partición. The installer failed to set flags on partition %1. - + El instalador no pudo establecer indicadores en la partición% 1. @@ -2275,12 +2276,12 @@ Output: Cannot disable root account. - + No se puede deshabilitar la cuenta root. passwd terminated with error code %1. - + Contraseña terminada con un error de código %1. @@ -2336,7 +2337,7 @@ Output: Shell Processes Job - + Trabajo de procesos Shell @@ -2345,7 +2346,7 @@ Output: %L1 / %L2 slide counter, %1 of %2 (numeric) - + %L1 / %L2 @@ -2369,22 +2370,22 @@ Output: Installation feedback - + Retroalimentacion de la instalación Sending installation feedback. - + Envío de retroalimentación de instalación. Internal error in install-tracking. - + Error interno en el seguimiento de instalación. HTTP request timed out. - + Tiempo de espera en la solicitud HTTP agotado. @@ -2392,28 +2393,28 @@ Output: Machine feedback - + Retroalimentación de la maquina Configuring machine feedback. - + Configurando la retroalimentación de la maquina. Error in machine feedback configuration. - + Error en la configuración de retroalimentación de la máquina. Could not configure machine feedback correctly, script error %1. - + No se pudo configurar correctamente la retroalimentación de la máquina, error de script% 1. Could not configure machine feedback correctly, Calamares error %1. - + No se pudo configurar la retroalimentación de la máquina correctamente, Calamares error% 1. @@ -2426,51 +2427,51 @@ Output: Placeholder - + Marcador de posición <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Al seleccionar esto, usted no enviará <span style=" font-weight:600;">ninguna información</span> acerca de su instalacion.</p></body></html> TextLabel - + Etiqueta de texto ... - + ... <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Haga clic aquí para más información acerca de comentarios del usuario</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - + El seguimiento de instalación ayuda a% 1 a ver cuántos usuarios tienen, qué hardware instalan% 1 y (con las dos últimas opciones a continuación), obtener información continua sobre las aplicaciones preferidas. Para ver qué se enviará, haga clic en el ícono de ayuda al lado de cada área. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - + Al seleccionar esto usted enviará información acerca de su instalación y hardware. Esta informacion será <b>enviada unicamente una vez</b> después de terminada la instalación. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + Al seleccionar esto usted enviará información <b>periodicamente</b> acerca de su instalación, hardware y aplicaciones a %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + Al seleccionar esto usted enviará información <b>regularmente</b> acerca de su instalación, hardware y patrones de uso de aplicaciones a %1. @@ -2478,7 +2479,7 @@ Output: Feedback - + Retroalimentación @@ -2563,7 +2564,7 @@ Output: <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Bienvenido al instalador Calamares para %1.</h1> @@ -2573,7 +2574,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>por %3</strong><br/><br/>Derechos de autor 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt; <br/> Derechos de autor 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/> Gracias a Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg y al <a href="https://www.transifex.com/calamares/calamares/">equipo de traductores Calamares</a>. <br/><br/> Desarrollo de <a href="https://calamares.io/">Calamares</a> patrocinado por <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. diff --git a/lang/calamares_et.ts b/lang/calamares_et.ts index 871f447da..8fcf5f20e 100644 --- a/lang/calamares_et.ts +++ b/lang/calamares_et.ts @@ -9,12 +9,12 @@ This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - See süsteem käivitati <strong>EFI</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust EFI keskkonnast, peab see installija paigaldama käivituslaaduri rakenduse, näiteks <strong>GRUB</strong> või <strong>systemd-boot</strong> sinu <strong>EFI süsteemipartitsioonile</strong>. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma. + See süsteem käivitati <strong>EFI</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust EFI keskkonnast, peab see paigaldaja paigaldama käivituslaaduri rakenduse, näiteks <strong>GRUB</strong> või <strong>systemd-boot</strong> sinu <strong>EFI süsteemipartitsioonile</strong>. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - See süsteem käivitati <strong>BIOS</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust BIOS keskkonnast, peab see installija paigaldama käivituslaaduri, näiteks <strong>GRUB</strong>, kas mõne partitsiooni algusse või <strong>Master Boot Record</strong>'i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama. + See süsteem käivitati <strong>BIOS</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust BIOS keskkonnast, peab see paigaldaja paigaldama käivituslaaduri, näiteks <strong>GRUB</strong>, kas mõne partitsiooni algusse või <strong>Master Boot Record</strong>'i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama. @@ -37,7 +37,7 @@ Do not install a boot loader - Ära installi käivituslaadurit + Ära paigalda käivituslaadurit @@ -99,7 +99,7 @@ Install - Installi + Paigalda @@ -179,24 +179,24 @@ Cancel installation without changing the system. - Tühista installimine ilma süsteemi muutmata. + Tühista paigaldamine ilma süsteemi muutmata. &Install - &Installi + &Paigalda Cancel installation? - Tühista installimine? + Tühista paigaldamine? Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - Kas sa tõesti soovid tühistada praeguse installiprotsessi? -Installija sulgub ja kõik muutused kaovad. + Kas sa tõesti soovid tühistada praeguse paigaldusprotsessi? +Paigaldaja sulgub ning kõik muutused kaovad. @@ -221,12 +221,12 @@ Installija sulgub ja kõik muutused kaovad. The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - %1 installija on tegemas muudatusi sinu kettale, et installida %2.<br/><strong>Sa ei saa neid muudatusi tagasi võtta.</strong> + %1 paigaldaja on tegemas muudatusi sinu kettale, et paigaldada %2.<br/><strong>Sa ei saa neid muudatusi tagasi võtta.</strong> &Install now - &Installi kohe + &Paigalda kohe @@ -241,7 +241,7 @@ Installija sulgub ja kõik muutused kaovad. The installation is complete. Close the installer. - Installimine on lõpetatud. Sulge installija. + Paigaldamine on lõpetatud. Sulge paigaldaja. @@ -251,7 +251,7 @@ Installija sulgub ja kõik muutused kaovad. Installation Failed - Installimine ebaõnnestus + Paigaldamine ebaõnnestus @@ -282,7 +282,7 @@ Installija sulgub ja kõik muutused kaovad. %1 Installer - %1 installija + %1 paigaldaja @@ -295,12 +295,12 @@ Installija sulgub ja kõik muutused kaovad. 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 installimiseks vajalikke minimaaltingimusi.<br/>Installimine ei saa jätkuda. <a href="#details">Detailid...</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 installing %1.<br/>Installation can continue, but some features might be disabled. - See arvuti ei rahulda mõnda %1 installimiseks soovitatud tingimust.<br/>Installimine võib jätkuda, ent mõned funktsioonid võivad olla keelatud. + See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.<br/>Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud. @@ -371,7 +371,7 @@ Installija sulgub ja kõik muutused kaovad. <strong>Select a partition to install on</strong> - <strong>Vali partitsioon, kuhu installida</strong> + <strong>Vali partitsioon, kuhu paigaldada</strong> @@ -412,7 +412,7 @@ Installija sulgub ja kõik muutused kaovad. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - <strong>Installi kõrvale</strong><br/>Installija vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1. + <strong>Paigalda kõrvale</strong><br/>Paigaldaja vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1. @@ -599,7 +599,7 @@ Installija sulgub ja kõik muutused kaovad. The installer failed to create partition on disk '%1'. - Installija ei suutnud luua partitsiooni kettale "%1". + Paigaldaja ei suutnud luua partitsiooni kettale "%1". @@ -650,7 +650,7 @@ Installija sulgub ja kõik muutused kaovad. The installer failed to create a partition table on %1. - Installija ei suutnud luua partitsioonitabelit kettale %1. + Paigaldaja ei suutnud luua partitsioonitabelit kettale %1. @@ -711,7 +711,7 @@ Installija sulgub ja kõik muutused kaovad. The installer failed to delete partition %1. - Installija ei suutnud kustutada partitsiooni %1. + Paigaldaja ei suutnud kustutada partitsiooni %1. @@ -719,7 +719,7 @@ Installija sulgub ja kõik muutused kaovad. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - <strong>Partitsioonitabeli</strong> tüüp valitud mäluseadmel.<br><br>Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.<br>See installija säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.<br>Kui pole kindel, eelista modernsetel süsteemidel GPT-d. + <strong>Partitsioonitabeli</strong> tüüp valitud mäluseadmel.<br><br>Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.<br>See paigaldaja säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.<br>Kui pole kindel, eelista modernsetel süsteemidel GPT-d. @@ -734,7 +734,7 @@ Installija sulgub ja kõik muutused kaovad. This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - See installija <strong>ei suuda tuvastada partitsioonitabelit</strong>valitud mäluseadmel.<br><br>Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.<br>See installija võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. + See paigaldaja <strong>ei suuda tuvastada partitsioonitabelit</strong>valitud mäluseadmel.<br><br>Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.<br>See paigaldaja võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. @@ -877,7 +877,7 @@ Installija sulgub ja kõik muutused kaovad. Install %1 on <strong>new</strong> %2 system partition. - Installi %1 <strong>uude</strong> %2 süsteemipartitsiooni. + Paigalda %1 <strong>uude</strong> %2 süsteemipartitsiooni. @@ -887,7 +887,7 @@ Installija sulgub ja kõik muutused kaovad. Install %2 on %3 system partition <strong>%1</strong>. - Installi %2 %3 süsteemipartitsioonile <strong>%1</strong>. + Paigalda %2 %3 süsteemipartitsioonile <strong>%1</strong>. @@ -897,7 +897,7 @@ Installija sulgub ja kõik muutused kaovad. Install boot loader on <strong>%1</strong>. - Installi käivituslaadur kohta <strong>%1</strong>. + Paigalda käivituslaadur kohta <strong>%1</strong>. @@ -915,7 +915,7 @@ Installija sulgub ja kõik muutused kaovad. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - <html><head/><body><p>Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad <span style=" font-style:italic;">Valmis</span> või sulged installija.</p></body></html> + <html><head/><body><p>Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad <span style=" font-style:italic;">Valmis</span> või sulged paigaldaja.</p></body></html> @@ -925,12 +925,12 @@ Installija sulgub ja kõik muutused kaovad. <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - <h1>Kõik on valmis.</h1><br/>%1 on installitud sinu arvutisse.<br/>Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist. + <h1>Kõik on valmis.</h1><br/>%1 on paigaldatud sinu arvutisse.<br/>Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - <h1>Installimine ebaõnnestus</h1><br/>%1 ei installitud sinu arvutisse.<br/>Veateade oli: %2. + <h1>Paigaldamine ebaõnnestus</h1><br/>%1 ei paigaldatud sinu arvutisse.<br/>Veateade oli: %2. @@ -943,12 +943,12 @@ Installija sulgub ja kõik muutused kaovad. Installation Complete - Installimine lõpetatud + Paigaldus valmis The installation of %1 is complete. - %1 installimine on lõpetatud. + %1 paigaldus on valmis. @@ -971,7 +971,7 @@ Installija sulgub ja kõik muutused kaovad. The installer failed to format partition %1 on disk '%2'. - Installija ei suutnud vormindada partitsiooni %1 kettal "%2". + Paigaldaja ei suutnud vormindada partitsiooni %1 kettal "%2". @@ -979,12 +979,12 @@ Installija sulgub ja kõik muutused kaovad. Konsole not installed - Konsole pole installitud + Konsole pole paigaldatud Please install KDE Konsole and try again! - Palun installi KDE Konsole ja proovi uuesti! + Palun paigalda KDE Konsole ja proovi uuesti! @@ -1059,7 +1059,7 @@ Installija sulgub ja kõik muutused kaovad. <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - <h1>Litsensileping</h1>See seadistusprotseduur installib omandiõigusega tarkvara, mis vastab litsensitingimustele. + <h1>Litsensileping</h1>See seadistusprotseduur paigaldab omandiõigusega tarkvara, mis vastab litsensitingimustele. @@ -1069,12 +1069,12 @@ Installija sulgub ja kõik muutused kaovad. <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 installida omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust. + <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 installita omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive. + 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. @@ -1190,12 +1190,12 @@ Installija sulgub ja kõik muutused kaovad. Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - Võrguinstall. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust) + Võrgupaigaldus. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust) Network Installation. (Disabled: Received invalid groups data) - Võrguinstall. (Keelatud: vastu võetud sobimatud grupiandmed) + Võrgupaigaldus. (Keelatud: vastu võetud sobimatud grupiandmed) @@ -1494,7 +1494,7 @@ Installija sulgub ja kõik muutused kaovad. <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - <small>Kui rohkem kui üks inimene kasutab seda arvutit, saad sa määrata mitu kontot peale installi.</small> + <small>Kui rohkem kui üks inimene kasutab seda arvutit, saad sa pärast paigaldust määrata mitu kontot.</small> @@ -1655,7 +1655,7 @@ Installija sulgub ja kõik muutused kaovad. Install boot &loader on: - Installi käivituslaadur kohta: + Paigalda käivituslaadur kohta: @@ -1688,12 +1688,12 @@ Installija sulgub ja kõik muutused kaovad. Install %1 <strong>alongside</strong> another operating system. - Installi %1 praeguse operatsioonisüsteemi <strong>kõrvale</strong> + Paigalda %1 praeguse operatsioonisüsteemi <strong>kõrvale</strong> <strong>Erase</strong> disk and install %1. - <strong>Tühjenda</strong> ketas ja installi %1. + <strong>Tühjenda</strong> ketas ja paigalda %1. @@ -1708,12 +1708,12 @@ Installija sulgub ja kõik muutused kaovad. Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - Installi %1 teise operatsioonisüsteemi <strong>kõrvale</strong> kettal <strong>%2</strong> (%3). + Paigalda %1 teise operatsioonisüsteemi <strong>kõrvale</strong> kettal <strong>%2</strong> (%3). <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - <strong>Tühjenda</strong> ketas <strong>%2</strong> (%3) ja installi %1. + <strong>Tühjenda</strong> ketas <strong>%2</strong> (%3) ja paigalda %1. @@ -1800,7 +1800,7 @@ Installija sulgub ja kõik muutused kaovad. Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. - Palun vali KDE Plasma Desktop'ile välimus-ja-tunnetus. Sa võid selle sammu ka vahele jätta ja seadistada välimust-ja-tunnetust siis, kui süsteem on installitud. Välimuse-ja-tunnetuse valikule klõpsates näed selle reaalajas eelvaadet. + Palun vali KDE Plasma töölauale välimus-ja-tunnetus. Sa võid selle sammu ka vahele jätta ja seadistada välimust-ja-tunnetust siis, kui süsteem on paigaldatud. Välimuse-ja-tunnetuse valikule klõpsates näed selle reaalajas eelvaadet. @@ -1947,7 +1947,7 @@ Väljund: Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - Vali, kuhu soovid %1 installida.<br/><font color="red">Hoiatus: </font>see kustutab valitud partitsioonilt kõik failid. + Vali, kuhu soovid %1 paigaldada.<br/><font color="red">Hoiatus: </font>see kustutab valitud partitsioonilt kõik failid. @@ -1957,17 +1957,17 @@ Väljund: %1 cannot be installed on empty space. Please select an existing partition. - %1 ei saa installida tühjale kohale. Palun vali olemasolev partitsioon. + %1 ei saa paigldada tühjale kohale. Palun vali olemasolev partitsioon. %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - %1 ei saa installida laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon. + %1 ei saa paigaldada laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon. %1 cannot be installed on this partition. - %1 ei saa installida sellele partitsioonidel. + %1 ei saa sellele partitsioonile paigaldada. @@ -1999,7 +1999,7 @@ Väljund: <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. - <strong>%3</strong><br/><br/>%1 installitakse partitsioonile %2.<br/><font color="red">Hoiatus: </font>kõik andmed partitsioonil %2 kaovad. + <strong>%3</strong><br/><br/>%1 paigaldatakse partitsioonile %2.<br/><font color="red">Hoiatus: </font>kõik andmed partitsioonil %2 kaovad. @@ -2062,12 +2062,12 @@ Väljund: The installer is not running with administrator rights. - Installija ei tööta administraatoriõigustega. + Paigaldaja pole käivitatud administraatoriõigustega. The screen is too small to display the installer. - Ekraan on liiga väike installija kuvamiseks. + Ekraan on paigaldaja kuvamiseks liiga väike. @@ -2090,7 +2090,7 @@ Väljund: The installer failed to resize partition %1 on disk '%2'. - Installijal ebaõnnestus partitsiooni %1 suuruse muutmine kettal "%2". + Paigaldajal ebaõnnestus partitsiooni %1 suuruse muutmine kettal "%2". @@ -2246,7 +2246,7 @@ Väljund: The installer failed to set flags on partition %1. - Installija ei suutnud silte määrata partitsioonile %1. + Paigaldaja ei suutnud partitsioonile %1 silte määrata. @@ -2352,7 +2352,7 @@ Väljund: This is an overview of what will happen once you start the install procedure. - See on ülevaade sellest mis juhtub, kui alustad installiprotseduuri. + See on ülevaade sellest mis juhtub, kui alustad paigaldusprotseduuri. @@ -2368,17 +2368,17 @@ Väljund: Installation feedback - Installimise tagasiside + Paigalduse tagasiside Sending installation feedback. - Saadan installimise tagasisidet. + Saadan paigalduse tagasisidet. Internal error in install-tracking. - Installi jälitamisel esines sisemine viga. + Paigaldate jälitamisel esines sisemine viga. @@ -2430,7 +2430,7 @@ Väljund: <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Seda valides <span style=" font-weight:600;">ei saada sa üldse</span> teavet oma installi kohta.</p></body></html> + <html><head/><body><p>Seda valides <span style=" font-weight:600;">ei saada sa üldse</span> teavet oma paigalduse kohta.</p></body></html> @@ -2454,22 +2454,22 @@ Väljund: Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - Installijälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 installivad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval. + Paigalduse jälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 paigaldavad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - Seda valides saadad sa teavet oma installi ja riistvara kohta. See teave <b>saadetakse ainult korra</b>peale installi lõppu. + Seda valides saadad sa teavet oma paigalduse ja riistvara kohta. See teave <b>saadetakse ainult korra</b>peale paigalduse lõppu. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Seda valides saadad sa %1-le <b>perioodiliselt</b> infot oma installi, riistvara ja rakenduste kohta. + Seda valides saadad sa %1-le <b>perioodiliselt</b> infot oma paigalduse, riistvara ja rakenduste kohta. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Seda valides saadad sa %1-le <b>regulaarselt</b> infot oma installi, riistvara, rakenduste ja kasutusharjumuste kohta. + Seda valides saadad sa %1-le <b>regulaarselt</b> infot oma paigalduse, riistvara, rakenduste ja kasutusharjumuste kohta. @@ -2557,17 +2557,17 @@ Väljund: <h1>Welcome to the %1 installer.</h1> - <h1>Tere tulemast %1 installijasse.</h1> + <h1>Tere tulemast %1 paigaldajasse.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Tere tulemast Calamares'i installijasse %1 jaoks.</h1> + <h1>Tere tulemast Calamares'i paigaldajasse %1 jaoks.</h1> About %1 installer - Teave %1 installija kohta + Teave %1 paigaldaja kohta From e6dc7473dae929c9bf88e66c3e7156e4c11d02dc Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 14 Jun 2018 04:47:51 -0400 Subject: [PATCH 44/68] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/calamares.desktop b/calamares.desktop index f8be5d1f3..c1c8d44e2 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -47,9 +47,9 @@ GenericName[es]=Instalador del Sistema Comment[es]=Calamares — Instalador del Sistema Name[es]=Instalar Sistema Icon[et]=calamares -GenericName[et]=Süsteemi installija -Comment[et]=Calamares — Süsteemi installija -Name[et]=Installi süsteem +GenericName[et]=Süsteemipaigaldaja +Comment[et]=Calamares — süsteemipaigaldaja +Name[et]=Paigalda süsteem Name[eu]=Sistema instalatu Name[es_PR]=Instalar el sistema Icon[fr]=calamares @@ -156,6 +156,9 @@ Icon[eo]=calamares GenericName[eo]=Sistema Instalilo Comment[eo]=Calamares — Sistema Instalilo Name[eo]=Instali Sistemo +Icon[es_MX]=calamares +GenericName[es_MX]=Instalador del sistema +Comment[es_MX]=Calamares - Instalador del sistema Name[es_MX]=Instalar el Sistema Icon[pt_PT]=calamares GenericName[pt_PT]=Instalador de Sistema From 0ea3d85ab0313fcc46180ddeb4f9b3537cbe4200 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 14 Jun 2018 04:47:53 -0400 Subject: [PATCH 45/68] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/es_MX/LC_MESSAGES/dummypythonqt.mo | Bin 436 -> 1017 bytes .../lang/es_MX/LC_MESSAGES/dummypythonqt.po | 15 ++++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo index 73c58bb4a405e077a87de0ffb9937f1c23637c35..bb3f4ea3f029e4c94ce4ae387f07af9a8114fba7 100644 GIT binary patch literal 1017 zcmZuv&2G~`5H?Ui7;&HnxB!~o62aO|)St*Dh%|L+plL#yM!*F&&L-Yq?^@n<(@^mS zT#>l)09+9qxWIw8;2Ah`V(hkw1YP;tZ)bL9zV+_>T3mQ<;JA#qh3F!#BHkgg@da@W z@fA@({6t(q{6^eF{6XA6ES@urRpcV_H^eK%b+qqXFpM>12YC@WK+bfIkZ&V@K;A(9 zjEpJyIFB=$#=@~Vn=j!iJLkpBQv<;!@N|dvS!ki9G}Wnsh$%%!42Cj+%`}Rp(4Oi* zil-VL%f4mQL+-!Es3qf{-5zI?Jzp4ZuHw06x7i)EroQ;qn5Y@{Pay3z%+-RhEh!l=e1 zvPm^_q3o0@#91Nb3OLK|${KN&9R~wRhaK>&_(|Mzuht>W7TK)9cFS!x?!IX4dgcyQ znsgH?R7kZbOo|WLVOGKRX-FfQFlB4ZRd(5NR!cThFPqQoqS$@Y3vIMB4r13)@b_zn@1=*#@A+8 zQPV+odkF;=0{(EHj^(`NhTPZO=h8C1f83^Tz{l`2C0F8$?=Rqyym(FmbwNe T3I-NdhGvuZF&a!ZWO@q#z1|Dt diff --git a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po index 22412c347..8ccd80311 100644 --- a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-04 08:16-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: guillermo pacheco , 2018\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +20,24 @@ msgstr "" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "¡Haz clic en mí!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "Una nueva QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "Vision del PythonQt ficticio" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "Trabajo del PythonQt ficticio" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "Este es el Trabajo PythonQt ficticio. El trabajo ficticio dice: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "Un mensaje de estado para el trabajo PythonQt ficticio." From 781bdcc1a42d3be808c801603455a32133d49442 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 14 Jun 2018 04:47:53 -0400 Subject: [PATCH 46/68] i18n: [python] Automatic merge of Transifex translations --- lang/python/es_MX/LC_MESSAGES/python.mo | Bin 436 -> 1199 bytes lang/python/es_MX/LC_MESSAGES/python.po | 21 +++++++++++---------- lang/python/et/LC_MESSAGES/python.mo | Bin 1113 -> 1123 bytes lang/python/et/LC_MESSAGES/python.po | 10 +++++----- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/lang/python/es_MX/LC_MESSAGES/python.mo b/lang/python/es_MX/LC_MESSAGES/python.mo index 3b6df235cfd484222c6a19c026a0dc5175d2f352..b8b639ba04f8d2b6e209d6dde77e4c334b54a960 100644 GIT binary patch literal 1199 zcmZWo%Wl&^6g5zwL}Eb&f(4*qQIx1m?1UB~mmor$mI%^BX<7jiLQ{K^OtEKN&$w-b z_=j%#7l;jO76^%7V29uXSn&fK=LvMAqvN^0_uQH5A34;03S`cECsAE8x%IPrx_e8urI$EbA)x1Nb)hD|in43tR+S zGnSPD-36!nSKyoABQPYaS>QB~uJp|3fwSpmw2(Gfkh9LEPpe57_DR$?JtfJm+R6VL z(S}Fl?K^9oOCB@BNyxmOkemuXZ`GtWEC@)%yf>`N^&}!>mng}{FaC+oXJr!R{P8;! zHDl#*t<$2h63NbIJ(Wm_NJj*m=sxZf4qNVW z&(NArw|T6Ek}hdhR-RVYt7N;{+N?D;GA$md*wDJ}3ZFhsx|+6?OES$yo36y185Ge~ zjKn2Hr%)ppTw?iFmVU)P`8xlFxQ zuTCda$UB)8B@LH2a6iJ$4L>w?6fhx|iPvMX=BB*WUZbUHUfQk0V_KD-^6}+dQrZz_ za%7hbdS#kH60?A=sW{Xwk<5uQ43Tr#xt tpk%D`m!0hsX6FBk58XTnkJQIH_&K=_@da>3EmAKtonC^)_$l`>fIo$eTvz}A delta 69 zcmZ3_xrN!{o)F7a1|VPrVi_P-0b*t#)&XJ=umIvJprj>`2C0F8$=4YBC$C_73jh$u B2(bVF diff --git a/lang/python/es_MX/LC_MESSAGES/python.po b/lang/python/es_MX/LC_MESSAGES/python.po index 386952128..45fc72c65 100644 --- a/lang/python/es_MX/LC_MESSAGES/python.po +++ b/lang/python/es_MX/LC_MESSAGES/python.po @@ -10,6 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: guillermo pacheco , 2018\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,39 +20,39 @@ msgstr "" #: src/modules/umount/main.py:40 msgid "Unmount file systems." -msgstr "" +msgstr "Desmontar sistemas de archivo." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "Trabajo python ficticio." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "" +msgstr "Paso python ficticio {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "" +msgstr "Generar identificación de la maquina." #: src/modules/packages/main.py:61 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Procesando paquetes (%(count)d/%(total)d)" #: src/modules/packages/main.py:63 src/modules/packages/main.py:73 msgid "Install packages." -msgstr "" +msgstr "Instalar paquetes." #: src/modules/packages/main.py:66 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Instalando un paquete." +msgstr[1] "Instalando%(num)d paquetes." #: src/modules/packages/main.py:69 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Removiendo un paquete." +msgstr[1] "Removiendo %(num)dpaquetes." diff --git a/lang/python/et/LC_MESSAGES/python.mo b/lang/python/et/LC_MESSAGES/python.mo index 89b3804b58ec00152f1f59824b47e745391b9d6c..2fea8bab0fa4fa571dd762e4ebb2a478a6bbccfc 100644 GIT binary patch delta 133 zcmcb~@t9*mi>e?41H)2g1_nbQy&XvF0O^-NS|3P@u`n>m0BN_4EB`P#1|(*tC+4Ii zDikDUre!1#FzhxcTpf<=)9RWy;@Oj*F*{mh>M^*c<|gK(B<3j~O9I6` g5);!i719zjb25t$?_W07oA)$N&HU diff --git a/lang/python/et/LC_MESSAGES/python.po b/lang/python/et/LC_MESSAGES/python.po index eeccccc30..ccd9b1b7d 100644 --- a/lang/python/et/LC_MESSAGES/python.po +++ b/lang/python/et/LC_MESSAGES/python.po @@ -41,18 +41,18 @@ msgstr "Pakkide töötlemine (%(count)d / %(total)d)" #: src/modules/packages/main.py:63 src/modules/packages/main.py:73 msgid "Install packages." -msgstr "Installi pakid." +msgstr "Paigalda paketid." #: src/modules/packages/main.py:66 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "Installin ühe paki." -msgstr[1] "Installin %(num)d pakki." +msgstr[0] "Paigaldan ühe paketi." +msgstr[1] "Paigaldan %(num)d paketti." #: src/modules/packages/main.py:69 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "Eemaldan ühe paki." -msgstr[1] "Eemaldan %(num)d pakki." +msgstr[0] "Eemaldan ühe paketi." +msgstr[1] "Eemaldan %(num)d paketti." From ef897f59f5156c327c505b65cc2d63e473e2fdd4 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 14 Jun 2018 05:01:20 -0400 Subject: [PATCH 47/68] i18n: Add Korean (ko) language translations Since this is a new language, it is currently 0% translated. That is why it goes into _tx_bad. It will move to one of the other categories once some translation has happened. Add the (still empty) Transifex files already. --- CMakeLists.txt | 2 +- lang/calamares_ko.ts | 2587 +++++++++++++++++ lang/python/ko/LC_MESSAGES/python.mo | Bin 0 -> 413 bytes lang/python/ko/LC_MESSAGES/python.po | 55 + .../lang/ko/LC_MESSAGES/dummypythonqt.mo | Bin 0 -> 413 bytes .../lang/ko/LC_MESSAGES/dummypythonqt.po | 42 + 6 files changed, 2685 insertions(+), 1 deletion(-) create mode 100644 lang/calamares_ko.ts create mode 100644 lang/python/ko/LC_MESSAGES/python.mo create mode 100644 lang/python/ko/LC_MESSAGES/python.po create mode 100644 src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo create mode 100644 src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.po diff --git a/CMakeLists.txt b/CMakeLists.txt index c33ad8e6f..1627ff32f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,7 @@ set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ ) set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk ) set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb sl sr@latin mr es_PR kk kn et be ) -set( _tx_bad uz lo ur gu fr_CH fa eo ) +set( _tx_bad uz lo ur gu fr_CH fa eo ko ) ### Required versions diff --git a/lang/calamares_ko.ts b/lang/calamares_ko.ts new file mode 100644 index 000000000..73b81b498 --- /dev/null +++ b/lang/calamares_ko.ts @@ -0,0 +1,2587 @@ + + + BootInfoWidget + + + The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. + + + + + This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. + + + + + This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. + + + + + BootLoaderModel + + + Master Boot Record of %1 + + + + + Boot Partition + + + + + System Partition + + + + + Do not install a boot loader + + + + + %1 (%2) + + + + + Calamares::DebugWindow + + + Form + + + + + GlobalStorage + + + + + JobQueue + + + + + Modules + + + + + Type: + + + + + + none + + + + + Interface: + + + + + Tools + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Install + + + + + Calamares::JobThread + + + Done + + + + + Calamares::ProcessJob + + + Run command %1 %2 + + + + + Running command %1 %2 + + + + + Calamares::PythonJob + + + Running %1 operation. + + + + + Bad working directory path + + + + + Working directory %1 for python job %2 is not readable. + + + + + Bad main script file + + + + + Main script file %1 for python job %2 is not readable. + + + + + Boost.Python error in job "%1". + + + + + Calamares::ViewManager + + + &Back + + + + + + &Next + + + + + + &Cancel + + + + + + Cancel installation without changing the system. + + + + + &Install + + + + + Cancel installation? + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + &Yes + + + + + &No + + + + + &Close + + + + + Continue with setup? + + + + + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + &Install now + + + + + Go &back + + + + + &Done + + + + + The installation is complete. Close the installer. + + + + + Error + + + + + Installation Failed + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresWindow + + + %1 Installer + + + + + Show debug information + + + + + CheckerWidget + + + 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 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 + + + + + ChoicePage + + + Form + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. + + + + + Boot loader location: + + + + + %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + <strong>Select a partition to install on</strong> + + + + + An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + The EFI system partition at %1 will be used for starting %2. + + + + + EFI system partition: + + + + + This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + + + + <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. + + + + + This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + + + + <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. + + + + + + + + <strong>Replace a partition</strong><br/>Replaces a partition with %1. + + + + + This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + ClearMountsJob + + + Clear mounts for partitioning operations on %1 + + + + + Clearing mounts for partitioning operations on %1. + + + + + Cleared all mounts for %1 + + + + + ClearTempMountsJob + + + Clear all temporary mounts. + + + + + Clearing all temporary mounts. + + + + + Cannot get list of temporary mounts. + + + + + Cleared all temporary mounts. + + + + + CommandList + + + + Could not run command. + + + + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + Flags: + + + + + &Mount Point: + + + + + Si&ze: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. + + + + + Creating new %1 partition on %2. + + + + + The installer failed to create partition on disk '%1'. + + + + + CreatePartitionTableDialog + + + Create Partition Table + + + + + Creating a new partition table will delete all existing data on the disk. + + + + + What kind of partition table do you want to create? + + + + + Master Boot Record (MBR) + + + + + GUID Partition Table (GPT) + + + + + CreatePartitionTableJob + + + Create new %1 partition table on %2. + + + + + Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). + + + + + Creating new %1 partition table on %2. + + + + + The installer failed to create a partition table on %1. + + + + + CreateUserJob + + + Create user %1 + + + + + Create user <strong>%1</strong>. + + + + + Creating user %1. + + + + + Sudoers dir is not writable. + + + + + Cannot create sudoers file for writing. + + + + + Cannot chmod sudoers file. + + + + + Cannot open groups file for reading. + + + + + DeletePartitionJob + + + Delete partition %1. + + + + + Delete partition <strong>%1</strong>. + + + + + Deleting partition %1. + + + + + The installer failed to delete partition %1. + + + + + DeviceInfoWidget + + + The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. + + + + + This device has a <strong>%1</strong> partition table. + + + + + This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. + + + + + This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. + + + + + <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. + + + + + <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. + + + + + DeviceModel + + + %1 - %2 (%3) + + + + + DracutLuksCfgJob + + + Write LUKS configuration for Dracut to %1 + + + + + Skip writing LUKS configuration for Dracut: "/" partition is not encrypted + + + + + Failed to open %1 + + + + + DummyCppJob + + + Dummy C++ Job + + + + + EditExistingPartitionDialog + + + Edit Existing Partition + + + + + Content: + + + + + &Keep + + + + + Format + + + + + Warning: Formatting the partition will erase all existing data. + + + + + &Mount Point: + + + + + Si&ze: + + + + + MiB + + + + + Fi&le System: + + + + + Flags: + + + + + Mountpoint already in use. Please select another one. + + + + + EncryptWidget + + + Form + + + + + En&crypt system + + + + + Passphrase + + + + + Confirm passphrase + + + + + Please enter the same passphrase in both boxes. + + + + + FillGlobalStorageJob + + + Set partition information + + + + + Install %1 on <strong>new</strong> %2 system partition. + + + + + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. + + + + + Install %2 on %3 system partition <strong>%1</strong>. + + + + + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. + + + + + Install boot loader on <strong>%1</strong>. + + + + + Setting up mount points. + + + + + FinishedPage + + + Form + + + + + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Installation Complete + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MB) on %4. + + + + + Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. + + + + + Formatting partition %1 with file system %2. + + + + + The installer failed to format partition %1 on disk '%2'. + + + + + InteractiveTerminalPage + + + Konsole not installed + + + + + Please install KDE Konsole and try again! + + + + + Executing script: &nbsp;<code>%1</code> + + + + + InteractiveTerminalViewStep + + + Script + + + + + KeyboardPage + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + KeyboardViewStep + + + Keyboard + + + + + LCLocaleDialog + + + System locale setting + + + + + The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>. + + + + + &Cancel + + + + + &OK + + + + + LicensePage + + + Form + + + + + I accept the terms and conditions above. + + + + + <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. + + + + + <strong>%1 driver</strong><br/>by %2 + %1 is an untranslatable product name, example: Creative Audigy driver + + + + + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> + %1 is usually a vendor name, example: Nvidia graphics driver + + + + + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 package</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1</strong><br/><font color="Grey">by %2</font> + + + + + <a href="%1">view license agreement</a> + + + + + LicenseViewStep + + + License + + + + + LocalePage + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + Set timezone to %1/%2.<br/> + + + + + %1 (%2) + Language (Country) + + + + + LocaleViewStep + + + Loading location data... + + + + + Location + + + + + NetInstallPage + + + Name + + + + + Description + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + NetInstallViewStep + + + Package selection + + + + + PWQ + + + Password is too short + + + + + Password is too long + + + + + Password is too weak + + + + + Memory allocation error when setting '%1' + + + + + Memory allocation error + + + + + The password is the same as the old one + + + + + The password is a palindrome + + + + + The password differs with case changes only + + + + + The password is too similar to the old one + + + + + The password contains the user name in some form + + + + + The password contains words from the real name of the user in some form + + + + + The password contains forbidden words in some form + + + + + The password contains less than %1 digits + + + + + The password contains too few digits + + + + + The password contains less than %1 uppercase letters + + + + + The password contains too few uppercase letters + + + + + The password contains less than %1 lowercase letters + + + + + The password contains too few lowercase letters + + + + + The password contains less than %1 non-alphanumeric characters + + + + + The password contains too few non-alphanumeric characters + + + + + The password is shorter than %1 characters + + + + + The password is too short + + + + + The password is just rotated old one + + + + + The password contains less than %1 character classes + + + + + The password does not contain enough character classes + + + + + The password contains more than %1 same characters consecutively + + + + + The password contains too many same characters consecutively + + + + + The password contains more than %1 characters of the same class consecutively + + + + + The password contains too many characters of the same class consecutively + + + + + The password contains monotonic sequence longer than %1 characters + + + + + The password contains too long of a monotonic character sequence + + + + + No password supplied + + + + + Cannot obtain random numbers from the RNG device + + + + + Password generation failed - required entropy too low for settings + + + + + The password fails the dictionary check - %1 + + + + + The password fails the dictionary check + + + + + Unknown setting - %1 + + + + + Unknown setting + + + + + Bad integer value of setting - %1 + + + + + Bad integer value + + + + + Setting %1 is not of integer type + + + + + Setting is not of integer type + + + + + Setting %1 is not of string type + + + + + Setting is not of string type + + + + + Opening the configuration file failed + + + + + The configuration file is malformed + + + + + Fatal failure + + + + + Unknown error + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + What name do you want to use to log in? + + + + + + + font-weight: normal + + + + + <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> + + + + + Choose a password to keep your account safe. + + + + + <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> + + + + + What is the name of this computer? + + + + + <small>This name will be used if you make the computer visible to others on a network.</small> + + + + + Log in automatically without asking for the password. + + + + + Use the same password for the administrator account. + + + + + Choose a password for the administrator account. + + + + + <small>Enter the same password twice, so that it can be checked for typing errors.</small> + + + + + PartitionLabelsView + + + Root + + + + + Home + + + + + Boot + + + + + EFI system + + + + + Swap + + + + + New partition for %1 + + + + + New partition + + + + + %1 %2 + + + + + PartitionModel + + + + Free Space + + + + + + New partition + + + + + Name + + + + + File System + + + + + Mount Point + + + + + Size + + + + + PartitionPage + + + Form + + + + + Storage de&vice: + + + + + &Revert All Changes + + + + + New Partition &Table + + + + + &Create + + + + + &Edit + + + + + &Delete + + + + + Install boot &loader on: + + + + + Are you sure you want to create a new partition table on %1? + + + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + + + + PartitionViewStep + + + Gathering system information... + + + + + Partitions + + + + + Install %1 <strong>alongside</strong> another operating system. + + + + + <strong>Erase</strong> disk and install %1. + + + + + <strong>Replace</strong> a partition with %1. + + + + + <strong>Manual</strong> partitioning. + + + + + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). + + + + + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. + + + + + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. + + + + + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). + + + + + Disk <strong>%1</strong> (%2) + + + + + Current: + + + + + After: + + + + + No EFI system partition configured + + + + + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. + + + + + EFI system partition flag not set + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. + + + + + Boot partition not encrypted + + + + + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + Placeholder + + + + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + PlasmaLnfViewStep + + + Look-and-Feel + + + + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + + + ProcessResult + + + +There was no output from the command. + + + + + +Output: + + + + + + External command crashed. + + + + + Command <i>%1</i> crashed. + + + + + External command failed to start. + + + + + Command <i>%1</i> failed to start. + + + + + Internal error when starting command. + + + + + Bad parameters for process job call. + + + + + External command failed to finish. + + + + + Command <i>%1</i> failed to finish in %2 seconds. + + + + + External command finished with errors. + + + + + Command <i>%1</i> finished with exit code %2. + + + + + QObject + + + Default Keyboard Model + + + + + + Default + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Unpartitioned space or unknown partition table + + + + + ReplaceWidget + + + Form + + + + + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. + + + + + The selected item does not appear to be a valid partition. + + + + + %1 cannot be installed on empty space. Please select an existing partition. + + + + + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. + + + + + %1 cannot be installed on this partition. + + + + + Data partition (%1) + + + + + Unknown system partition (%1) + + + + + %1 system partition (%2) + + + + + <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. + + + + + <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + + + <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. + + + + + The EFI system partition at %1 will be used for starting %2. + + + + + EFI system partition: + + + + + RequirementsChecker + + + Gathering system information... + + + + + has at least %1 GB available drive space + + + + + There is not enough drive space. At least %1 GB is required. + + + + + has at least %1 GB working memory + + + + + The system does not have enough working memory. At least %1 GB is required. + + + + + is plugged in to a power source + + + + + The system is not plugged in to a power source. + + + + + is connected to the Internet + + + + + The system is not connected to the Internet. + + + + + The installer is not running with administrator rights. + + + + + The screen is too small to display the installer. + + + + + ResizePartitionJob + + + Resize partition %1. + + + + + Resize <strong>%2MB</strong> partition <strong>%1</strong> to <strong>%3MB</strong>. + + + + + Resizing %2MB partition %1 to %3MB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ScanningDialog + + + Scanning storage devices... + + + + + Partitioning + + + + + SetHostNameJob + + + Set hostname %1 + + + + + Set hostname <strong>%1</strong>. + + + + + Setting hostname %1. + + + + + + Internal Error + + + + + + Cannot write hostname to target system + + + + + SetKeyboardLayoutJob + + + Set keyboard model to %1, layout to %2-%3 + + + + + Failed to write keyboard configuration for the virtual console. + + + + + + + Failed to write to %1 + + + + + Failed to write keyboard configuration for X11. + + + + + Failed to write keyboard configuration to existing /etc/default directory. + + + + + SetPartFlagsJob + + + Set flags on partition %1. + + + + + Set flags on %1MB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. + + + + + Flag new partition as <strong>%1</strong>. + + + + + Clearing flags on partition <strong>%1</strong>. + + + + + Clearing flags on %1MB <strong>%2</strong> partition. + + + + + Clearing flags on new partition. + + + + + Setting flags <strong>%2</strong> on partition <strong>%1</strong>. + + + + + Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. + + + + + Setting flags <strong>%1</strong> on new partition. + + + + + The installer failed to set flags on partition %1. + + + + + SetPasswordJob + + + Set password for user %1 + + + + + Setting password for user %1. + + + + + Bad destination system path. + + + + + rootMountPoint is %1 + + + + + Cannot disable root account. + + + + + passwd terminated with error code %1. + + + + + Cannot set password for user %1. + + + + + usermod terminated with error code %1. + + + + + SetTimezoneJob + + + Set timezone to %1/%2 + + + + + Cannot access selected timezone path. + + + + + Bad path: %1 + + + + + Cannot set timezone. + + + + + Link creation failed, target: %1; link name: %2 + + + + + Cannot set timezone, + + + + + Cannot open /etc/timezone for writing + + + + + ShellProcessJob + + + Shell Processes Job + + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + + + SummaryPage + + + This is an overview of what will happen once you start the install procedure. + + + + + SummaryViewStep + + + Summary + + + + + TrackingInstallJob + + + Installation feedback + + + + + Sending installation feedback. + + + + + Internal error in install-tracking. + + + + + HTTP request timed out. + + + + + TrackingMachineNeonJob + + + Machine feedback + + + + + Configuring machine feedback. + + + + + + Error in machine feedback configuration. + + + + + Could not configure machine feedback correctly, script error %1. + + + + + Could not configure machine feedback correctly, Calamares error %1. + + + + + TrackingPage + + + Form + + + + + Placeholder + + + + + <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + + + + + + + TextLabel + + + + + + + ... + + + + + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> + + + + + Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. + + + + + By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. + + + + + By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. + + + + + By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. + + + + + TrackingViewStep + + + Feedback + + + + + UsersPage + + + Your username is too long. + + + + + Your username contains invalid characters. Only lowercase letters and numbers are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Your hostname contains invalid characters. Only letters, numbers and dashes are allowed. + + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + WelcomePage + + + Form + + + + + &Language: + + + + + &Release notes + + + + + &Known issues + + + + + &Support + + + + + &About + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + About %1 installer + + + + + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. + + + + + %1 support + + + + + WelcomeViewStep + + + Welcome + + + + \ No newline at end of file diff --git a/lang/python/ko/LC_MESSAGES/python.mo b/lang/python/ko/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..9dfa007bded575a5934de04c1ed37c5ebb18a03d GIT binary patch literal 413 zcmYL^K~KUk6vs7s+R?Lz9z1CD(T;%55)KoFE;zQ#Nuswp%9xCHX^Y?o@$30n?9{+N z`Q^2F|Nraj_sQ|sfz_eq)N*DyvRqjjd6wKZZ*6TnJ0(iK^V~ol;u;&9(6~*=wTqV$UpP@11^XYlE#eHMFkBeOK5M(F;ah|2ij|^= z@&!|xoBne)0&nkYo|, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:97 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/machineid/main.py:35 +msgid "Generate machine-id." +msgstr "" + +#: src/modules/packages/main.py:61 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:63 src/modules/packages/main.py:73 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" + +#: src/modules/packages/main.py:69 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" diff --git a/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 0000000000000000000000000000000000000000..9dfa007bded575a5934de04c1ed37c5ebb18a03d GIT binary patch literal 413 zcmYL^K~KUk6vs7s+R?Lz9z1CD(T;%55)KoFE;zQ#Nuswp%9xCHX^Y?o@$30n?9{+N z`Q^2F|Nraj_sQ|sfz_eq)N*DyvRqjjd6wKZZ*6TnJ0(iK^V~ol;u;&9(6~*=wTqV$UpP@11^XYlE#eHMFkBeOK5M(F;ah|2ij|^= z@&!|xoBne)0&nkYo|, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/modules/dummypythonqt/main.py:84 +msgid "Click me!" +msgstr "" + +#: src/modules/dummypythonqt/main.py:94 +msgid "A new QLabel." +msgstr "" + +#: src/modules/dummypythonqt/main.py:97 +msgid "Dummy PythonQt ViewStep" +msgstr "" + +#: src/modules/dummypythonqt/main.py:183 +msgid "The Dummy PythonQt Job" +msgstr "" + +#: src/modules/dummypythonqt/main.py:186 +msgid "This is the Dummy PythonQt Job. The dummy job says: {}" +msgstr "" + +#: src/modules/dummypythonqt/main.py:190 +msgid "A status message for Dummy PythonQt Job." +msgstr "" From fa0518f9688fcc715f92f664bb31cd0726c31fbd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 05:41:43 -0400 Subject: [PATCH 48/68] [contextualprocess] Make conversion explicit - Should help with Qt 5.7 compatibility. Reported from Neptune Linux, #979 --- src/modules/contextualprocess/ContextualProcessJob.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index 380a92d0a..3c0a24433 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -66,7 +66,7 @@ struct ContextualProcessBinding void append( const QString& value, CalamaresUtils::CommandList* commands ) { checks.append( ValueCheck( value, commands ) ); - if ( value == '*' ) + if ( value == QLatin1Char('*') ) wildcard = commands; } From 5935d57069d2460d49dd4aee59cc4240b65fbcbf Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 05:50:24 -0400 Subject: [PATCH 49/68] CMake: bump minimum Qt to 5.7 to match kpmcore --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1627ff32f..60048f44c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,7 +92,7 @@ set( _tx_bad uz lo ur gu fr_CH fa eo ko ) ### Required versions # # See DEPENDENCIES section below. -set( QT_VERSION 5.6.0 ) +set( QT_VERSION 5.7.0 ) set( YAMLCPP_VERSION 0.5.1 ) set( ECM_VERSION 5.18 ) set( PYTHONLIBS_VERSION 3.3 ) From 7eae99223ec414bd7f579cde48d7857e453dbb24 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 06:11:39 -0400 Subject: [PATCH 50/68] CMake: check if rcc supports --format-version - The new format was introduced in Qt 5.7, and Qt 5.9 introduced the --format-version flag to rcc to switch back to the reproducible format 1. For distro's with Qt 5.7, don't use the new flag. - Reported from Neptune Linux, #979 --- CMakeModules/CalamaresAddTranslations.cmake | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index f5dd8c50c..924ee2483 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -22,6 +22,25 @@ include( CMakeParseArguments ) +if( NOT _rcc_version_support_checked ) + set( _rcc_version_support_checked TRUE ) + execute_process( + COMMAND echo "" + COMMAND ${Qt5Core_RCC_EXECUTABLE} --format-version 1 --list - + RESULT_VARIABLE _rcc_version_rv + ERROR_VARIABLE _rcc_version_dump + ) + message( STATUS "RCC ${_rcc_version_rv} ${_rcc_version_dump}" ) + if ( _rc_version_rv ) # Not zero + set( _rcc_version_support "" ) # Assume it is version 1 (Qt 5.7) or derpy (Qt 5.8) + else() + set( _rcc_version_support --format-version 1 ) + endif() + unset( _rcc_version_rv ) + unset( _rcc_version_dump ) +endif() + + # Internal macro for adding the C++ / Qt translations to the # build and install tree. Should be called only once, from # src/calamares/CMakeLists.txt. @@ -61,7 +80,7 @@ macro(add_calamares_translations language) add_custom_command( OUTPUT ${trans_outfile} COMMAND "${Qt5Core_RCC_EXECUTABLE}" - ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile} + ARGS ${rcc_options} ${_rcc_version_support} -name ${trans_file} -o ${trans_outfile} ${trans_infile} MAIN_DEPENDENCY ${trans_infile} DEPENDS ${QM_FILES} ) From 0ffb6ed67ca49e04e9e528437d61bcc10f5765ad Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 06:41:08 -0400 Subject: [PATCH 51/68] CMake: fix checks for supported rcc format versions --- CMakeModules/CalamaresAddTranslations.cmake | 23 +++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 924ee2483..4892cc0f9 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -24,17 +24,32 @@ include( CMakeParseArguments ) if( NOT _rcc_version_support_checked ) set( _rcc_version_support_checked TRUE ) + + # Extract the executable name + get_property( _rcc_executable + TARGET ${Qt5Core_RCC_EXECUTABLE} + PROPERTY IMPORTED_LOCATION + ) + if( NOT _rcc_executable ) + # Weird, probably now uses Qt5::rcc which is wrong too + set( _rcc_executable ${Qt5Core_RCC_EXECUTABLE} ) + endif() + + # Try an empty RCC file with explicit format-version execute_process( COMMAND echo "" COMMAND ${Qt5Core_RCC_EXECUTABLE} --format-version 1 --list - RESULT_VARIABLE _rcc_version_rv ERROR_VARIABLE _rcc_version_dump ) - message( STATUS "RCC ${_rcc_version_rv} ${_rcc_version_dump}" ) - if ( _rc_version_rv ) # Not zero - set( _rcc_version_support "" ) # Assume it is version 1 (Qt 5.7) or derpy (Qt 5.8) - else() + if ( _rcc_version_rv EQUAL 0 ) + # Supported: force to the reproducible version set( _rcc_version_support --format-version 1 ) + else() + # Older Qt versions (5.7, 5.8) don't support setting the + # rcc format-version, so won't be reproducible if they + # default to version 2. + set( _rcc_version_support "" ) endif() unset( _rcc_version_rv ) unset( _rcc_version_dump ) From 2d29bf4449554015a1b2c90b370c78c0c189a246 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 06:46:06 -0400 Subject: [PATCH 52/68] [contextualprocess] Make conversion explicit - Qt 5.7 doesn't like QLatin1Char comparison, so switch to a full string. Tested on Neptune Linux, #979 --- src/modules/contextualprocess/ContextualProcessJob.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index 3c0a24433..d3f4554d2 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -66,7 +66,7 @@ struct ContextualProcessBinding void append( const QString& value, CalamaresUtils::CommandList* commands ) { checks.append( ValueCheck( value, commands ) ); - if ( value == QLatin1Char('*') ) + if ( value == QLatin1Literal("*") ) wildcard = commands; } From 0ccca6902bb8a58203e2fd8b7b26225d8d1f8185 Mon Sep 17 00:00:00 2001 From: Gabriel Craciunescu Date: Mon, 11 Jun 2018 15:25:26 +0200 Subject: [PATCH 53/68] [grubcfg] fix inter-module dependency with plymouthcfg modules The plymouthcfg Calamares module is optional. Distributions which write filesystems with a full plymouth configuration won't even want to use it (see plymouthcfg docs). However, now grubcfg depends on plymouthcfg to run because the globalstorage value to trigger setting 'splash' in grub, is set in the plymouthcfg module. Just check for plymouth existence separately in the grub module. Fixes ea1c8a0e5ddfc6b72311cf744e2ac514c6630009 --- src/modules/grubcfg/main.py | 13 +++++++++---- src/modules/plymouthcfg/main.py | 7 +------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index 197a22edf..419aa67c1 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -44,16 +44,21 @@ def modify_grub_default(partitions, root_mount_point, distributor): dracut_bin = libcalamares.utils.target_env_call( ["sh", "-c", "which dracut"] ) - have_dracut = dracut_bin == 0 # Shell exit value 0 means success + plymouth_bin = libcalamares.utils.target_env_call( + ["sh", "-c", "which plymouth"] + ) + + # Shell exit value 0 means success + have_plymouth = plymouth_bin == 0 + have_dracut = dracut_bin == 0 use_splash = "" swap_uuid = "" swap_outer_uuid = "" swap_outer_mappername = None - if libcalamares.globalstorage.contains("hasPlymouth"): - if libcalamares.globalstorage.value("hasPlymouth"): - use_splash = "splash" + if have_plymouth: + use_splash = "splash" cryptdevice_params = [] diff --git a/src/modules/plymouthcfg/main.py b/src/modules/plymouthcfg/main.py index 2cb4f6dac..0bbd80de4 100644 --- a/src/modules/plymouthcfg/main.py +++ b/src/modules/plymouthcfg/main.py @@ -40,14 +40,9 @@ class PlymouthController: "/etc/plymouth/plymouthd.conf"]) def detect(self): - isPlymouth = target_env_call(["which", "plymouth"]) + isPlymouth = target_env_call(["sh", "-c", "which plymouth"]) debug("which plymouth exit code: {!s}".format(isPlymouth)) - if isPlymouth == 0: - libcalamares.globalstorage.insert("hasPlymouth", True) - else: - libcalamares.globalstorage.insert("hasPlymouth", False) - return isPlymouth def run(self): From 011310091c13faab5c4673757d2d62700bec96eb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 14:50:47 +0200 Subject: [PATCH 54/68] [contextualprocess] QLatin1String -> QString As Kevin pointed out, there's an extra conversion involved here -- although with -O3 the difference boils away leaving only a call to a from-ASCII helper or a from-Latin1 helper. While here, coding-style. --- src/modules/contextualprocess/ContextualProcessJob.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index d3f4554d2..d79297029 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -66,7 +66,7 @@ struct ContextualProcessBinding void append( const QString& value, CalamaresUtils::CommandList* commands ) { checks.append( ValueCheck( value, commands ) ); - if ( value == QLatin1Literal("*") ) + if ( value == QString( "*" ) ) wildcard = commands; } From 67ad37581f16b1ff1bb79abea7dc7c8f67e590c7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 14 Jun 2018 14:57:17 +0200 Subject: [PATCH 55/68] [contextualprocess] Document corner-case The "*" will match its literal value, but is also used as a wildcard. --- src/modules/contextualprocess/contextualprocess.conf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/contextualprocess/contextualprocess.conf b/src/modules/contextualprocess/contextualprocess.conf index 1f148328c..74bd2304a 100644 --- a/src/modules/contextualprocess/contextualprocess.conf +++ b/src/modules/contextualprocess/contextualprocess.conf @@ -17,7 +17,10 @@ # # As a special case, the value-check "*" matches any value, but **only** # if no other value-check matches. Use it as an *else* form for value- -# checks. Take care to put the asterisk in quotes. +# checks. Take care to put the asterisk in quotes. The value-check "*" +# **also** matches a literal asterisk as value; a confusing corner case +# is checking for an asterisk **and** having a wildcard match with +# different commands. This is currently not possible. # # Global configuration variables are not checked in a deterministic # order, so do not rely on commands from one variable-check to From 448c5eae169d10a243dcc35dc91e95c693d499d7 Mon Sep 17 00:00:00 2001 From: Raul Rodrigo Segura Date: Thu, 14 Jun 2018 16:33:58 +0200 Subject: [PATCH 56/68] style code --- src/libcalamaresui/modulesystem/PythonQtViewModule.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index d010f2200..88b0c207f 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -96,7 +96,7 @@ PythonQtViewModule::loadSelf() cala.addObject( "utils", s_utils ); // Append configuration object, in module PythonQt.calamares - cala.addVariable("configuration",m_configurationMap); + cala.addVariable("configuration", m_configurationMap); // Basic stdout/stderr handling QObject::connect( PythonQt::self(), &PythonQt::pythonStdOut, From ac769d1de89f890586db524a307300f37c11d768 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 04:41:41 -0400 Subject: [PATCH 57/68] Style: use QStringLiteral - In many cases, using QLatin1String is a de-optimization, when applied to a C string literal. Kevin Kofler pointed out that those should basically all be QStringLiteral, instead. (Compile tests with -O3 show that in the optimized object file, the code size difference is negligible). - Drop the explicit constructor entirely in cases where we're calling QProcess::execute(), for consistency. - Do a little less messing around in the mapping of keyboard locales to keyboard map names. --- src/calamares/CalamaresApplication.cpp | 8 ++-- src/modules/keyboard/KeyboardPage.cpp | 20 +++++---- src/modules/locale/GeoIPJSON.cpp | 2 +- src/modules/locale/GeoIPTests.cpp | 58 +++++++++++++------------- src/modules/locale/GeoIPXML.cpp | 2 +- src/modules/locale/test_geoip.cpp | 4 +- 6 files changed, 48 insertions(+), 46 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 2f61749b0..1e1d90f42 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -49,10 +49,10 @@ CalamaresApplication::CalamaresApplication( int& argc, char* argv[] ) // //, so we end up with ~/.cache/Calamares/calamares/ // which is excessively squidly. // - // setOrganizationName( QLatin1String( CALAMARES_ORGANIZATION_NAME ) ); - setOrganizationDomain( QLatin1String( CALAMARES_ORGANIZATION_DOMAIN ) ); - setApplicationName( QLatin1String( CALAMARES_APPLICATION_NAME ) ); - setApplicationVersion( QLatin1String( CALAMARES_VERSION ) ); + // setOrganizationName( QStringLiteral( CALAMARES_ORGANIZATION_NAME ) ); + setOrganizationDomain( QStringLiteral( CALAMARES_ORGANIZATION_DOMAIN ) ); + setApplicationName( QStringLiteral( CALAMARES_APPLICATION_NAME ) ); + setApplicationVersion( QStringLiteral( CALAMARES_VERSION ) ); cDebug() << "Calamares version:" << CALAMARES_VERSION; diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 9e4b7e3ae..a9a8c02a7 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -95,8 +95,7 @@ KeyboardPage::KeyboardPage( QWidget* parent ) QString model = m_models.value( text, "pc105" ); // Set Xorg keyboard model - QProcess::execute( QLatin1Literal( "setxkbmap" ), - QStringList() << "-model" << model ); + QProcess::execute( "setxkbmap", QStringList{ "-model", model } ); } ); CALAMARES_RETRANSLATE( ui->retranslateUi( this ); ) @@ -356,11 +355,15 @@ KeyboardPage::onActivate() lang.replace( '-', '_' ); // Normalize separators } - if ( !lang.isEmpty() && specialCaseMap.contains( lang.toStdString() ) ) + if ( !lang.isEmpty() ) { - QLatin1String newLang( specialCaseMap.value( lang.toStdString() ).c_str() ); - cDebug() << " .. special case language" << lang << '>' << newLang; - lang = newLang; + std::string lang_s = lang.toStdString(); + if ( specialCaseMap.contains( lang_s ) ) + { + QString newLang = QString::fromStdString( specialCaseMap.value( lang_s ) ); + cDebug() << " .. special case language" << lang << "becomes" << newLang; + lang = newLang; + } } if ( !lang.isEmpty() ) { @@ -478,9 +481,8 @@ KeyboardPage::onListVariantCurrentItemChanged( QListWidgetItem* current, QListWi connect( &m_setxkbmapTimer, &QTimer::timeout, this, [=] { - QProcess::execute( QLatin1Literal( "setxkbmap" ), - xkbmap_args( QStringList(), layout, variant ) ); - cDebug() << "xkbmap selection changed to: " << layout << "-" << variant; + QProcess::execute( "setxkbmap", xkbmap_args( QStringList(), layout, variant ) ); + cDebug() << "xkbmap selection changed to: " << layout << '-' << variant; m_setxkbmapTimer.disconnect( this ); } ); m_setxkbmapTimer.start( QApplication::keyboardInputInterval() ); diff --git a/src/modules/locale/GeoIPJSON.cpp b/src/modules/locale/GeoIPJSON.cpp index ee99e6c11..b4daf2084 100644 --- a/src/modules/locale/GeoIPJSON.cpp +++ b/src/modules/locale/GeoIPJSON.cpp @@ -28,7 +28,7 @@ #include GeoIPJSON::GeoIPJSON(const QString& attribute) - : GeoIP( attribute.isEmpty() ? QLatin1String( "time_zone" ) : attribute ) + : GeoIP( attribute.isEmpty() ? QStringLiteral( "time_zone" ) : attribute ) { } diff --git a/src/modules/locale/GeoIPTests.cpp b/src/modules/locale/GeoIPTests.cpp index d9c0a5898..af114611e 100644 --- a/src/modules/locale/GeoIPTests.cpp +++ b/src/modules/locale/GeoIPTests.cpp @@ -53,15 +53,15 @@ GeoIPTests::testJSON() GeoIPJSON handler; auto tz = handler.processReply( json_data_attribute ); - QCOMPARE( tz.first, QLatin1String( "Europe" ) ); - QCOMPARE( tz.second, QLatin1String( "Amsterdam" ) ); + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) ); // JSON is quite tolerant tz = handler.processReply( "time_zone: \"Europe/Brussels\"" ); - QCOMPARE( tz.second, QLatin1String( "Brussels" ) ); + QCOMPARE( tz.second, QStringLiteral( "Brussels" ) ); tz = handler.processReply( "time_zone: America/New_York\n" ); - QCOMPARE( tz.first, QLatin1String( "America" ) ); + QCOMPARE( tz.first, QStringLiteral( "America" ) ); } void GeoIPTests::testJSONalt() @@ -72,8 +72,8 @@ void GeoIPTests::testJSONalt() QCOMPARE( tz.first, QString() ); // Not found tz = handler.processReply( "tarifa: 12\nzona_de_hora: Europe/Madrid" ); - QCOMPARE( tz.first, QLatin1String( "Europe" ) ); - QCOMPARE( tz.second, QLatin1String( "Madrid" ) ); + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Madrid" ) ); } void @@ -122,8 +122,8 @@ GeoIPTests::testXML() GeoIPXML handler; auto tz = handler.processReply( xml_data_ubiquity ); - QCOMPARE( tz.first, QLatin1String( "Europe" ) ); - QCOMPARE( tz.second, QLatin1String( "Amsterdam" ) ); + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) ); #endif } @@ -137,8 +137,8 @@ GeoIPTests::testXML2() GeoIPXML handler; auto tz = handler.processReply( data ); - QCOMPARE( tz.first, QLatin1String( "America" ) ); - QCOMPARE( tz.second, QLatin1String( "North_Dakota/Beulah" ) ); // Without space + QCOMPARE( tz.first, QStringLiteral( "America" ) ); + QCOMPARE( tz.second, QStringLiteral( "North_Dakota/Beulah" ) ); // Without space #endif } @@ -149,8 +149,8 @@ void GeoIPTests::testXMLalt() GeoIPXML handler( "ZT" ); auto tz = handler.processReply( "Moon/Dark_side" ); - QCOMPARE( tz.first, QLatin1String( "Moon" ) ); - QCOMPARE( tz.second, QLatin1String( "Dark_side" ) ); + QCOMPARE( tz.first, QStringLiteral( "Moon" ) ); + QCOMPARE( tz.second, QStringLiteral( "Dark_side" ) ); #endif } @@ -172,26 +172,26 @@ GeoIPTests::testXMLbad() void GeoIPTests::testSplitTZ() { - auto tz = GeoIP::splitTZString( QLatin1String("Moon/Dark_side") ); - QCOMPARE( tz.first, QLatin1String("Moon") ); - QCOMPARE( tz.second, QLatin1String("Dark_side") ); + auto tz = GeoIP::splitTZString( QStringLiteral("Moon/Dark_side") ); + QCOMPARE( tz.first, QStringLiteral("Moon") ); + QCOMPARE( tz.second, QStringLiteral("Dark_side") ); // Some providers return weirdly escaped data - tz = GeoIP::splitTZString( QLatin1String("America\\/NewYork") ); - QCOMPARE( tz.first, QLatin1String("America") ); - QCOMPARE( tz.second, QLatin1String("NewYork") ); // That's not actually the zone name + tz = GeoIP::splitTZString( QStringLiteral("America\\/NewYork") ); + QCOMPARE( tz.first, QStringLiteral("America") ); + QCOMPARE( tz.second, QStringLiteral("NewYork") ); // That's not actually the zone name // Check that bogus data fails tz = GeoIP::splitTZString( QString() ); QCOMPARE( tz.first, QString() ); - tz = GeoIP::splitTZString( QLatin1String("America.NewYork") ); + tz = GeoIP::splitTZString( QStringLiteral("America.NewYork") ); QCOMPARE( tz.first, QString() ); // Check that three-level is split properly and space is replaced - tz = GeoIP::splitTZString( QLatin1String("America/North Dakota/Beulah") ); - QCOMPARE( tz.first, QLatin1String("America") ); - QCOMPARE( tz.second, QLatin1String("North_Dakota/Beulah") ); + tz = GeoIP::splitTZString( QStringLiteral("America/North Dakota/Beulah") ); + QCOMPARE( tz.first, QStringLiteral("America") ); + QCOMPARE( tz.second, QStringLiteral("North_Dakota/Beulah") ); } @@ -221,7 +221,7 @@ synchronous_get( const char* urlstring ) void GeoIPTests::testGet() { - if ( !QProcessEnvironment::systemEnvironment().contains( QLatin1String("TEST_HTTP_GET") ) ) + if ( !QProcessEnvironment::systemEnvironment().contains( QStringLiteral("TEST_HTTP_GET") ) ) { qDebug() << "Skipping HTTP GET tests"; return; @@ -232,8 +232,8 @@ void GeoIPTests::testGet() auto default_tz = default_handler.processReply( synchronous_get( "https://geoip.kde.org/v1/calamares" ) ); // This is bogus, because the test isn't always run by me - // QCOMPARE( default_tz.first, QLatin1String("Europe") ); - // QCOMPARE( default_tz.second, QLatin1String("Amsterdam") ); + // QCOMPARE( default_tz.first, QStringLiteral("Europe") ); + // QCOMPARE( default_tz.second, QStringLiteral("Amsterdam") ); QVERIFY( !default_tz.first.isEmpty() ); QVERIFY( !default_tz.second.isEmpty() ); @@ -242,12 +242,12 @@ void GeoIPTests::testGet() // services don't agree on the location of where the test is run. CHECK_GET( JSON, QString(), "https://geoip.kde.org/v1/calamares" ) // Check it's consistent CHECK_GET( JSON, QString(), "http://freegeoip.net/json/" ) // Original FreeGeoIP service - CHECK_GET( JSON, QLatin1String("timezone"), "https://ipapi.co/json" ) // Different JSON - CHECK_GET( JSON, QLatin1String("timezone"), "http://ip-api.com/json" ) + CHECK_GET( JSON, QStringLiteral("timezone"), "https://ipapi.co/json" ) // Different JSON + CHECK_GET( JSON, QStringLiteral("timezone"), "http://ip-api.com/json" ) - CHECK_GET( JSON, QLatin1String("location.time_zone"), "http://geoip.nekudo.com/api/" ) // 2-level JSON + CHECK_GET( JSON, QStringLiteral("location.time_zone"), "http://geoip.nekudo.com/api/" ) // 2-level JSON - CHECK_GET( JSON, QLatin1String("Location.TimeZone"), "https://geoip.kde.org/debug" ) // 2-level JSON + CHECK_GET( JSON, QStringLiteral("Location.TimeZone"), "https://geoip.kde.org/debug" ) // 2-level JSON #ifdef HAVE_XML CHECK_GET( XML, QString(), "http://geoip.ubuntu.com/lookup" ) // Ubiquity's XML format diff --git a/src/modules/locale/GeoIPXML.cpp b/src/modules/locale/GeoIPXML.cpp index 0fb5359f3..bd675c2ef 100644 --- a/src/modules/locale/GeoIPXML.cpp +++ b/src/modules/locale/GeoIPXML.cpp @@ -24,7 +24,7 @@ #include GeoIPXML::GeoIPXML( const QString& element ) - : GeoIP( element.isEmpty() ? QLatin1String( "TimeZone" ) : element ) + : GeoIP( element.isEmpty() ? QStringLiteral( "TimeZone" ) : element ) { } diff --git a/src/modules/locale/test_geoip.cpp b/src/modules/locale/test_geoip.cpp index 7b6584f0c..5ba43f72e 100644 --- a/src/modules/locale/test_geoip.cpp +++ b/src/modules/locale/test_geoip.cpp @@ -38,10 +38,10 @@ int main(int argc, char** argv) } GeoIP* handler = nullptr; - if ( QLatin1String( "json" ) == argv[1] ) + if ( QStringLiteral( "json" ) == argv[1] ) handler = new GeoIPJSON; #ifdef HAVE_XML - else if ( QLatin1String( "xml" ) == argv[1] ) + else if ( QStringLiteral( "xml" ) == argv[1] ) handler = new GeoIPXML; #endif From 99163c9a68300cb75fef26572f6686f4ff47e8fd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 04:46:53 -0400 Subject: [PATCH 58/68] Style: stray space --- 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 e4f36daad..d8d3a530d 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -498,7 +498,7 @@ LocalePage::updateGlobalStorage() #ifndef DEBUG_TIMEZONES if ( Calamares::Settings::instance()->doChroot() ) { - QProcess ::execute( "timedatectl", // depends on systemd + QProcess::execute( "timedatectl", // depends on systemd { "set-timezone", location.region + '/' + location.zone } ); } From d2f2aa9a97806824846fe24e67f9f212b3ff999f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 05:29:03 -0400 Subject: [PATCH 59/68] [branding] Link to the examples repository --- src/branding/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/branding/README.md b/src/branding/README.md index 6503bef49..f85ad8f67 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -24,9 +24,11 @@ so that it can be run directly from the build directory for testing purposes: Since the slideshow can be **any** QML, it is limited only by your designers imagination and your QML experience. For straightforward presentations, -see the documentation below. There are more examples in the *calamares-branding* +see the documentation below. There are more examples in the [calamares-branding][1] repository. +[1] https://github.com/calamares/calamares-branding + ## Translations QML files in a branding component can be translated. Translations should From dd8e53dc225512bfb870cb043fd57ddf7520900d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 05:59:11 -0400 Subject: [PATCH 60/68] Copyright: update copyright lines on files touched in 2018 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Contributions from: Adriaan de Groot Gabriel Craciunescu AlmAck Andrius Štikonas Caio Carvalho Raul Rodrigo Segura --- src/branding/default/show.qml | 3 ++- src/calamares/CalamaresApplication.cpp | 1 + src/calamares/CalamaresApplication.h | 1 + src/calamares/main.cpp | 2 +- src/libcalamares/JobQueue.cpp | 1 + src/libcalamares/ProcessJob.cpp | 1 + src/libcalamares/ProcessJob.h | 2 +- src/libcalamares/PythonHelper.cpp | 2 +- src/libcalamares/PythonHelper.h | 1 + src/libcalamares/PythonJob.cpp | 1 + src/libcalamares/PythonJobApi.cpp | 2 +- src/libcalamares/PythonJobApi.h | 2 +- src/libcalamares/Settings.cpp | 2 +- src/libcalamares/Settings.h | 2 +- src/libcalamares/utils/CalamaresUtils.cpp | 1 + src/libcalamares/utils/CalamaresUtils.h | 1 + src/libcalamares/utils/PluginFactory.cpp | 2 +- src/libcalamares/utils/PluginFactory.h | 4 ++-- src/libcalamaresui/Branding.cpp | 2 +- src/libcalamaresui/modulesystem/Module.cpp | 2 +- src/libcalamaresui/modulesystem/ModuleManager.cpp | 1 + src/libcalamaresui/modulesystem/ModuleManager.h | 1 + src/libcalamaresui/modulesystem/PythonQtViewModule.cpp | 2 ++ src/libcalamaresui/modulesystem/ViewModule.cpp | 2 +- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 2 +- src/libcalamaresui/utils/CalamaresUtilsGui.h | 2 +- src/libcalamaresui/viewpages/PythonQtViewStep.cpp | 1 + src/modules/contextualprocess/Tests.cpp | 2 +- src/modules/dummycpp/DummyCppJob.cpp | 1 + src/modules/finished/FinishedPage.cpp | 2 +- src/modules/grubcfg/main.py | 2 +- src/modules/hwclock/main.py | 2 +- src/modules/keyboard/KeyboardPage.cpp | 2 +- src/modules/keyboard/keyboardwidget/keyboardpreview.cpp | 1 + src/modules/license/LicensePage.cpp | 3 ++- src/modules/license/LicensePage.h | 1 + src/modules/locale/LocaleConfiguration.cpp | 2 +- src/modules/locale/LocaleConfiguration.h | 2 +- src/modules/locale/LocalePage.cpp | 2 +- src/modules/locale/LocaleViewStep.h | 1 + src/modules/locale/timezonewidget/timezonewidget.cpp | 2 +- src/modules/locale/timezonewidget/timezonewidget.h | 1 + src/modules/localecfg/main.py | 1 + src/modules/netinstall/NetInstallPage.cpp | 2 +- src/modules/netinstall/NetInstallPage.h | 2 +- src/modules/netinstall/NetInstallViewStep.cpp | 2 +- src/modules/netinstall/PackageModel.cpp | 2 +- src/modules/partition/core/KPMHelpers.cpp | 1 + src/modules/partition/core/PartUtils.h | 1 + src/modules/partition/core/PartitionActions.cpp | 2 +- src/modules/partition/core/PartitionCoreModule.cpp | 3 ++- src/modules/partition/core/PartitionInfo.cpp | 1 + src/modules/partition/core/PartitionInfo.h | 1 + src/modules/partition/core/PartitionModel.cpp | 1 + src/modules/partition/gui/ChoicePage.cpp | 2 +- src/modules/partition/gui/ChoicePage.h | 1 + src/modules/partition/gui/CreatePartitionDialog.cpp | 3 +++ src/modules/partition/gui/CreatePartitionDialog.h | 1 + src/modules/partition/gui/EditExistingPartitionDialog.cpp | 1 + src/modules/partition/gui/EditExistingPartitionDialog.h | 1 + src/modules/partition/gui/PartitionPage.cpp | 2 ++ src/modules/partition/gui/PartitionPage.h | 1 + src/modules/partition/gui/PartitionViewStep.cpp | 1 + src/modules/partition/gui/ReplaceWidget.h | 1 + src/modules/partition/jobs/ClearMountsJob.cpp | 1 + src/modules/plasmalnf/PlasmaLnfPage.cpp | 2 +- src/modules/plasmalnf/PlasmaLnfPage.h | 2 +- src/modules/plasmalnf/PlasmaLnfViewStep.cpp | 2 +- src/modules/plasmalnf/PlasmaLnfViewStep.h | 2 +- src/modules/plymouthcfg/main.py | 1 + src/modules/shellprocess/Tests.cpp | 2 +- src/modules/test_conf.cpp | 2 +- src/modules/tracking/TrackingJobs.cpp | 2 +- src/modules/tracking/TrackingJobs.h | 2 +- src/modules/tracking/TrackingPage.cpp | 2 +- src/modules/users/SetHostNameJob.cpp | 1 + src/modules/users/UsersPage.cpp | 2 +- src/modules/users/UsersPage.h | 2 +- src/modules/users/UsersViewStep.cpp | 2 +- src/modules/welcome/WelcomeViewStep.cpp | 1 + 80 files changed, 88 insertions(+), 45 deletions(-) diff --git a/src/branding/default/show.qml b/src/branding/default/show.qml index ad7c92783..b724a4832 100644 --- a/src/branding/default/show.qml +++ b/src/branding/default/show.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac + * Copyright 2018, 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 @@ -30,7 +31,7 @@ Presentation repeat: true onTriggered: presentation.goToNextSlide() } - + Slide { Image { diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 1e1d90f42..e41516c60 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/calamares/CalamaresApplication.h b/src/calamares/CalamaresApplication.h index a588afcee..f9c919aa6 100644 --- a/src/calamares/CalamaresApplication.h +++ b/src/calamares/CalamaresApplication.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp index 1c1ba2181..d4bd2743d 100644 --- a/src/calamares/main.cpp +++ b/src/calamares/main.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index 339fd8457..257fb51a7 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/libcalamares/ProcessJob.cpp b/src/libcalamares/ProcessJob.cpp index 55e25254c..3cf4eec49 100644 --- a/src/libcalamares/ProcessJob.cpp +++ b/src/libcalamares/ProcessJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/libcalamares/ProcessJob.h b/src/libcalamares/ProcessJob.h index 59a532023..d01dbb676 100644 --- a/src/libcalamares/ProcessJob.h +++ b/src/libcalamares/ProcessJob.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/PythonHelper.cpp b/src/libcalamares/PythonHelper.cpp index e5eb85084..d6001055e 100644 --- a/src/libcalamares/PythonHelper.cpp +++ b/src/libcalamares/PythonHelper.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/PythonHelper.h b/src/libcalamares/PythonHelper.h index d48e5eaab..693d80d8b 100644 --- a/src/libcalamares/PythonHelper.h +++ b/src/libcalamares/PythonHelper.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/libcalamares/PythonJob.cpp b/src/libcalamares/PythonJob.cpp index 92dbedef9..65a5c4506 100644 --- a/src/libcalamares/PythonJob.cpp +++ b/src/libcalamares/PythonJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/libcalamares/PythonJobApi.cpp b/src/libcalamares/PythonJobApi.cpp index a5bae6149..f540c2683 100644 --- a/src/libcalamares/PythonJobApi.cpp +++ b/src/libcalamares/PythonJobApi.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/PythonJobApi.h b/src/libcalamares/PythonJobApi.h index 0e68d7936..a19a0581b 100644 --- a/src/libcalamares/PythonJobApi.h +++ b/src/libcalamares/PythonJobApi.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/Settings.cpp b/src/libcalamares/Settings.cpp index bc645ab39..80f6836bb 100644 --- a/src/libcalamares/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/Settings.h b/src/libcalamares/Settings.h index 35527243a..2330f5747 100644 --- a/src/libcalamares/Settings.h +++ b/src/libcalamares/Settings.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamares/utils/CalamaresUtils.cpp b/src/libcalamares/utils/CalamaresUtils.cpp index dde3f9a13..79f55974d 100644 --- a/src/libcalamares/utils/CalamaresUtils.cpp +++ b/src/libcalamares/utils/CalamaresUtils.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2013-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Originally from Tomahawk, portions: * Copyright 2010-2011, Christian Muehlhaeuser diff --git a/src/libcalamares/utils/CalamaresUtils.h b/src/libcalamares/utils/CalamaresUtils.h index 13caf1cad..e64fe4eec 100644 --- a/src/libcalamares/utils/CalamaresUtils.h +++ b/src/libcalamares/utils/CalamaresUtils.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2013-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Originally from Tomahawk, portions: * Copyright 2010-2011, Christian Muehlhaeuser diff --git a/src/libcalamares/utils/PluginFactory.cpp b/src/libcalamares/utils/PluginFactory.cpp index d53b6474f..124af16f4 100644 --- a/src/libcalamares/utils/PluginFactory.cpp +++ b/src/libcalamares/utils/PluginFactory.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Based on KPluginFactory from KCoreAddons, KDE project * Copyright 2007, Matthias Kretz diff --git a/src/libcalamares/utils/PluginFactory.h b/src/libcalamares/utils/PluginFactory.h index 0ca7917c4..22966b829 100644 --- a/src/libcalamares/utils/PluginFactory.h +++ b/src/libcalamares/utils/PluginFactory.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Based on KPluginFactory from KCoreAddons, KDE project * Copyright 2007, Matthias Kretz @@ -111,7 +111,7 @@ namespace Calamares * T(QObject *parent, const QVariantList &args) * \endcode * - * You should typically use CALAMARES_PLUGIN_FACTORY_DEFINITION() in your plugin code to + * You should typically use CALAMARES_PLUGIN_FACTORY_DEFINITION() in your plugin code to * create the factory. The pattern is * * \code diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index c71b1daa5..086e20b7d 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index 05394e69f..758ee5e47 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 6361fa20b..6d13c9564 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index e1763d93c..eff09b321 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index 88b0c207f..b667b6a81 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -1,6 +1,8 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * Copyright 2018, Raul Rodrigo Segura * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 317d32712..492d58fda 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index e4dc6b555..425ee1811 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index 98a49db61..4b041466d 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp index 72e434780..4915fe120 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/contextualprocess/Tests.cpp b/src/modules/contextualprocess/Tests.cpp index ed6d4f278..89fb1922c 100644 --- a/src/modules/contextualprocess/Tests.cpp +++ b/src/modules/contextualprocess/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/dummycpp/DummyCppJob.cpp b/src/modules/dummycpp/DummyCppJob.cpp index fb5a2db3a..b404eaf63 100644 --- a/src/modules/dummycpp/DummyCppJob.cpp +++ b/src/modules/dummycpp/DummyCppJob.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Teo Mrnjavac (original dummypython code) * Copyright 2016, Kevin Kofler + * Copyright 2018, 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 diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp index ca03ccb89..ef3b0745e 100644 --- a/src/modules/finished/FinishedPage.cpp +++ b/src/modules/finished/FinishedPage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index 419aa67c1..b19ebf588 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -7,7 +7,7 @@ # Copyright 2015-2017, Teo Mrnjavac # Copyright 2017, Alf Gaida # Copyright 2017, Adriaan de Groot -# Copyright 2017, Gabriel Craciunescu +# Copyright 2017-2018, Gabriel Craciunescu # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/hwclock/main.py b/src/modules/hwclock/main.py index e2f70ee61..9cac929ba 100644 --- a/src/modules/hwclock/main.py +++ b/src/modules/hwclock/main.py @@ -6,7 +6,7 @@ # Copyright 2014 - 2015, Philip Müller # Copyright 2014, Teo Mrnjavac # Copyright 2017, Alf Gaida -# Copyright 2017, Gabriel Craciunescu +# Copyright 2017-2018, Gabriel Craciunescu # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index a9a8c02a7..6f4473014 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp index 9cdf831e6..26aa18d87 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 12d259e98..351c55d79 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -3,6 +3,7 @@ * Copyright 2015, Anke Boersma * Copyright 2015, Alexandre Arnt * Copyright 2015, Teo Mrnjavac + * Copyright 2018, 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 @@ -57,7 +58,7 @@ LicensePage::LicensePage(QWidget *parent) 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;" diff --git a/src/modules/license/LicensePage.h b/src/modules/license/LicensePage.h index 4f84b55be..300e9e309 100644 --- a/src/modules/license/LicensePage.h +++ b/src/modules/license/LicensePage.h @@ -3,6 +3,7 @@ * Copyright 2015, Anke Boersma * Copyright 2015, Alexandre Arnt * Copyright 2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/locale/LocaleConfiguration.cpp b/src/modules/locale/LocaleConfiguration.cpp index f4cbc800d..7c8ad3305 100644 --- a/src/modules/locale/LocaleConfiguration.cpp +++ b/src/modules/locale/LocaleConfiguration.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/locale/LocaleConfiguration.h b/src/modules/locale/LocaleConfiguration.h index 4f6cde556..c077ef6f7 100644 --- a/src/modules/locale/LocaleConfiguration.h +++ b/src/modules/locale/LocaleConfiguration.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index d8d3a530d..9aad283c6 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index b02f6adbd..8006bc616 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 6609160d5..7b5a2f0d3 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, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Originally from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 8589dc74d..dd49b3311 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Originally from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/localecfg/main.py b/src/modules/localecfg/main.py index e6c37133b..d44d7da2b 100644 --- a/src/modules/localecfg/main.py +++ b/src/modules/localecfg/main.py @@ -6,6 +6,7 @@ # Copyright 2014, Anke Boersma # Copyright 2015, Philip Müller # Copyright 2016, Teo Mrnjavac +# Copyright 2018, AlmAck # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 5272d83fd..39282ef00 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * Copyright 2017, Gabriel Craciunescu * * Calamares is free software: you can redistribute it and/or modify diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index 3dc8ee46e..7ec37e7ac 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index de4480cbb..6dd824b32 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/netinstall/PackageModel.cpp b/src/modules/netinstall/PackageModel.cpp index 3e721c017..f64bd778f 100644 --- a/src/modules/netinstall/PackageModel.cpp +++ b/src/modules/netinstall/PackageModel.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/partition/core/KPMHelpers.cpp b/src/modules/partition/core/KPMHelpers.cpp index 3f3134c5b..f8be44345 100644 --- a/src/modules/partition/core/KPMHelpers.cpp +++ b/src/modules/partition/core/KPMHelpers.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/partition/core/PartUtils.h b/src/modules/partition/core/PartUtils.h index c81258712..b94e20567 100644 --- a/src/modules/partition/core/PartUtils.h +++ b/src/modules/partition/core/PartUtils.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index e1822d434..d654edf12 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index f636d15bb..8c0ed878a 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -2,7 +2,8 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot + * Copyright 2018, Caio Carvalho * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionInfo.cpp b/src/modules/partition/core/PartitionInfo.cpp index dcd49d2e9..9cc03fc9d 100644 --- a/src/modules/partition/core/PartitionInfo.cpp +++ b/src/modules/partition/core/PartitionInfo.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, 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 diff --git a/src/modules/partition/core/PartitionInfo.h b/src/modules/partition/core/PartitionInfo.h index 9003bf997..a9c391059 100644 --- a/src/modules/partition/core/PartitionInfo.h +++ b/src/modules/partition/core/PartitionInfo.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, 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 diff --git a/src/modules/partition/core/PartitionModel.cpp b/src/modules/partition/core/PartitionModel.cpp index 0265da29d..8f0ecba81 100644 --- a/src/modules/partition/core/PartitionModel.cpp +++ b/src/modules/partition/core/PartitionModel.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, 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 diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index fdc68ef97..bef6e4966 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index 91274d152..c36747e93 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp index 439583be9..0e7602c08 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.cpp +++ b/src/modules/partition/gui/CreatePartitionDialog.cpp @@ -2,6 +2,9 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * Copyright 2018, Andrius Štikonas + * Copyright 2018, Caio Carvalho * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/CreatePartitionDialog.h b/src/modules/partition/gui/CreatePartitionDialog.h index 769edb5de..2f3cc14a5 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.h +++ b/src/modules/partition/gui/CreatePartitionDialog.h @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2016, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp index c0fff50a8..3ad5080b4 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp +++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Flags handling originally from KDE Partition Manager, * Copyright 2008-2009, Volker Lanz diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.h b/src/modules/partition/gui/EditExistingPartitionDialog.h index 106ba6639..e98563bc0 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.h +++ b/src/modules/partition/gui/EditExistingPartitionDialog.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, 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 diff --git a/src/modules/partition/gui/PartitionPage.cpp b/src/modules/partition/gui/PartitionPage.cpp index 426667a08..09badbf94 100644 --- a/src/modules/partition/gui/PartitionPage.cpp +++ b/src/modules/partition/gui/PartitionPage.cpp @@ -2,6 +2,8 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * Copyright 2018, Andrius Štikonas * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/PartitionPage.h b/src/modules/partition/gui/PartitionPage.h index d7c823a61..2ab7f5839 100644 --- a/src/modules/partition/gui/PartitionPage.h +++ b/src/modules/partition/gui/PartitionPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, 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 diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 45676e440..b49b6c93b 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2014-2017, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/partition/gui/ReplaceWidget.h b/src/modules/partition/gui/ReplaceWidget.h index 15015f120..c09c604b1 100644 --- a/src/modules/partition/gui/ReplaceWidget.h +++ b/src/modules/partition/gui/ReplaceWidget.h @@ -2,6 +2,7 @@ * * Copyright 2014-2015, Teo Mrnjavac * Copyright 2014, Aurélien Gâteau + * Copyright 2018, 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 diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp index 1a48becad..da6bee325 100644 --- a/src/modules/partition/jobs/ClearMountsJob.cpp +++ b/src/modules/partition/jobs/ClearMountsJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/plasmalnf/PlasmaLnfPage.cpp b/src/modules/plasmalnf/PlasmaLnfPage.cpp index d34042e4f..df55cb3a4 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.cpp +++ b/src/modules/plasmalnf/PlasmaLnfPage.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/plasmalnf/PlasmaLnfPage.h b/src/modules/plasmalnf/PlasmaLnfPage.h index b90e4cfb4..5a4c68b4e 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.h +++ b/src/modules/plasmalnf/PlasmaLnfPage.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp index c5b9d5a83..ef319bde4 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.h b/src/modules/plasmalnf/PlasmaLnfViewStep.h index 192d7085e..3343fb85a 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.h +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/plymouthcfg/main.py b/src/modules/plymouthcfg/main.py index 0bbd80de4..6f1128b7e 100644 --- a/src/modules/plymouthcfg/main.py +++ b/src/modules/plymouthcfg/main.py @@ -5,6 +5,7 @@ # # Copyright 2016, Artoo # Copyright 2017, Alf Gaida +# Copyright 2018, Gabriel Craciunescu # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/shellprocess/Tests.cpp b/src/modules/shellprocess/Tests.cpp index 7ebb8e624..068aefda5 100644 --- a/src/modules/shellprocess/Tests.cpp +++ b/src/modules/shellprocess/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/test_conf.cpp b/src/modules/test_conf.cpp index 082f626c8..b5362d25a 100644 --- a/src/modules/test_conf.cpp +++ b/src/modules/test_conf.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 717d636d3..42c2acfab 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index 4ad3652ca..94a0c12bb 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 26858442f..924ac43d9 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index 87c89c3b8..62b1c61a7 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Rohan Garg * Copyright 2015, Teo Mrnjavac + * Copyright 2018, 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 diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 86e010469..04b851cf9 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 817f73d0b..a238461ec 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 37d86819e..8ff7b0e7b 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * Copyright 2017, Gabriel Craciunescu * * Calamares is free software: you can redistribute it and/or modify diff --git a/src/modules/welcome/WelcomeViewStep.cpp b/src/modules/welcome/WelcomeViewStep.cpp index 8534b808c..86740fb3d 100644 --- a/src/modules/welcome/WelcomeViewStep.cpp +++ b/src/modules/welcome/WelcomeViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, 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 From fa08e0ad7393b433ee9ed70a9ff736bbed501b29 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 06:15:43 -0400 Subject: [PATCH 61/68] Copyright: fix bad email address --- src/modules/partition/core/PartitionCoreModule.cpp | 2 +- src/modules/plasmalnf/PlasmaLnfViewStep.h | 2 +- src/modules/tracking/TrackingJobs.cpp | 2 +- src/modules/tracking/TrackingJobs.h | 2 +- src/modules/tracking/TrackingViewStep.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 8c0ed878a..57a02d6e0 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -3,7 +3,7 @@ * Copyright 2014, Aurélien Gâteau * Copyright 2014-2015, Teo Mrnjavac * Copyright 2017-2018, Adriaan de Groot - * Copyright 2018, Caio Carvalho + * Copyright 2018, Caio Carvalho * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.h b/src/modules/plasmalnf/PlasmaLnfViewStep.h index 3343fb85a..b9a6b72e6 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.h +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 42c2acfab..7875ee6db 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index 94a0c12bb..a379441c9 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * Copyright 2017-2018, 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 diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index c024f1d3a..dc3ae823e 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017, 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 From b92bef21f888e60764f292be77095c99acc35f18 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 06:21:05 -0400 Subject: [PATCH 62/68] [libcalamares] Avoid using namespace std; --- src/libcalamares/utils/CalamaresUtils.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libcalamares/utils/CalamaresUtils.cpp b/src/libcalamares/utils/CalamaresUtils.cpp index 79f55974d..6a892511a 100644 --- a/src/libcalamares/utils/CalamaresUtils.cpp +++ b/src/libcalamares/utils/CalamaresUtils.cpp @@ -34,11 +34,9 @@ #include #include - -// stdc++ #include -using namespace std; +using std::cerr; namespace CalamaresUtils { From def459a29d5d447a03ff228e3a4ccfa19725f6db Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 07:11:17 -0400 Subject: [PATCH 63/68] [libcalamaresui] Read emergency setting from module.desc - Read setting from the module descriptor - Document optional settings - Add EMERGENCY keyword to the CMake helper functions --- CMakeModules/CalamaresAddPlugin.cmake | 6 +++++- src/libcalamaresui/modulesystem/Module.cpp | 6 ++++++ src/libcalamaresui/modulesystem/Module.h | 6 +++--- src/modules/README.md | 24 ++++++++++++++++++++-- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index e02102829..ade323689 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -38,6 +38,7 @@ # RESOURCES resource-file # [NO_INSTALL] # [SHARED_LIB] +# [EMERGENCY] # ) include( CMakeParseArguments ) @@ -47,7 +48,7 @@ include( CMakeColors ) function( calamares_add_plugin ) # parse arguments ( name needs to be saved before passing ARGN into the macro ) set( NAME ${ARGV0} ) - set( options NO_INSTALL SHARED_LIB ) + set( options NO_INSTALL SHARED_LIB EMERGENCY ) set( oneValueArgs NAME TYPE EXPORT_MACRO RESOURCES ) set( multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS ) cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) @@ -132,6 +133,9 @@ function( calamares_add_plugin ) set( _type ${PLUGIN_TYPE} ) file( WRITE ${_file} "# AUTO-GENERATED metadata file\n# Syntax is YAML 1.2\n---\n" ) file( APPEND ${_file} "type: \"${_type}\"\nname: \"${PLUGIN_NAME}\"\ninterface: \"qtplugin\"\nload: \"lib${target}.so\"\n" ) + if ( PLUGIN_EMERGENCY ) + file( APPEND ${_file} "emergency: true\n" ) + endif() endif() install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE} diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index 2d0de8e55..d334fda17 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -290,6 +290,12 @@ void Module::initFrom( const QVariantMap& moduleDescriptor ) { m_name = moduleDescriptor.value( "name" ).toString(); + + auto em = QStringLiteral( "emergency" ); + if ( moduleDescriptor.contains( em ) ) + { + m_emergency = moduleDescriptor[ em ].toBool(); + } } } //ns diff --git a/src/libcalamaresui/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h index 9b481b157..219902b17 100644 --- a/src/libcalamaresui/modulesystem/Module.h +++ b/src/libcalamaresui/modulesystem/Module.h @@ -182,9 +182,11 @@ public: protected: explicit Module(); virtual void initFrom( const QVariantMap& moduleDescriptor ); - bool m_loaded; QVariantMap m_configurationMap; + bool m_loaded = false; + bool m_emergency = false; + private: void loadConfigurationFile( const QString& configFileName ); //throws YAML::Exception @@ -193,8 +195,6 @@ private: QString m_directory; QString m_instanceId; - bool m_emergency; - friend void ::operator>>( const QVariantMap& moduleDescriptor, Calamares::Module* m ); }; diff --git a/src/modules/README.md b/src/modules/README.md index a2ec06144..4b1d8ef2f 100644 --- a/src/modules/README.md +++ b/src/modules/README.md @@ -43,15 +43,21 @@ module's name, type, interface and possibly other properties. The name of the module as defined in `module.desc` must be the same as the name of the module's directory. -Module descriptors must have the following keys: +Module descriptors **must** have the following keys: - *name* (an identifier; must be the same as the directory name) - *type* ("job" or "view") - *interface* (see below for the different interfaces; generally we refer to the kinds of modules by their interface) +Module descriptors **may** have the following keys: +- *required* **unimplemented** (a list of modules which are required for this module + to operate properly) +- *emergency* (a boolean value, set to true to mark the module + as an emergency module) + ## Module-specific configuration -A Calamares module *may* read a module configuration file, +A Calamares module **may** read a module configuration file, named `.conf`. If such a file is present in the module's directory, it is shipped as a *default* configuration file. The module configuration file, if it exists, is a YAML 1.2 document @@ -125,3 +131,17 @@ while the module type must be "job" or "jobmodule". The key *command* should have a string as value, which is passed to the shell -- remember to quote it properly. +## Emergency Modules + +Only C++ modules and job modules may be emergency modules. If, during an +*exec* step in the sequence, a module fails, installation as a whole fails +and the install is aborted. If there are emergency modules in the **same** +exec block, those will be executed before the installation is aborted. +Non-emergency modules are not executed. + +If an emergency-module fails while processing emergency-modules for +another failed module, that failure is ignored and emergency-module +processing continues. + +Use the EMERGENCY keyword in the CMake description of a C++ module +to generate a suitable `module.desc`. From d325366e92284cae8c5fd9aef5e5bae6b574dac1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 07:19:02 -0400 Subject: [PATCH 64/68] CMake: fix plugin NO_INSTALL keyword Although the NO_INSTALL keyword could be specified for Calamares plugins, it didn't actually do anything. Now it does. A NO_INSTALL module does not install configs or libraries. --- CMakeModules/CalamaresAddPlugin.cmake | 31 ++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index ade323689..d2f878381 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -72,7 +72,7 @@ function( calamares_add_plugin ) # message( " ${Green}NO_INSTALL:${ColorReset} ${PLUGIN_NO_INSTALL}" ) message( " ${Green}PLUGIN_DESTINATION:${ColorReset} ${PLUGIN_DESTINATION}" ) if( PLUGIN_CONFIG_FILES ) - if ( INSTALL_CONFIG ) + if ( INSTALL_CONFIG AND NOT PLUGIN_NO_INSTALL ) message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => ${PLUGIN_DATA_DESTINATION}" ) else() message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => [Skipping installation]" ) @@ -93,7 +93,7 @@ function( calamares_add_plugin ) set( target_type "SHARED" ) endif() - list( APPEND calamares_add_library_args + set( calamares_add_library_args "${target}" "EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}" "TARGET_TYPE" "${target_type}" @@ -116,9 +116,14 @@ function( calamares_add_plugin ) list( APPEND calamares_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS} ) endif() - list( APPEND calamares_add_library_args "NO_VERSION" ) + if ( PLUGIN_NO_INSTALL ) + list( APPEND calamares_add_library_args "NO_INSTALL" ) + endif() - list( APPEND calamares_add_library_args "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" ) + list( APPEND calamares_add_library_args + "NO_VERSION" + "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" + ) if( PLUGIN_RESOURCES ) list( APPEND calamares_add_library_args "RESOURCES" "${PLUGIN_RESOURCES}" ) @@ -138,14 +143,16 @@ function( calamares_add_plugin ) endif() endif() - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE} - DESTINATION ${PLUGIN_DESTINATION} ) + if ( NOT PLUGIN_NO_INSTALL ) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE} + DESTINATION ${PLUGIN_DESTINATION} ) - if ( INSTALL_CONFIG ) - foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} ) - configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY ) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE} - DESTINATION ${PLUGIN_DATA_DESTINATION} ) - endforeach() + if ( INSTALL_CONFIG ) + foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} ) + configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY ) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE} + DESTINATION ${PLUGIN_DATA_DESTINATION} ) + endforeach() + endif() endif() endfunction() From 53161f6e36c46fbef1e8a61e081af157db32c3eb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 07:22:09 -0400 Subject: [PATCH 65/68] [preservefiles] Mark this as an emergency module - For C++ modules, don't need the module.desc file in the source repo, since the CMake macros can create it. --- src/modules/preservefiles/CMakeLists.txt | 1 + src/modules/preservefiles/module.desc | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 src/modules/preservefiles/module.desc diff --git a/src/modules/preservefiles/CMakeLists.txt b/src/modules/preservefiles/CMakeLists.txt index 43602024c..1ac979d1b 100644 --- a/src/modules/preservefiles/CMakeLists.txt +++ b/src/modules/preservefiles/CMakeLists.txt @@ -8,4 +8,5 @@ calamares_add_plugin( preservefiles LINK_PRIVATE_LIBRARIES calamares SHARED_LIB + EMERGENCY ) diff --git a/src/modules/preservefiles/module.desc b/src/modules/preservefiles/module.desc deleted file mode 100644 index 953d8c81b..000000000 --- a/src/modules/preservefiles/module.desc +++ /dev/null @@ -1,5 +0,0 @@ ---- -type: "job" -name: "preservefiles" -interface: "qtplugin" -load: "libcalamares_job_preservefiles.so" From 3ed6f13fa8d293201dc616357230e12bcc67ce47 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 09:32:19 -0400 Subject: [PATCH 66/68] [libcalamaresui] Adjust the emergency-ness of modules A potentially emergency module is one that has EMERGENCY (in CMake) or emergency: true (in module.desc) set. Any such module must also set emergency: true in the configuration of the module. This is to allow for instances of a module that **don't** run as emergency modules, alongside actual emergency ones. --- src/libcalamaresui/modulesystem/Module.cpp | 10 +++++++--- src/libcalamaresui/modulesystem/Module.h | 3 ++- src/modules/README.md | 6 ++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index d334fda17..d131c9f13 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -52,6 +52,8 @@ name: "foo" #the module name. must be unique and same as the parent di interface: "qtplugin" #can be: qtplugin, python, process, ... */ +static const char EMERGENCY[] = "emergency"; + namespace Calamares { @@ -198,6 +200,9 @@ Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Ex } m_configurationMap = CalamaresUtils::yamlMapToVariant( doc ).toMap(); + m_emergency = m_maybe_emergency + && m_configurationMap.contains( EMERGENCY ) + && m_configurationMap[ EMERGENCY ].toBool(); return; } else @@ -291,10 +296,9 @@ Module::initFrom( const QVariantMap& moduleDescriptor ) { m_name = moduleDescriptor.value( "name" ).toString(); - auto em = QStringLiteral( "emergency" ); - if ( moduleDescriptor.contains( em ) ) + if ( moduleDescriptor.contains( EMERGENCY ) ) { - m_emergency = moduleDescriptor[ em ].toBool(); + m_maybe_emergency = moduleDescriptor[ EMERGENCY ].toBool(); } } diff --git a/src/libcalamaresui/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h index 219902b17..4fd0020f8 100644 --- a/src/libcalamaresui/modulesystem/Module.h +++ b/src/libcalamaresui/modulesystem/Module.h @@ -185,7 +185,8 @@ protected: QVariantMap m_configurationMap; bool m_loaded = false; - bool m_emergency = false; + bool m_emergency = false; // Based on module and local config + bool m_maybe_emergency = false; // Based on the module.desc private: void loadConfigurationFile( const QString& configFileName ); //throws YAML::Exception diff --git a/src/modules/README.md b/src/modules/README.md index 4b1d8ef2f..bd6cd4e37 100644 --- a/src/modules/README.md +++ b/src/modules/README.md @@ -145,3 +145,9 @@ processing continues. Use the EMERGENCY keyword in the CMake description of a C++ module to generate a suitable `module.desc`. + +A module that is marked as an emergency module in its module.desc +must **also** set the *emergency* key to *true* in its configuration file. +If it does not, the module is not considered to be an emergency module +after all (this is so that you can have modules that have several +instances, only some of which are actually needed for emergencies. From 8387d5d81f38e046bb58a79fadaa138854af3d20 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 10:20:07 -0400 Subject: [PATCH 67/68] [libcalamares] Allow emergency jobs Any job can be an emergency job; emergency modules spawn emergency jobs (but conversely, a non-emergency module can spawn an emergency job explicitly). --- src/libcalamares/Job.h | 7 +++++++ src/libcalamaresui/ExecutionViewStep.cpp | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/Job.h b/src/libcalamares/Job.h index 6063633b8..040ead6ad 100644 --- a/src/libcalamares/Job.h +++ b/src/libcalamares/Job.h @@ -66,8 +66,15 @@ public: virtual QString prettyDescription() const; virtual QString prettyStatusMessage() const; virtual JobResult exec() = 0; + + bool isEmergency() const { return m_emergency; } + void setEmergency( bool e ) { m_emergency = e; } + signals: void progress( qreal percent ); + +private: + bool m_emergency = false; }; } // namespace Calamares diff --git a/src/libcalamaresui/ExecutionViewStep.cpp b/src/libcalamaresui/ExecutionViewStep.cpp index 109bd1384..b505102a4 100644 --- a/src/libcalamaresui/ExecutionViewStep.cpp +++ b/src/libcalamaresui/ExecutionViewStep.cpp @@ -21,6 +21,7 @@ #include #include "Branding.h" +#include "Job.h" #include "JobQueue.h" #include "modulesystem/Module.h" #include "modulesystem/ModuleManager.h" @@ -142,7 +143,15 @@ ExecutionViewStep::onActivate() Calamares::Module* module = Calamares::ModuleManager::instance() ->moduleInstance( instanceKey ); if ( module ) - queue->enqueue( module->jobs() ); + { + auto jl = module->jobs(); + if ( module->isEmergency() ) + { + for( auto& j : jl ) + j->setEmergency( true ); + } + queue->enqueue( jl ); + } } queue->start(); From 264d135776c327de05e74a0b3134c495c82e29e0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 15 Jun 2018 11:45:02 -0400 Subject: [PATCH 68/68] [libcalamares] Run emergency jobs - After a failure, skip non-emergency jobs. - After running all emergency jobs, then emit failure message. - In log, distinguish emergency and non-emergency jobs. --- src/libcalamares/JobQueue.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index 339fd8457..b3d42d8f9 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -50,22 +50,36 @@ public: void run() override { + bool anyFailed = false; + QString message; + QString details; + m_jobIndex = 0; for( auto job : m_jobs ) { + if ( anyFailed && !job->isEmergency() ) + { + cDebug() << "Skipping non-emergency job" << job->prettyName(); + continue; + } + emitProgress(); - cDebug() << "Starting job" << job->prettyName(); + cDebug() << "Starting" << ( anyFailed ? "EMERGENCY JOB" : "job" ) << job->prettyName(); connect( job.data(), &Job::progress, this, &JobThread::emitProgress ); JobResult result = job->exec(); - if ( !result ) + if ( !anyFailed && !result ) { - emitFailed( result.message(), result.details() ); - emitFinished(); - return; + anyFailed = true; + message = result.message(); + details = result.details(); } - ++m_jobIndex; + if ( !anyFailed ) + ++m_jobIndex; } - emitProgress(); + if ( anyFailed ) + emitFailed( message, details ); + else + emitProgress(); emitFinished(); }