From dcf93bd5e809bbd71e6a2b50970f745cbf6d3e25 Mon Sep 17 00:00:00 2001 From: S Murphy Date: Sun, 9 Jan 2022 21:32:25 +0000 Subject: [PATCH 01/11] Added option to specify SSID is hidden. --- OptionsPopup.qml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/OptionsPopup.qml b/OptionsPopup.qml index 1899dfc..5bcf13e 100644 --- a/OptionsPopup.qml +++ b/OptionsPopup.qml @@ -278,6 +278,13 @@ Popup { } } + CheckBox { + id: chkWifiSSIDHidden + Layout.columnSpan: 2 + text: qsTr("Hidden SSID") + checked: false + } + Text { text: qsTr("Password:") color: parent.enabled ? (fieldWifiPassword.indicateError ? "red" : "black") : "grey" @@ -461,6 +468,7 @@ Popup { } if ('wifiSSID' in settings) { fieldWifiSSID.text = settings.wifiSSID + chkWifiSSIDHidden.checked = settings.wifiSSIDHidden chkShowPassword.checked = false fieldWifiPassword.text = settings.wifiPassword fieldWifiCountry.currentIndex = fieldWifiCountry.find(settings.wifiCountry) @@ -647,6 +655,9 @@ Popup { wpaconfig += "ap_scan=1\n\n" wpaconfig += "update_config=1\n" wpaconfig += "network={\n" + if (chkWifiSSIDHidden.checked) { + wpaconfig += "\tscan_ssid=1\n" + } wpaconfig += "\tssid=\""+fieldWifiSSID.text+"\"\n" var cryptedPsk = fieldWifiPassword.text.length == 64 ? fieldWifiPassword.text : imageWriter.pbkdf2(fieldWifiPassword.text, fieldWifiSSID.text) wpaconfig += "\tpsk="+cryptedPsk+"\n" @@ -670,6 +681,9 @@ Popup { cloudinitnetwork += " access-points:\n" cloudinitnetwork += " \""+fieldWifiSSID.text+"\":\n" cloudinitnetwork += " password: \""+cryptedPsk+"\"\n" + if (chkWifiSSIDHidden.checked) { + cloudinitnetwork += " hidden: true\n" + } /* FIXME: setting wifi country code broken on Ubuntu For unknown reasons udev does not trigger setregdomain automatically and as a result @@ -744,6 +758,7 @@ Popup { } if (chkWifi.checked) { settings.wifiSSID = fieldWifiSSID.text + settings.wifiSSIDHidden = chkWifiSSIDHidden.checked settings.wifiPassword = fieldWifiPassword.text settings.wifiCountry = fieldWifiCountry.editText } From ba5a27d1542e0dbd922e04044de6dc59523a45bd Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Thu, 20 Jan 2022 17:23:47 +0100 Subject: [PATCH 02/11] Change advanced settings button - Change image to button - Add option to randomize OS list entries --- icons/ic_cog_40px.svg | 1 - icons/ic_cog_red.svg | 13 +++++++++++ main.qml | 51 ++++++++++++++++++++++++++++++++++--------- qml.qrc | 1 + 4 files changed, 55 insertions(+), 11 deletions(-) delete mode 100644 icons/ic_cog_40px.svg create mode 100644 icons/ic_cog_red.svg diff --git a/icons/ic_cog_40px.svg b/icons/ic_cog_40px.svg deleted file mode 100644 index c8c447b..0000000 --- a/icons/ic_cog_40px.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/icons/ic_cog_red.svg b/icons/ic_cog_red.svg new file mode 100644 index 0000000..6b868f6 --- /dev/null +++ b/icons/ic_cog_red.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/main.qml b/main.qml index 490c9a2..73ed314 100644 --- a/main.qml +++ b/main.qml @@ -255,16 +255,22 @@ ApplicationWindow { font.family: roboto.name Accessible.onPressAction: clicked() } - Image { - id: customizebutton - source: "icons/ic_cog_40px.svg" - visible: false - MouseArea { - anchors.fill: parent - onClicked: { - optionspopup.openPopup() - } + Button { + Layout.bottomMargin: 25 + padding: 5 + id: customizebutton + onClicked: { + optionspopup.openPopup() + } + Material.background: "#ffffff" + visible: false + Accessible.description: qsTr("Select this button to access advanced settings") + Accessible.onPressAction: clicked() + + contentItem: Image { + source: "icons/ic_cog_red.svg" + fillMode: Image.PreserveAspectFit } } } @@ -1051,6 +1057,29 @@ ApplicationWindow { progressText.text = qsTr("Finalizing...") } + function shuffle(arr) { + for (var i = 0; i < arr.length - 1; i++) { + var j = i + Math.floor(Math.random() * (arr.length - i)); + + var t = arr[j]; + arr[j] = arr[i]; + arr[i] = t; + } + } + + function checkForRandom(list) { + for (var i in list) { + var entry = list[i] + + if ("subitems" in entry) { + checkForRandom(entry["subitems"]) + if ("random" in entry && entry["random"]) { + shuffle(entry["subitems"]) + } + } + } + } + function oslistFromJson(o) { var lang_country = Qt.locale().name if ("os_list_"+lang_country in o) { @@ -1068,7 +1097,9 @@ ApplicationWindow { return false } - return o["os_list"] + var oslist = o["os_list"] + checkForRandom(oslist) + return oslist } function selectNamedOS(name, collection) diff --git a/qml.qrc b/qml.qrc index 89364b9..76390f7 100644 --- a/qml.qrc +++ b/qml.qrc @@ -30,5 +30,6 @@ icons/ic_info_12px.png icons/ic_cog_40px.svg keymap-layouts.txt + icons/ic_cog_red.svg From 83513733ef0963ef7ea64c9efeec84479f97639a Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Thu, 20 Jan 2022 17:24:25 +0100 Subject: [PATCH 03/11] Advanced options: allow username and password to be set without ssh - Allow username and password to be set separate to SSH. Does enforce password to be changed if SSH is enabled without public key authentication. - cloud-init: apt: disable date/time checks --- OptionsPopup.qml | 140 +++++++++++++++++++++++++++-------------------- 1 file changed, 81 insertions(+), 59 deletions(-) diff --git a/OptionsPopup.qml b/OptionsPopup.qml index 5bcf13e..c463784 100644 --- a/OptionsPopup.qml +++ b/OptionsPopup.qml @@ -153,71 +153,18 @@ Popup { ColumnLayout { enabled: chkSSH.checked Layout.leftMargin: 40 - spacing: -5 - - GridLayout { - columns: 2 - columnSpacing: 10 - rowSpacing: -5 - - Text { - text: qsTr("Set username:") - color: parent.enabled ? (fieldUserName.indicateError ? "red" : "black") : "grey" - } - TextField { - id: fieldUserName - text: "pi" - Layout.minimumWidth: 200 - property bool indicateError: false - - onTextEdited: { - indicateError = false - } - } - } + spacing: -10 RadioButton { id: radioPasswordAuthentication text: qsTr("Use password authentication") onCheckedChanged: { if (checked) { + chkSetUser.checked = true fieldUserPassword.forceActiveFocus() } } } - - GridLayout { - Layout.leftMargin: 40 - columns: 2 - columnSpacing: 10 - rowSpacing: -5 - enabled: radioPasswordAuthentication.checked - - Text { - text: qsTr("Set password for '%1' user:").arg(fieldUserName.text) - color: parent.enabled ? (fieldUserPassword.indicateError ? "red" : "black") : "grey" - } - TextField { - id: fieldUserPassword - echoMode: TextInput.Password - Layout.minimumWidth: 200 - property bool alreadyCrypted: false - property bool indicateError: false - - onTextEdited: { - if (alreadyCrypted) { - /* User is trying to edit saved - (crypted) password, clear field */ - alreadyCrypted = false - clear() - } - if (indicateError) { - indicateError = false - } - } - } - } - RadioButton { id: radioPubKeyAuthentication text: qsTr("Allow public-key authentication only") @@ -245,6 +192,67 @@ Popup { } } + CheckBox { + id: chkSetUser + text: qsTr("Set username and password") + onCheckedChanged: { + if (!checked && chkSSH.checked && radioPasswordAuthentication.checked) { + checked = true; + } + } + } + + ColumnLayout { + enabled: chkSetUser.checked + Layout.leftMargin: 40 + spacing: -5 + + GridLayout { + columns: 2 + columnSpacing: 10 + rowSpacing: -5 + + Text { + text: qsTr("Username:") + color: parent.enabled ? (fieldUserName.indicateError ? "red" : "black") : "grey" + } + TextField { + id: fieldUserName + text: "pi" + Layout.minimumWidth: 200 + property bool indicateError: false + + onTextEdited: { + indicateError = false + } + } + + Text { + text: qsTr("Password:") + color: parent.enabled ? (fieldUserPassword.indicateError ? "red" : "black") : "grey" + } + TextField { + id: fieldUserPassword + echoMode: TextInput.Password + Layout.minimumWidth: 200 + property bool alreadyCrypted: false + property bool indicateError: false + + onTextEdited: { + if (alreadyCrypted) { + /* User is trying to edit saved + (crypted) password, clear field */ + alreadyCrypted = false + clear() + } + if (indicateError) { + indicateError = false + } + } + } + } + } + CheckBox { id: chkWifi text: qsTr("Configure wifi") @@ -457,9 +465,11 @@ Popup { fieldUserPassword.alreadyCrypted = true chkSSH.checked = true radioPasswordAuthentication.checked = true + chkSetUser.checked = true } if ('sshUserName' in settings) { fieldUserName.text = settings.sshUserName + chkSetUser.checked = true } if ('sshAuthorizedKeys' in settings) { fieldPublicKey.text = settings.sshAuthorizedKeys @@ -589,9 +599,16 @@ Popup { addCloudInit("manage_etc_hosts: true") addCloudInit("packages:") addCloudInit("- avahi-daemon") + /* Disable date/time checks in apt as NTP may not have synchronized yet when installing packages */ + addCloudInit("apt:") + addCloudInit(" conf: |") + addCloudInit(" Acquire {") + addCloudInit(" Check-Date \"false\";") + addCloudInit(" };") addCloudInit("") } - if (chkSSH.checked) { + + if (chkSSH.checked || chkSetUser.checked) { // First user may not be called 'pi' on all distributions, so look username up addFirstRun("FIRSTUSER=`getent passwd 1000 | cut -d: -f1`"); addFirstRun("FIRSTUSERHOME=`getent passwd 1000 | cut -d: -f6`") @@ -601,16 +618,19 @@ Popup { addCloudInit(" groups: users,adm,dialout,audio,netdev,video,plugdev,cdrom,games,input,gpio,spi,i2c,render,sudo") addCloudInit(" shell: /bin/bash") - if (radioPasswordAuthentication.checked) { + if (chkSetUser.checked) { var cryptedPassword = fieldUserPassword.alreadyCrypted ? fieldUserPassword.text : imageWriter.crypt(fieldUserPassword.text) addFirstRun("echo \"$FIRSTUSER:\""+escapeshellarg(cryptedPassword)+" | chpasswd -e") addCloudInit(" lock_passwd: false") addCloudInit(" passwd: "+cryptedPassword) addCloudInit("") + } + if (chkSSH.checked && radioPasswordAuthentication.checked) { addCloudInit("ssh_pwauth: true") } - if (radioPubKeyAuthentication.checked) { + + if (chkSSH.checked && radioPubKeyAuthentication.checked) { var pubkey = fieldPublicKey.text var pubkeyArr = pubkey.split("\n") @@ -646,7 +666,9 @@ Popup { addFirstRun(" fi") addFirstRun("fi") - addFirstRun("systemctl enable ssh") + if (chkSSH.checked) { + addFirstRun("systemctl enable ssh") + } addCloudInit("") } if (chkWifi.checked) { From 566450c728e0ee3c0388cb916aceb67bf9b78f28 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Thu, 20 Jan 2022 17:31:34 +0100 Subject: [PATCH 04/11] qml.qrc remove old cog icon --- qml.qrc | 1 - 1 file changed, 1 deletion(-) diff --git a/qml.qrc b/qml.qrc index 76390f7..26ab390 100644 --- a/qml.qrc +++ b/qml.qrc @@ -28,7 +28,6 @@ UseSavedSettingsPopup.qml icons/ic_info_16px.png icons/ic_info_12px.png - icons/ic_cog_40px.svg keymap-layouts.txt icons/ic_cog_red.svg From 243da4825771573000e6c132b5ee4f760e5229c1 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Fri, 21 Jan 2022 17:25:32 +0100 Subject: [PATCH 05/11] cloud-init: reorder ssh/user creation --- OptionsPopup.qml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/OptionsPopup.qml b/OptionsPopup.qml index c463784..efdbe9f 100644 --- a/OptionsPopup.qml +++ b/OptionsPopup.qml @@ -624,10 +624,6 @@ Popup { addCloudInit(" lock_passwd: false") addCloudInit(" passwd: "+cryptedPassword) - addCloudInit("") - } - if (chkSSH.checked && radioPasswordAuthentication.checked) { - addCloudInit("ssh_pwauth: true") } if (chkSSH.checked && radioPubKeyAuthentication.checked) { @@ -640,7 +636,9 @@ Popup { } addFirstRun("echo 'PasswordAuthentication no' >>/etc/ssh/sshd_config") - addCloudInit(" lock_passwd: true") + if (!chkSetUser.checked) { + addCloudInit(" lock_passwd: true") + } addCloudInit(" ssh_authorized_keys:") for (var i=0; i Date: Fri, 21 Jan 2022 17:31:52 +0100 Subject: [PATCH 06/11] Embedded: reboot immeadetely upon success --- main.qml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/main.qml b/main.qml index 73ed314..6ea3945 100644 --- a/main.qml +++ b/main.qml @@ -1024,8 +1024,11 @@ ApplicationWindow { msgpopup.title = qsTr("Write Successful") if (osbutton.text === qsTr("Erase")) msgpopup.text = qsTr("%1 has been erased

You can now remove the SD card from the reader").arg(dstbutton.text) - else if (imageWriter.isEmbeddedMode()) - msgpopup.text = qsTr("%1 has been written to %2").arg(osbutton.text).arg(dstbutton.text) + else if (imageWriter.isEmbeddedMode()) { + //msgpopup.text = qsTr("%1 has been written to %2").arg(osbutton.text).arg(dstbutton.text) + /* Just reboot to the installed OS */ + Qt.quit() + } else msgpopup.text = qsTr("%1 has been written to %2

You can now remove the SD card from the reader").arg(osbutton.text).arg(dstbutton.text) if (imageWriter.isEmbeddedMode()) { From 28148be1a0efd977654a92aa0ba5b98f8f68c05a Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Fri, 21 Jan 2022 17:32:07 +0100 Subject: [PATCH 07/11] Update translations --- i18n/rpi-imager_ca.ts | 201 +++++++++++++++++++++-------------------- i18n/rpi-imager_de.ts | 199 ++++++++++++++++++++++------------------- i18n/rpi-imager_en.ts | 201 +++++++++++++++++++++-------------------- i18n/rpi-imager_fr.ts | 201 +++++++++++++++++++++-------------------- i18n/rpi-imager_it.ts | 201 +++++++++++++++++++++-------------------- i18n/rpi-imager_nl.ts | 203 +++++++++++++++++++++++------------------- i18n/rpi-imager_sk.ts | 201 +++++++++++++++++++++-------------------- i18n/rpi-imager_sl.ts | 197 ++++++++++++++++++++++------------------ i18n/rpi-imager_tr.ts | 201 +++++++++++++++++++++-------------------- i18n/rpi-imager_zh.ts | 199 ++++++++++++++++++++++------------------- 10 files changed, 1069 insertions(+), 935 deletions(-) diff --git a/i18n/rpi-imager_ca.ts b/i18n/rpi-imager_ca.ts index 2d78c6d..5be75b0 100644 --- a/i18n/rpi-imager_ca.ts +++ b/i18n/rpi-imager_ca.ts @@ -9,23 +9,23 @@ S'ha produït un error en escriure a l'emmagatzematge - - + + Error extracting archive: %1 S'ha produït un error en extreure l'arxiu: %1 - + Error mounting FAT32 partition S'ha produït un error en muntar la partició FAT32 - + Operating system did not mount FAT32 partition El sistema operatiu no ha muntat la partició FAT32 - + Error changing to directory '%1' S'ha produït un error en canviar al directori «%1» @@ -78,92 +78,92 @@ S'ha produït un error en esborrar amb zeros l'«MBR». - + Error reading from storage.<br>SD card may be broken. S'ha produït un error en llegir l'emmagatzematge.<br>És possible que la targeta SD estigui malmesa. - + Waiting for FAT partition to be mounted S'està esperant que la partició FAT s'hagi muntat - + Error mounting FAT32 partition S'ha produït un error en muntar la partició FAT32 - + Operating system did not mount FAT32 partition El sistema operatiu no ha muntat la partició FAT32 - + Unable to customize. File '%1' does not exist. - + Customizing image S'està personalitzant la imatge - + Error creating firstrun.sh on FAT partition S'ha produït un error en crear el fitxer «firstrun.sh» a la partició FAT - + Error writing to config.txt on FAT partition S'ha produït un error en escriure al fitxer «config.txt» a la partició FAT - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition S'ha produït un error en escriure al fitxer «cmdline.txt» a la partició FAT - + Access denied error while writing file to disk. S'ha produït un error d'accés denegat en escriure el fitxer al disc. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. L'opció «Controla l'accés de la carpeta» de la Seguretat del Windows sembla que està activada. Afegiu els executables «rpi-imager.exe» i «fat32format.exe» a la llista d'aplicacions permeses i torneu-ho a provar. - + Error writing file to disk S'ha produït un error en escriure el fitxer al disc - + Error downloading: %1 S'ha produït un error en la baixada: %1 - + Error writing to storage (while flushing) S'ha produït un error en escriure a l'emmagatzematge (procés: Flushing) - + Error writing to storage (while fsync) S'ha produït un error en escriure a l'emmagatzematge (procés: fsync) - + Download corrupt. Hash does not match La baixada està corrompuda. El «hash» no coincideix @@ -183,12 +183,12 @@ S'està iniciant la baixada - + Error writing first block (partition table) S'ha produït un error en escriure el primer bloc (taula de particions) - + Verifying write failed. Contents of SD card is different from what was written to it. Ha fallat la verificació de l'escriptura. El contingut de la targeta SD és diferent del que s'hi ha escrit. @@ -355,12 +355,7 @@ Activa el protocol SSH - - Set username: - - - - + Use password authentication Utilitza l'autenticació de contrasenya @@ -369,7 +364,7 @@ Establiu la contrasenya per a l'usuari «pi»: - + Allow public-key authentication only Permet només l'autenticació de claus públiques @@ -378,82 +373,93 @@ Establiu «authorized_keys» per a l'usuari «pi»: - - Set password for '%1' user: - - - - + Set authorized_keys for '%1': - + Configure wifi Configura la wifi - + SSID: SSID: - + + Password: Contrasenya - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password Mostra la contrasenya - + Wifi country: País de la wifi: - + Set locale settings Estableix la configuració regional - + Time zone: Fus horari: - + Keyboard layout: Disposició del teclat - + Skip first-run wizard Omet l'assistent de la primera arrencada - + Persistent settings Configuració persistent - + Play sound when finished Fes un so quan acabi - + Eject media when finished Expulsa el mitjà quan acabi - + Enable telemetry Activa la telemetria - + SAVE DESA @@ -503,7 +509,7 @@ - + Operating System Sistema operatiu @@ -519,13 +525,13 @@ - + Storage Emmagatzematge - + CHOOSE STORAGE ESCULL L'EMMAGATZEMATGE @@ -546,7 +552,7 @@ - + Cancelling... S'està cancel·lant... @@ -557,54 +563,59 @@ - - + + Finalizing... S'està finalitzant... - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - - + + Erase Esborra - + Format card as FAT32 Formata la targeta com a FAT32 - + Use custom Utilitza una personalitzada - + Select a custom .img from your computer Selecciona una imatge .img personalitzada de l'ordinador - + Back Enrere @@ -614,134 +625,134 @@ Seleccioneu aquest botó per a canviar la destinació del dispositiu d'emmagatzematge - + Go back to main menu Torna al menú principal - + Released: %1 Llançat el: %1 - + Cached on your computer A la memòria cau de l'ordinador - + Local file Fitxer local - + Online - %1 GB download Baixada en línia de: %1 GB - - + + Mounted as %1 Muntat com a %1 - + [WRITE PROTECTED] [PROTEGIT CONTRA ESCRIPTURA] - + Are you sure you want to quit? N'esteu segur que voleu sortir? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? El Raspberry Pi Imager està ocupat.<br>N'esteu segur que voleu sortir? - + Warning Avís - + Preparing to write... S'està preparant per a escriure... - + Update available Hi ha una actualització disponible - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? Hi ha una nova versió de l'Imager disponible.<br>Voleu visitar el lloc web per baixar-la? - + Writing... %1% S'està escrivint... %1% - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? Totes les dades existents a «%1» s'esborraràn.<br>Esteu segur que voleu continuar? - + Error downloading OS list from Internet S'ha produït un error en baixar la llista dels SO d'internet - + Verifying... %1% S'està verificant... %1% - + Preparing to write... (%1) S'està preparant per escriure... (%1) - + Error S'ha produït un error - + Write Successful S'ha escrit amb èxit - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader S'ha esborrat <b>%1</b><br><br>Ja podeu retirar la targeta SD del lector - + <b>%1</b> has been written to <b>%2</b> S'ha escrit el «<b>%1</b>» a <b>%2</b> - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader S'ha escrit el «<b>%1</b>» a <b>%2</b><br><br>Ja podeu retirar la targeta SD del lector - + Error parsing os_list.json S'ha produït un error en analitzar os_lists.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Connecteu una memòria USB que contingui primer imatges.<br>Les imatges s'han de trobar a la carpeta arrel de la memòria. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. La targeta SD està protegida contra escriptura.<br>Accioneu l'interruptor del costat esquerre de la targeta SD per tal que quedi posicionat a la part superior i torneu-ho a provar. diff --git a/i18n/rpi-imager_de.ts b/i18n/rpi-imager_de.ts index 0fe9935..fce7fab 100644 --- a/i18n/rpi-imager_de.ts +++ b/i18n/rpi-imager_de.ts @@ -9,23 +9,23 @@ Fehler beim Schreiben auf den Speicher - - + + Error extracting archive: %1 Fehler beim Entpacken des Archivs: %1 - + Error mounting FAT32 partition Fehler beim Einbinden der FAT32-Partition - + Operating system did not mount FAT32 partition Das Betriebssystem band die FAT32-Partition nicht ein - + Error changing to directory '%1' Fehler beim Wechseln in den Ordner "%1" @@ -96,67 +96,67 @@ Bitte stellen Sie sicher, dass 'Raspberry Pi Imager' Zugriff auf &apos Download wird gestartet - + Error reading from storage.<br>SD card may be broken. Fehler beim Lesen vom Speicher.<br>Die SD-Karte könnte defekt sein. - + Waiting for FAT partition to be mounted Warten auf das Mounten der FAT-Partition - + Error mounting FAT32 partition Fehler beim Einbinden der FAT32-Partition - + Operating system did not mount FAT32 partition Das Betriebssystem band die FAT32-Partition nicht ein - + Unable to customize. File '%1' does not exist. - + Customizing image Image modifizieren - + Error creating firstrun.sh on FAT partition Fehler beim Erstellen von firstrun.sh auf der FAT-Partition - + Error writing to config.txt on FAT partition Fehler beim Schreiben in config.txt auf der FAT-Partition - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition Fehler beim Schreiben in cmdline.txt auf der FAT-Partition - + Access denied error while writing file to disk. Zugriff verweigert-Fehler beim Schreiben auf den Datenträger. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. I don't use Windows either. What is "Controlled Folder Access" in the German version? @@ -164,37 +164,37 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- - + Error writing file to disk Fehler beim Schreiben der Datei auf den Speicher - + Error downloading: %1 Fehler beim Herunterladen: %1 - + Download corrupt. Hash does not match Download beschädigt. Prüfsumme stimmt nicht überein - + Error writing to storage (while flushing) Fehler beim Schreiben auf den Speicher (während flushing) - + Error writing to storage (while fsync) Fehler beim Schreiben auf den Speicher (während fsync) - + Error writing first block (partition table) Fehler beim Schreiben auf des ersten Blocks (Partitionstabelle) - + Verifying write failed. Contents of SD card is different from what was written to it. Verifizierung fehlgeschlagen. Der Inhalt der SD-Karte weicht von dem Inhalt ab, der geschrieben werden sollte. @@ -361,97 +361,107 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- SSH aktivieren - - Set username: - - - - + Use password authentication Password zur Authentifizierung verwenden - + Allow public-key authentication only Authentifizierung via Public-Key - Set password for '%1' user: - Passwort für '%1': + Passwort für '%1': - + Set authorized_keys for '%1': authorized_keys für '%1': - + Configure wifi Wifi enrichten - + SSID: SSID: - + + Password: Passwort: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password Passwort anzeigen - + Wifi country: Wifi-Land: - + Set locale settings Spracheinstellungen festlegen - + Time zone: Zeitzone: - + Keyboard layout: Tastaturlayout: - + Skip first-run wizard Einrichtungsassistent überspringen - + Persistent settings Dauerhafte Einstellugen - + Play sound when finished Tonsignal nach Beenden abspielen - + Eject media when finished Medien nach Beenden auswerfen - + Enable telemetry Telemetry aktivieren - + SAVE SPEICHERN @@ -501,7 +511,7 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- - + Operating System Betriebssystem @@ -517,13 +527,13 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- - + Storage SD-Karte - + CHOOSE STORAGE SD-KARTE WÄHLEN @@ -548,7 +558,7 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- - + Cancelling... Abbrechen... @@ -559,34 +569,34 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- - - + + Finalizing... Finalisieren... - - + + Erase Löschen - + Format card as FAT32 Karte als FAT32 formatieren - + Use custom Eigenes Image - + Select a custom .img from your computer Wählen Sie eine eigene .img-Datei von Ihrem Computer - + Back Zurück @@ -596,154 +606,159 @@ Controlled Folder Access scheint aktiviert zu sein. Bitte fügen Sie sowohl rpi- Klicken Sie auf diesen Knopf, um das Zeil-Speichermedium zu ändern - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - + Go back to main menu Zurück zum Hauptmenü - + Released: %1 Veröffentlicht: %1 - + Cached on your computer Auf Ihrem Computer zwischengespeichert - + Local file Lokale Datei - + Online - %1 GB download Online - %1 GB Download - - + + Mounted as %1 Als %1 eingebunden - + [WRITE PROTECTED] [SCHREIBGESCHÜTZT] - + Are you sure you want to quit? Sind Sie sicher, dass Sie beenden möchten? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Der Raspberry Pi Imager ist noch beschäftigt. <br>Möchten Sie wirklich beenden? - + Warning Warnung - + Preparing to write... Schreiben wird vorbereitet... - + Update available Update verfügbar - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? Eine neuere Version von Imager ist verfügbar. <br>Möchten Sie die Webseite besuchen, um das Update herunterzuladen? - + Writing... %1% Schreiben... %1% - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? Alle vorhandenen Daten auf '%1' werden gelöscht.<br>Möchten Sie wirklich fortfahren? - + Error downloading OS list from Internet Fehler beim Herunterladen der Betriebssystemsliste aus dem Internet - + Verifying... %1% Verifizierung... %1% - + Preparing to write... (%1) Schreiben wird vorbereitet... (%1) - + Error Fehler - + Write Successful Schreiben erfolgreich - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1</b> wurde geleert<br><br>Sie können die SD-Karte nun aus dem Lesegerät entfernen - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> wurde auf<b>%2</b> geschrieben - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> wurde auf<b>%2</b> geschrieben<br><br>Sie können die SD-Karte nun aus dem Lesegerät entfernen - + Error parsing os_list.json Fehler beim Parsen von os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Verbinden Sie zuerst einen USB-Stick mit Images.<br>Die Images müssen sich im Wurzelverzeichnes des USB-Sticks befinden. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. Die Speicherkarte ist schreibgeschützt.<br>Schieben Sie den Schutzschalter auf der linken Seite nach oben, und versuchen Sie es erneut. diff --git a/i18n/rpi-imager_en.ts b/i18n/rpi-imager_en.ts index 083abb2..5d3c85a 100644 --- a/i18n/rpi-imager_en.ts +++ b/i18n/rpi-imager_en.ts @@ -9,23 +9,23 @@ - - + + Error extracting archive: %1 - + Error mounting FAT32 partition - + Operating system did not mount FAT32 partition - + Error changing to directory '%1' @@ -78,92 +78,92 @@ - + Error reading from storage.<br>SD card may be broken. - + Waiting for FAT partition to be mounted - + Error mounting FAT32 partition - + Operating system did not mount FAT32 partition - + Unable to customize. File '%1' does not exist. - + Customizing image - + Error creating firstrun.sh on FAT partition - + Error writing to config.txt on FAT partition - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition - + Access denied error while writing file to disk. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. - + Error writing file to disk - + Error downloading: %1 - + Error writing to storage (while flushing) - + Error writing to storage (while fsync) - + Download corrupt. Hash does not match @@ -183,12 +183,12 @@ - + Error writing first block (partition table) - + Verifying write failed. Contents of SD card is different from what was written to it. @@ -355,97 +355,103 @@ - - Set username: - - - - + Use password authentication - + Allow public-key authentication only - - Set password for '%1' user: - - - - + Set authorized_keys for '%1': - + Configure wifi - + SSID: - + + Password: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password - + Wifi country: - + Set locale settings - + Time zone: - + Keyboard layout: - + Skip first-run wizard - + Persistent settings - + Play sound when finished - + Eject media when finished - + Enable telemetry - + SAVE @@ -495,7 +501,7 @@ - + Operating System @@ -511,13 +517,13 @@ - + Storage - + CHOOSE STORAGE @@ -538,7 +544,7 @@ - + Cancelling... @@ -549,54 +555,59 @@ - - + + Finalizing... - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - - + + Erase - + Format card as FAT32 - + Use custom - + Select a custom .img from your computer - + Back @@ -606,134 +617,134 @@ - + Go back to main menu - + Released: %1 - + Cached on your computer - + Local file - + Online - %1 GB download - - + + Mounted as %1 - + [WRITE PROTECTED] - + Are you sure you want to quit? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? - + Warning - + Preparing to write... - + Update available - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? - + Writing... %1% - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? - + Error downloading OS list from Internet - + Verifying... %1% - + Preparing to write... (%1) - + Error - + Write Successful - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader - + <b>%1</b> has been written to <b>%2</b> - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader - + Error parsing os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. diff --git a/i18n/rpi-imager_fr.ts b/i18n/rpi-imager_fr.ts index 2dc1bd3..9573bc3 100644 --- a/i18n/rpi-imager_fr.ts +++ b/i18n/rpi-imager_fr.ts @@ -9,23 +9,23 @@ Erreur d'écriture dans le stockage - - + + Error extracting archive: %1 Erreur lors de l'extraction de l'archive : %1 - + Error mounting FAT32 partition Erreur lors du montage de la partition FAT32 - + Operating system did not mount FAT32 partition Le système d'exploitation n'a pas monté la partition FAT32 - + Error changing to directory '%1' Erreur lors du changement du répertoire '%1' @@ -78,92 +78,92 @@ Erreur d'écriture lors du formatage du MBR - + Error reading from storage.<br>SD card may be broken. Erreur de lecture du stockage.<br>La carte SD pourrait être défectueuse. - + Waiting for FAT partition to be mounted - + Error mounting FAT32 partition Erreur lors du montage de la partition FAT32 - + Operating system did not mount FAT32 partition Le système d'exploitation n'a pas monté la partition FAT32 - + Unable to customize. File '%1' does not exist. - + Customizing image - + Error creating firstrun.sh on FAT partition - + Error writing to config.txt on FAT partition - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition - + Access denied error while writing file to disk. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. - + Error writing file to disk - + Error downloading: %1 - + Error writing to storage (while flushing) Erreur d'écriture dans le stockage (lors du formatage) - + Error writing to storage (while fsync) Erreur d'écriture dans le stockage (pendant l'exécution de fsync) - + Download corrupt. Hash does not match Téléchargement corrompu. La signature ne correspond pas @@ -183,12 +183,12 @@ - + Error writing first block (partition table) Erreur lors de l'écriture du premier bloc (table de partion) - + Verifying write failed. Contents of SD card is different from what was written to it. La vérification de l'écriture à échoué. Le contenu de la carte SD est différent de ce qui y a été écrit. @@ -355,97 +355,103 @@ - - Set username: - - - - + Use password authentication - + Allow public-key authentication only - - Set password for '%1' user: - - - - + Set authorized_keys for '%1': - + Configure wifi - + SSID: - + + Password: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password - + Wifi country: - + Set locale settings - + Time zone: - + Keyboard layout: - + Skip first-run wizard - + Persistent settings - + Play sound when finished - + Eject media when finished - + Enable telemetry - + SAVE @@ -495,7 +501,7 @@ - + Operating System Système d'exploitation @@ -511,13 +517,13 @@ - + Storage Stockage - + CHOOSE STORAGE CHOISISSEZ LE STOCKAGE @@ -542,7 +548,7 @@ - + Cancelling... Annulation... @@ -553,34 +559,34 @@ - - + + Finalizing... Finalisation... - - + + Erase Formatter - + Format card as FAT32 Formater la carte SD en FAT32 - + Use custom Utiliser image personnalisée - + Select a custom .img from your computer Sélectionnez une image disque personnalisée (.img) depuis votre ordinateur - + Back Retour @@ -590,154 +596,159 @@ - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - + Go back to main menu Retour au menu principal - + Released: %1 Sorti le : %1 - + Cached on your computer Mis en cache sur votre ordinateur - + Local file Fichier local - + Online - %1 GB download En ligne - %1 GO téléchargé - - + + Mounted as %1 Mounté à %1 - + [WRITE PROTECTED] - + Are you sure you want to quit? Êtes-vous sûr de vouloir quitter ? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? - + Preparing to write... - + Update available - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? - + Preparing to write... (%1) - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> a bien été écrit sur <b>%2</b> - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. - + Warning Attention - + Writing... %1% Écriture... %1% - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? Toutes les données sur le stockage '%1' vont être supprimées.<br>Êtes-vous sûr de vouloir continuer ? - + Error downloading OS list from Internet Erreur lors du téléchargement de la liste des systèmes d'exploitation à partir d'Internet - + Verifying... %1% Vérification... %1% - + Error Erreur - + Write Successful Écriture réussie - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1</b> a bien été formaté<br><br>Vous pouvez retirer la carte SD du lecteur - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> a bien été écrit sur <b>%2</b><br><br>Vous pouvez retirer la carte SD du lecteur - + Error parsing os_list.json Erreur de lecture du fichier os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Connectez en premier une clé USB contenant les images.<br>Les images doivent se trouver dans le dossier racine de la clé USB. diff --git a/i18n/rpi-imager_it.ts b/i18n/rpi-imager_it.ts index 9c62690..3176781 100644 --- a/i18n/rpi-imager_it.ts +++ b/i18n/rpi-imager_it.ts @@ -9,23 +9,23 @@ Errore scrittura nello storage - - + + Error extracting archive: %1 Errore estrazione archivio: %1 - + Error mounting FAT32 partition Errore montaggio partizione FAT32 - + Operating system did not mount FAT32 partition Il sistema operativo non ha montato la partizione FAT32 - + Error changing to directory '%1' Errore passaggio a cartella '%1' @@ -78,93 +78,93 @@ Errore scrittura durante azzeramento MBR - + Error reading from storage.<br>SD card may be broken. Errore lettura dallo storage.<br>La scheda SD potrebbe essere danneggiata. - + Waiting for FAT partition to be mounted Attesa montaggio partizione FAT - + Error mounting FAT32 partition Errore montaggio partizione FAT32 - + Operating system did not mount FAT32 partition Il sistema operativo non ha montato la partizione FAT32 - + Unable to customize. File '%1' does not exist. - + Customizing image Personalizza immagine - + Error creating firstrun.sh on FAT partition Errore creazione firstrun.sh nella partizione FAT - + Error writing to config.txt on FAT partition Errore scrittura in config.txt nella partizione FAT - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition Errore scrittura in cmdline.txt nella partizione FAT - + Access denied error while writing file to disk. Errore accesso negato durante la scrittura del file su disco. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. Sembra sia abilitato l'accesso controllato alle cartelle. Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all'elenco delle app consentite e riprova. - + Error writing file to disk Errore scrittura file su disco - + Error downloading: %1 Errore download: %1 - + Error writing to storage (while flushing) Errore scrittura nello storage (durante flushing) - + Error writing to storage (while fsync) Errore scrittura nello storage (durante fsync) - + Download corrupt. Hash does not match Download corrotto.<br>L'hash non corrisponde @@ -184,12 +184,12 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos avvio download - + Error writing first block (partition table) Errore scrittura primo blocco (tabella partizione) - + Verifying write failed. Contents of SD card is different from what was written to it. Verifica scrittura fallita.<br>Il contenuto della SD è differente da quello che vi è stato scritto. @@ -356,12 +356,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Abilita SSH - - Set username: - - - - + Use password authentication Usa password autenticazione @@ -370,7 +365,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Imposta password utente 'pi': - + Allow public-key authentication only Permetti solo autenticazione con chiave pubblica @@ -379,82 +374,93 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Imposta authorized_key per 'pi': - - Set password for '%1' user: - - - - + Set authorized_keys for '%1': - + Configure wifi Configura WiFi - + SSID: SSID: - + + Password: Password: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password Visualizza password - + Wifi country: Nazione WiFi: - + Set locale settings Imposta configurazioni locali - + Time zone: Fuso orario: - + Keyboard layout: Layout tastiera: - + Skip first-run wizard Salta procedura prima impostazione - + Persistent settings Impostazioni persistenti - + Play sound when finished Riproduci suono quando completato - + Eject media when finished Espelli media quando completato - + Enable telemetry Abilita telemetria - + SAVE SALVA @@ -504,7 +510,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos - + Operating System Sistema operativo @@ -520,13 +526,13 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos - + Storage Scheda SD - + CHOOSE STORAGE SCEGLI SCHEDA SD @@ -551,7 +557,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos - + Cancelling... Annullamento... @@ -562,34 +568,34 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos - - + + Finalizing... Finalizzazione... - - + + Erase Cancella - + Format card as FAT32 Formatta scheda come FAT32 - + Use custom Usa immagine personalizzata - + Select a custom .img from your computer Seleziona un file immagine .img personalizzato - + Back Indietro @@ -599,154 +605,159 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Seleziona questo pulsante per modificare il dispositivo archiviazione destinazione - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - + Go back to main menu Torna al menu principale - + Released: %1 Rilasciato: %1 - + Cached on your computer Memorizzato temporaneamente nel computer - + Local file File locale - + Online - %1 GB download Online - Download %1 GB - - + + Mounted as %1 Montato come %1 - + [WRITE PROTECTED] [PROTETTA DA SCRITTURA] - + Are you sure you want to quit? Sei sicuro di voler uscire? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Raspberry Pi Image è occupato.<br>Sei sicuro di voler uscire? - + Warning Attenzione - + Preparing to write... Preparazione scrittura... - + Update available Aggiornamento disponibile - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? È disponibile una nuova versione di Imager.<br>Vuoi visitare il sito web per scaricare la nuova versione? - + Writing... %1% Scrittura...%1 - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? Tutti i dati esistenti in '%1' verranno eliminati.<br>Sei sicuro di voler continuare? - + Error downloading OS list from Internet Errore durante download elenco SO da internet - + Verifying... %1% Verifica...%1 - + Preparing to write... (%1) Preparazione scrittura... (%1) - + Error Errore - + Write Successful Scrittura completata senza errori - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader Azzeramento di <b>%1</b> completato<br><br>Ora puoi rimuovere la scheda SD dal lettore - + <b>%1</b> has been written to <b>%2</b> Scrittura di <b>%1</b> in <b>%2</b>completata - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader Scrittura di <b>%1</b> in <b>%2</b>completata<br><br>Ora puoi rimuovere la scheda SD dal lettore - + Error parsing os_list.json Errore durante analisi file os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Prima collega una chiavetta USB contenente il file immagine.<br>Il file immagine deve essere presente nella cartella principale della chiavetta USB. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. La scheda SD è protetta da scrittura.<br>Sposta verso l'alto l'interruttore LOCK sul lato sinistro della scheda SD e riprova. diff --git a/i18n/rpi-imager_nl.ts b/i18n/rpi-imager_nl.ts index 1925e72..e5c8dd8 100644 --- a/i18n/rpi-imager_nl.ts +++ b/i18n/rpi-imager_nl.ts @@ -9,23 +9,23 @@ Fout bij schrijven naar opslag - - + + Error extracting archive: %1 Fout bij uitpakken archiefbestand: %1 - + Error mounting FAT32 partition Fout bij mounten FAT32 partitie - + Operating system did not mount FAT32 partition Besturingssysteem heeft FAT32 partitie niet gemount - + Error changing to directory '%1' Fout bij openen map '%1' @@ -78,92 +78,92 @@ Fout bij wissen MBR - + Error reading from storage.<br>SD card may be broken. Fout bij lezen van SD kaart.<br>Kaart is mogelijk defect. - + Waiting for FAT partition to be mounted Wachten op mounten FAT partitie - + Error mounting FAT32 partition Fout bij mounten FAT32 partitie - + Operating system did not mount FAT32 partition Besturingssysteem heeft FAT32 partitie niet gemount - + Unable to customize. File '%1' does not exist. Fout bij aanpassen besturingssysteem. Bestand '%1' bestaat niet. - + Customizing image Bezig met aanpassen besturingssysteem - + Error creating firstrun.sh on FAT partition Fout bij het aanmaken van firstrun.sh op FAT partitie - + Error writing to config.txt on FAT partition Fout bij schrijven naar config.txt op FAT partitie - + Error creating user-data cloudinit file on FAT partition Fout bij aanmaken user-data cloudinit bestand op FAT partitie - + Error creating network-config cloudinit file on FAT partition Fout bij aanmaken network-config cloudinit bestand op FAT paritie - + Error writing to cmdline.txt on FAT partition Fout bij schrijven cmdline.txt op FAT partitie - + Access denied error while writing file to disk. Toegang geweigerd bij het schrijven naar opslag. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. Controller Folder Access lijkt aan te staan. Gelieve zowel rpi-imager.exe als fat32format.exe toe te voegen aan de lijst met uitsluitingen en het nogmaals te proberen. - + Error writing file to disk Fout bij schrijven naar opslag - + Error downloading: %1 Fout bij downloaden: %1 - + Error writing to storage (while flushing) Fout bij schrijven naar opslag (tijdens flushen) - + Error writing to storage (while fsync) Fout bij schrijven naar opslag (tijdens fsync) - + Download corrupt. Hash does not match Download corrupt. Hash komt niet overeen @@ -183,12 +183,12 @@ beginnen met downloaden - + Error writing first block (partition table) Fout bij schrijven naar eerste deel van kaart (partitie tabel) - + Verifying write failed. Contents of SD card is different from what was written to it. Verificatie mislukt. De gegevens die op de SD kaart staan wijken af van wat er naar geschreven is. @@ -235,7 +235,7 @@ Partitioning did not create expected FAT partition %1 - + Partitionering heeft geen FAT partitie %1 aangemaakt @@ -355,97 +355,111 @@ SSH inschakelen - Set username: - Gebruikersnaam: + Gebruikersnaam: - + Use password authentication Gebruik wachtwoord authenticatie - + Allow public-key authentication only Gebruik uitsluitend public-key authenticatie - Set password for '%1' user: - Wachtwoord voor '%1' gebruiker: + Wachtwoord voor '%1' gebruiker: - + Set authorized_keys for '%1': authorized_keys voor '%1': - + Configure wifi Wifi instellen - + SSID: SSID: - + + Password: Wachtwoord: - + + Set username and password + Gebruikersnaam en wachtwoord instellen + + + + Username: + Gebruikersnaam: + + + + Hidden SSID + Verborgen SSID + + + Show password Wachtwoord laten zien - + Wifi country: Wifi land: - + Set locale settings Regio instellingen - + Time zone: Tijdzone: - + Keyboard layout: Toetsenbord indeling: - + Skip first-run wizard Eerste gebruik wizard overslaan - + Persistent settings Permanente instellingen - + Play sound when finished Geluid afspelen zodra voltooid - + Eject media when finished Media uitwerpen zodra voltooid - + Enable telemetry Telemetry inschakelen - + SAVE OPSLAAN @@ -494,18 +508,18 @@ Raspberry Pi Imager v%1 - + Are you sure you want to quit? Weet u zeker dat u wilt afsluiten? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Raspberry Pi Imager is nog niet klaar.<br>Weet u zeker dat u wilt afsluiten? - + Operating System Besturingssysteem @@ -516,13 +530,13 @@ - + Storage Opslagapparaat - + CHOOSE STORAGE KIES OPSLAGAPPARAAT @@ -532,7 +546,7 @@ SCHRIJF - + Writing... %1% Schrijven... %1% @@ -557,7 +571,7 @@ - + Cancelling... Annuleren... @@ -568,119 +582,124 @@ - - + + Finalizing... Afronden... - - Using custom repository: %1 - + + Select this button to access advanced settings + Klik op deze knop om de geadvanceerde instellingen te openen - + + Using custom repository: %1 + Custom repository in gebruik: %1 + + + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists Toetsenbord navigatie: <tab> ga naar volgende knop <spatie> druk op knop/selecteer item <pijltje omhoog/omlaag> ga omhoog/omlaag in lijsten - + Language: Taal: - + Keyboard: Toetsenbord: - - + + Erase Wissen - + Format card as FAT32 Formatteer kaart als FAT32 - + Use custom Gebruik eigen bestand - + Select a custom .img from your computer Selecteer een eigen .img bestand - + Local file Lokaal bestand - + [WRITE PROTECTED] [ALLEEN LEZEN] - + Warning Waarschuwing - + Preparing to write... Voorbereiden... - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? Alle bestaande gegevens op '%1' zullen verwijderd worden.<br>Weet u zeker dat u door wilt gaan? - + Update available Update beschikbaar - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? Er is een nieuwere versie van Imager beschikbaar.<br>Wilt u de website bezoeken om deze te downloaden? - + Preparing to write... (%1) Voorbereiden... (%1) - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1</b> is gewist<br><br>U kunt nu de SD kaart uit de lezer halen - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> is geschreven naar <b>%2</b> - + Error parsing os_list.json Fout bij parsen os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Sluit eerst een USB stick met images aan.<br>De images moeten in de hoofdmap van de USB stick staan. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. SD kaart is tegen schrijven beveiligd.<br>Druk het schuifje aan de linkerkant van de SD kaart omhoog, en probeer nogmaals. - + Back Terug @@ -690,54 +709,54 @@ Klik op deze knop om het opslagapparaat te wijzigen - + Go back to main menu Terug naar hoofdmenu - + Released: %1 Release datum: %1 - + Cached on your computer Opgeslagen op computer - + Online - %1 GB download Online %1 GB download - - + + Mounted as %1 Mounted op %1 - + Error downloading OS list from Internet Fout bij downloaden van lijst met besturingssystemen - + Verifying... %1% Verifiëren... %1% - + Error Fout - + Write Successful Klaar met schrijven - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> is geschreven naar <b>%2</b><br><br>U kunt nu de SD kaart uit de lezer halen diff --git a/i18n/rpi-imager_sk.ts b/i18n/rpi-imager_sk.ts index 61fbf85..62edfa7 100644 --- a/i18n/rpi-imager_sk.ts +++ b/i18n/rpi-imager_sk.ts @@ -9,23 +9,23 @@ Chyba pri zápise na úložisko - - + + Error extracting archive: %1 Chyba pri rozbaľovaní archívu: %1 - + Error mounting FAT32 partition Chyba pri pripájaní partície FAT32 - + Operating system did not mount FAT32 partition Operačný systém nepripojil partíciu FAT32 - + Error changing to directory '%1' Chyba pri vstupe do adresára '%1' @@ -78,92 +78,92 @@ Chyba zápisu pri prepisovaní MBR nulami - + Error reading from storage.<br>SD card may be broken. Chyba pri čítaní z úložiska.<br>Karta SD môže byť poškodená. - + Waiting for FAT partition to be mounted Čakám a pripojenie FAT partície - + Error mounting FAT32 partition Chyba pri pripájaní partície FAT32 - + Operating system did not mount FAT32 partition Operačný systém nepripojil partíciu FAT32 - + Unable to customize. File '%1' does not exist. - + Customizing image Upravujem obraz - + Error creating firstrun.sh on FAT partition Pri vytváraní firstrun.sh na partícii FAT nastala chyba - + Error writing to config.txt on FAT partition Chyba pri zápise config.txt na FAT partícii - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition Chyba pri zápise cmdline.txt na FAT partícii - + Access denied error while writing file to disk. Odopretý prístup pri zápise súboru na disk. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. Vyzerá, že máte zapnutý Controlled Folder Access. Pridajte, prosím, rpi-imager.exe a fat32format.exe do zoznamu povolených aplikácií a skúste to znovu. - + Error writing file to disk Chyba pri zápise na disk - + Error downloading: %1 Chyba pri sťahovaní: %1 - + Error writing to storage (while flushing) Chyba pri zápise na úložisko (počas volania flush) - + Error writing to storage (while fsync) Chyba pri zápise na úložisko (počas volania fsync) - + Download corrupt. Hash does not match Stiahnutý súbor je poškodený. Kontrolný súčet nesedí @@ -183,12 +183,12 @@ začína sťahovanie - + Error writing first block (partition table) Chyba pri zápise prvého bloku (tabuľky partícií) - + Verifying write failed. Contents of SD card is different from what was written to it. Overovanie zápisu skončilo s chybou. Obsah karty SD sa nezhoduje s tým, čo na ňu bolo zapísané. @@ -355,12 +355,7 @@ Povoliť SSH - - Set username: - - - - + Use password authentication Použiť heslo na prihlásenie @@ -369,7 +364,7 @@ Nastaviť heslo pre používateľa 'pi': - + Allow public-key authentication only Povoliť iba prihlásenie pomocou verejného kľúča @@ -378,82 +373,93 @@ Nastaviť authorized_keys pre 'pi': - - Set password for '%1' user: - - - - + Set authorized_keys for '%1': - + Configure wifi Nastaviť wifi - + SSID: SSID: - + + Password: Heslo: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password Zobraziť heslo - + Wifi country: Wifi krajina: - + Set locale settings Nastavenia miestnych zvyklostí - + Time zone: Časové pásmo: - + Keyboard layout: Rozloženie klávesnice: - + Skip first-run wizard Vypnúť sprievodcu prvým spustením - + Persistent settings Trvalé nastavenia - + Play sound when finished Po skončení prehrať zvuk - + Eject media when finished Po skončení vysunúť médium - + Enable telemetry Povoliť telemetriu - + SAVE ULOŽIŤ @@ -502,18 +508,18 @@ Raspberry Pi Imager v%1 - + Are you sure you want to quit? Skutočne chcete skončiť? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Raspberry Pi Imager ešte neskončil.<br>Ste si istý, že chcete skončiť? - + Operating System Operačný systém @@ -524,13 +530,13 @@ - + Storage SD karta - + CHOOSE STORAGE VYBERTE SD KARTU @@ -540,7 +546,7 @@ ZÁPIS - + Writing... %1% Zapisujem... %1% @@ -565,7 +571,7 @@ - + Cancelling... Ruším operáciu... @@ -576,119 +582,124 @@ - - + + Finalizing... Ukončujem... - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - - + + Erase Vymazať - + Format card as FAT32 Formátovať kartu ako FAT32 - + Use custom Použiť vlastný - + Select a custom .img from your computer Použiť vlastný súbor img. na Vašom počítači - + Local file Miestny súbor - + [WRITE PROTECTED] [OCHRANA PROTI ZÁPISU] - + Warning Varovanie - + Preparing to write... Príprava zápisu... - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? Všetky existujúce dáta na '%1' budú odstránené.<br>Naozaj chcete pokračovať? - + Update available Je dostupná aktualizácia - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? Je dostupná nová verzia Imagera.<br>Chcete prejsť na webovú stránku s programom a stiahnuť ho? - + Preparing to write... (%1) Príprava zápisu... (%1) - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1</b> bola vymazaná<br><br>Teraz môžete odstrániť SD kartu z čítačky - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> bol zapísaný na <b>%2</b> - + Error parsing os_list.json Chyba pri spracovaní os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Najprv pripojte USB kľúč, ktorý obsahuje diskové obrazy.<br>Obrazy sa musia nachádzať v koreňovom priečinku USB kľúča. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. SD karta je chránená proti zápisu.<br>Presuňte prepínač zámku na ľavej strane karty smerom hore a skúste to znova. - + Back Späť @@ -698,54 +709,54 @@ Pre zmenu cieľového zariadenia úložiska kliknite na toto tlačidlo - + Go back to main menu Prejsť do hlavnej ponuky - + Released: %1 Vydané: %1 - + Cached on your computer Uložené na počítači - + Online - %1 GB download Online %1 GB na stiahnutie - - + + Mounted as %1 Pripojená ako %1 - + Error downloading OS list from Internet Chyba pri sťahovaní zoznamu OS z Internetu - + Verifying... %1% Overujem... %1% - + Error Chyba - + Write Successful Zápis úspešne skončil - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> bol zapísaný na <b>%2</b><br><br>Teraz môžete odstrániť SD kartu z čítačky diff --git a/i18n/rpi-imager_sl.ts b/i18n/rpi-imager_sl.ts index 2bfc605..29e7bfe 100644 --- a/i18n/rpi-imager_sl.ts +++ b/i18n/rpi-imager_sl.ts @@ -9,23 +9,23 @@ Napaka pisanja na disk - - + + Error extracting archive: %1 Napaka razširjanja arhiva: %1 - + Error mounting FAT32 partition Napaka priklopa FAT32 particije - + Operating system did not mount FAT32 partition Operacijski sistem, ni priklopil FAT32 particije - + Error changing to directory '%1' Napaka spremembe direktorija '%1%' @@ -78,92 +78,92 @@ Napaka zapisovanja med ničenjem MBR - + Error reading from storage.<br>SD card may be broken. Napaka branja iz diska.<br>SD kartica/disk je mogoče v okvari. - + Waiting for FAT partition to be mounted Čakanje na priklop FAT particije - + Error mounting FAT32 partition Napaka priklopa FAT32 particije - + Operating system did not mount FAT32 partition Operacijski sisitem ni priklopil FAT32 particijo - + Unable to customize. File '%1' does not exist. Prilagoditev ni možna. Datoteka '%1' ne obstaja. - + Customizing image Prilagajanje slike diska - + Error creating firstrun.sh on FAT partition Napaka ustvarjanja firstrun.sh na FAT particiji - + Error writing to config.txt on FAT partition Napaka pisanja v config.txt na FAT particiji - + Error creating user-data cloudinit file on FAT partition Napaka ustvarjanja user-data cloudinit datoteke na FAT particiji - + Error creating network-config cloudinit file on FAT partition Napaka ustvarjanja network-config cloudinit datoteke na FAT particiji - + Error writing to cmdline.txt on FAT partition Napaka pisanja v cmdline.txt na FAT particiji - + Access denied error while writing file to disk. Napaka zavrnitve dostopa med pisanjem na disk. - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. Izgleda, da jevklopljen nadzor dostopa do map. Prosim dodajte oba rpi-imager.exe in fat32format.exe na seznam dovoljenih aplikacij in poizkusite znova. - + Error writing file to disk Napaka pisanja na disk - + Error downloading: %1 Napaka prenosa:%1 - + Error writing to storage (while flushing) Napaka pisanja na disk (med brisanjem) - + Error writing to storage (while fsync) Napaka pisanja na disk (med fsync) - + Download corrupt. Hash does not match Prenos poškodovan.Hash se ne ujema @@ -183,12 +183,12 @@ Začetek prenosa - + Error writing first block (partition table) Napaka pisanja prvega bloka (particijska tabela) - + Verifying write failed. Contents of SD card is different from what was written to it. Preverjanje pisanja spodletelo. Vsebina diska je drugačna, od tega, kar je bilo nanj zapisano. @@ -355,97 +355,111 @@ Omogoči SSH - Set username: - Nastavi uporabniško ime: + Nastavi uporabniško ime: - + Use password authentication Uporabi geslo za avtentifikacijo - + Allow public-key authentication only Dovoli le avtentifikacijo z javnim kjučem - Set password for '%1' user: - Nastavi geslo za uporabnika '%1': + Nastavi geslo za uporabnika '%1': - + Set authorized_keys for '%1': Nastavi authorized_keys za '%1': - + Configure wifi Nastavi WiFi - + SSID: SSID: - + + Password: Geslo: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password Pokaži geslo - + Wifi country: WiFi je v državi: - + Set locale settings Nastavitve jezika - + Time zone: Časovni pas: - + Keyboard layout: Razporeditev tipkovnice: - + Skip first-run wizard Preskoči čarovnika prvega zagona - + Persistent settings Trajne nastavitve - + Play sound when finished Zaigraj zvok, ko končaš - + Eject media when finished Izvrzi medij, ko končaš - + Enable telemetry Omogoči telemetrijo - + SAVE SHRANI @@ -495,7 +509,7 @@ - + Operating System Operacijski Sistem @@ -511,13 +525,13 @@ - + Storage SD kartica ali USB disk - + CHOOSE STORAGE IZBERI DISK @@ -538,7 +552,7 @@ - + Cancelling... Prekinjam... @@ -549,54 +563,59 @@ - - + + Finalizing... Zakjučujem... - + + Select this button to access advanced settings + + + + Using custom repository: %1 Uporabljam repozitorij po meri: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists Navigacija s tipkovnico: <tab> pojdi na naslednji gumb <preslednica> pritisni gumb/izberi element <puščica gor/dol> premakni gor/dol po seznamu - + Language: Jezik: - + Keyboard: Tipkovnica: - - + + Erase Odstrani - + Format card as FAT32 Formatiraj disk v FAT32 - + Use custom Uporabi drugo - + Select a custom .img from your computer Izberite drug .img iz vašega računalnika - + Back Nazaj @@ -606,134 +625,134 @@ Uporabite ta gumb za spremembo ciljnega diska - + Go back to main menu Pojdi nazaj na glavni meni - + Released: %1 Izdano: %1 - + Cached on your computer Predpolnjeno na vaš računalnik - + Local file Lokalna datoteka - + Online - %1 GB download Iz spleta - %1 GB prenos - - + + Mounted as %1 Priklopljen kot %1 - + [WRITE PROTECTED] [ZAŠČITENO PRED PISANJEM] - + Are you sure you want to quit? A ste prepričani, da želite končat? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Raspberry Pi Imager je še vedno zaposlen.<br>A ste prepričani, da želite končati? - + Warning Opozorilo - + Preparing to write... Priprava na pisanje... - + Update available Posodobitev na voljo - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? Na voljo je nova verzija tega programa. <br>Želite obiskati spletno stran za prenos? - + Writing... %1% Pišem...%1% - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? VSI obstoječi podatki na '%1' bodo izbrisani.<br>A ste prepričani, da želite nadaljevati? - + Error downloading OS list from Internet Napaka prenosa seznama OS iz interneta - + Verifying... %1% Preverjam... %1% - + Preparing to write... (%1) Priprava na zapisovanje... (%1) - + Error Napaka - + Write Successful Zapisovanje uspešno - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1</b> je pobrisan<br><br>Sedaj lahko odstranite SD kartico iz čitalca oz iztaknete USB disk - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> je zapisan na <b>%2</b> - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> je zapisan na <b>%2</b><br><br>Sedaj lahko odstranite SD kartico iz čitalca oz iztaknete USB disk - + Error parsing os_list.json Napaka procesiranja os_list.json - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Najprej prikopite USB disk, ki vsebuje slike diskov.<br>Slike diskov se morajo nahajati v korenski mapi USB diska. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. SD kartica je zaščitena pred pisanjem.<br>Premaknite stikalo zaklepanja, na levi strani kartice in poizkusite znova. diff --git a/i18n/rpi-imager_tr.ts b/i18n/rpi-imager_tr.ts index 5807144..5de2e8b 100644 --- a/i18n/rpi-imager_tr.ts +++ b/i18n/rpi-imager_tr.ts @@ -9,23 +9,23 @@ Depolama birimine yazma hatası - - + + Error extracting archive: %1 Arşiv çıkarılırken hata oluştu: %1 - + Error mounting FAT32 partition FAT32 bölümü bağlanırken hata oluştu - + Operating system did not mount FAT32 partition İşletim sistemi FAT32 bölümünü bağlamadı - + Error changing to directory '%1' Dizin değiştirirken hata oluştu '%1' @@ -78,92 +78,92 @@ MBR sıfırlanırken yazma hatası - + Error reading from storage.<br>SD card may be broken. Depolamadan okuma hatası.<br>SD kart arızalı olabilir. - + Waiting for FAT partition to be mounted - + Error mounting FAT32 partition FAT32 bölümü bağlanırken hata oluştu - + Operating system did not mount FAT32 partition İşletim sistemi FAT32 bölümünü bağlamadı - + Unable to customize. File '%1' does not exist. - + Customizing image - + Error creating firstrun.sh on FAT partition - + Error writing to config.txt on FAT partition - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition - + Access denied error while writing file to disk. Dosyayı diske yazarken erişim reddedildi hatası - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. Kontrollü Klasör Erişimi etkin görünüyor. Lütfen izin verilen uygulamalar listesine hem rpi-imager.exe'yi hem de fat32format.exe'yi ekleyin ve tekrar deneyin. - + Error writing file to disk Dosyayı diske yazma hatası - + Error downloading: %1 İndirilirken hata oluştu: %1 - + Error writing to storage (while flushing) Depolama alanına yazma hatası (flushing sırasında) - + Error writing to storage (while fsync) Depoya yazma hatası (fsync sırasında) - + Download corrupt. Hash does not match İndirme bozuk. Hash eşleşmiyor @@ -183,12 +183,12 @@ indirmeye başlanıyor - + Error writing first block (partition table) İlk bloğu yazma hatası (bölüm tablosu) - + Verifying write failed. Contents of SD card is different from what was written to it. Yazma doğrulanamadı. SD kartın içeriği, üzerine yazılandan farklı. @@ -355,97 +355,103 @@ - - Set username: - - - - + Use password authentication - + Allow public-key authentication only - - Set password for '%1' user: - - - - + Set authorized_keys for '%1': - + Configure wifi - + SSID: - + + Password: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password - + Wifi country: - + Set locale settings - + Time zone: - + Keyboard layout: - + Skip first-run wizard - + Persistent settings - + Play sound when finished - + Eject media when finished - + Enable telemetry - + SAVE @@ -495,7 +501,7 @@ - + Operating System İşletim sistemi @@ -511,13 +517,13 @@ - + Storage SD Kart - + CHOOSE STORAGE SD KART SEÇİN @@ -542,7 +548,7 @@ - + Cancelling... İptal ediliyor... @@ -553,34 +559,34 @@ - - + + Finalizing... Bitiriliyor... - - + + Erase Sil - + Format card as FAT32 Kartı FAT32 olarak biçimlendir - + Use custom Özel imaj kullan - + Select a custom .img from your computer Bilgisayarınızdan özel bir .img seçin - + Back Geri @@ -590,155 +596,160 @@ - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - + Go back to main menu Ana menüye dön - + Released: %1 Yayın: %1 - + Cached on your computer Bilgisayarınızda önbelleğe alındı - + Local file Yerel dosya - + Online - %1 GB download Çevrimiçi -%1 GB indir - - + + Mounted as %1 %1 olarak bağlandı. - + [WRITE PROTECTED] [YAZMA KORUMALI] - + Are you sure you want to quit? Çıkmak istediğine emin misin? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Raspberry Pi Imager hala meşgul.<br>Çıkmak istediğinizden emin misiniz? - + Warning Uyarı - + Preparing to write... Yazdırmaya hazırlanıyor... - + Update available Güncelleme bulunuyor - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? Görüntüleyicinin daha yeni bir sürümü var. <br> İndirmek için web sitesini ziyaret etmek ister misiniz? - + Writing... %1% Yazılıyor... %1% - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? '%1' üzerindeki mevcut tüm veriler silinecek.<br>Devam etmek istediğinizden emin misiniz? - + Error downloading OS list from Internet İnternetten işletim sistemi listesi indirilirken hata oluştu - + Verifying... %1% Doğrulanıyor... %1% - + Preparing to write... (%1) Yazdırmaya hazırlanıyor... (%1) - + Error Hata - + Write Successful Başarılı Yazıldı - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1</b> silindi <br><br> Artık SD kartı okuyucudan çıkarabilirsiniz - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> <b>%2</b><br><br> üzerine yazıldı - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> <b>%2</b><br><br> üzerine yazıldı. Artık SD kartı okuyucudan çıkarabilirsiniz - + Error parsing os_list.json os_list.json ayrıştırma hatası - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. Önce görüntüler içeren bir USB bellek bağlayın.<br> Görüntüler USB belleğin kök klasöründe bulunmalıdır. - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. SD kart yazma korumalı. <br> Kartın sol tarafındaki kilit anahtarını yukarı itin ve tekrar deneyin. diff --git a/i18n/rpi-imager_zh.ts b/i18n/rpi-imager_zh.ts index c61edc6..39cab09 100644 --- a/i18n/rpi-imager_zh.ts +++ b/i18n/rpi-imager_zh.ts @@ -9,23 +9,23 @@ 写入时出错 - - + + Error extracting archive: %1 解压 %1 时出错 - + Error mounting FAT32 partition 挂载FAT32分区错误 - + Operating system did not mount FAT32 partition 操作系统未能挂载FAT32分区 - + Error changing to directory '%1' 进入文件夹 “%1” 错误 @@ -78,92 +78,92 @@ 将MBR清零时写入错误 - + Error reading from storage.<br>SD card may be broken. 从存储读取数据时错误。<br>SD卡可能已损坏。 - + Waiting for FAT partition to be mounted 等待FAT分区挂载 - + Error mounting FAT32 partition 挂载FAT32分区错误 - + Operating system did not mount FAT32 partition 操作系统未能挂载FAT32分区 - + Unable to customize. File '%1' does not exist. - + Customizing image 使用自定义镜像 - + Error creating firstrun.sh on FAT partition 在FAT分区上创建firstrun.sh脚本文件时出错 - + Error writing to config.txt on FAT partition 在FAT分区上写入config.txt时出错 - + Error creating user-data cloudinit file on FAT partition - + Error creating network-config cloudinit file on FAT partition - + Error writing to cmdline.txt on FAT partition 在FAT分区上写入cmdline.txt时出错 - + Access denied error while writing file to disk. 将文件写入磁盘时访问被拒绝。 - + Controlled Folder Access seems to be enabled. Please add both rpi-imager.exe and fat32format.exe to the list of allowed apps and try again. 受控文件夹访问似乎已启用。 请将rpi-imager.exe和fat32format.exe都添加到允许的应用程序列表中,然后重试。 - + Error writing file to disk 将文件写入磁盘时出错 - + Error downloading: %1 下载文件错误,已下载:%1 - + Error writing to storage (while flushing) 刷写存储时出错 - + Error writing to storage (while fsync) 在fsync时写入存储时出错 - + Download corrupt. Hash does not match 下载的文件损坏。 哈希值不匹配 @@ -183,12 +183,12 @@ 开始下载 - + Error writing first block (partition table) 写入第一个块(分区表)时出错 - + Verifying write failed. Contents of SD card is different from what was written to it. 验证写入失败。 SD卡的内容与写入的内容不同。 @@ -355,97 +355,107 @@ 开启SSH服务 - - Set username: - - - - + Use password authentication 使用密码登录 - + Allow public-key authentication only 只允许使用公匙登录 - Set password for '%1' user: - 设置'%1'用户的密码: + 设置'%1'用户的密码: - + Set authorized_keys for '%1': 设置%1用户的登录密匙: - + Configure wifi 配置WiFi - + SSID: 热点名: - + + Password: 密码: - + + Set username and password + + + + + Username: + + + + + Hidden SSID + + + + Show password 显示密码 - + Wifi country: WIFI国家: - + Set locale settings 语言设置 - + Time zone: 时区: - + Keyboard layout: 键盘布局: - + Skip first-run wizard 跳过首次启动向导 - + Persistent settings 永久设置 - + Play sound when finished 完成后播放提示音 - + Eject media when finished 完成后弹出磁盘 - + Enable telemetry 启用遥测 - + SAVE 保存 @@ -494,18 +504,18 @@ 树莓派镜像烧录器 v%1 - + Are you sure you want to quit? 你确定你要退出吗? - + Raspberry Pi Imager is still busy.<br>Are you sure you want to quit? Raspberry Pi Imager还未完成任务。<br>您确定要退出吗? - + Operating System 请选择需要写入的操作系统 @@ -516,13 +526,13 @@ - + Storage 储存卡 - + CHOOSE STORAGE 选择SD卡 @@ -537,7 +547,7 @@ 烧录 - + Writing... %1% 写入中...%1% @@ -562,7 +572,7 @@ - + Cancelling... 取消... @@ -573,146 +583,151 @@ - - + + Finalizing... 正在完成... - + + Select this button to access advanced settings + + + + Using custom repository: %1 - + Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Language: - + Keyboard: - - + + Erase 擦除 - + Format card as FAT32 将SD卡格式化为FAT32格式 - + Use custom 使用自定义镜像 - + Select a custom .img from your computer 使用下载的系统镜像文件烧录 - + Local file 本地文件 - + [WRITE PROTECTED] [写保护] - + Warning 警告 - + Preparing to write... 准备写入... - + All existing data on '%1' will be erased.<br>Are you sure you want to continue? '%1'上的所有现有数据将被删除。<br>确定要继续吗? - + Update available 检测到更新 - + There is a newer version of Imager available.<br>Would you like to visit the website to download it? 有较新版本的rpi-imager。<br>需要下载更新吗? - + Preparing to write... (%1) 写入中 (%1) - + <b>%1</b> has been erased<br><br>You can now remove the SD card from the reader <b>%1 </ b>已被删除<br> <br>您现在可以从读取器中取出SD卡 - + <b>%1</b> has been written to <b>%2</b> <b>%1</b> 已经成功烧录到 <b>%2</b> - + Error parsing os_list.json 解析 os_list.json 错误 - + Connect an USB stick containing images first.<br>The images must be located in the root folder of the USB stick. 连接包含镜像的U盘。<br>镜像必须位于U盘的根文件夹中。 - + SD card is write protected.<br>Push the lock switch on the left side of the card upwards, and try again. SD卡具有写保护。<br>尝试向上推SD卡的左侧的锁定开关,然后重试。 - + Back 返回 - + Go back to main menu 回到主页 - + Released: %1 发布时间:%1 - + Cached on your computer 缓存在本地磁盘里 - + Online - %1 GB download 需要下载:%1 GB - - + + Mounted as %1 挂载到:%1 上 @@ -725,27 +740,27 @@ 继续 - + Error downloading OS list from Internet 下载镜像列表错误 - + Verifying... %1% 验证文件中...%1% - + Error 错误 - + Write Successful 烧录成功 - + <b>%1</b> has been written to <b>%2</b><br><br>You can now remove the SD card from the reader <b>%1</b> 已经成功烧录到 <b>%2</b><br><br>上了,你可以卸载SD卡了 From 136c915dc04fe5c96e9292969f3c94f270f253e0 Mon Sep 17 00:00:00 2001 From: bovirus <1262554+bovirus@users.noreply.github.com> Date: Sat, 22 Jan 2022 16:10:46 +0100 Subject: [PATCH 08/11] Update italian language --- i18n/rpi-imager_it.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/i18n/rpi-imager_it.ts b/i18n/rpi-imager_it.ts index 3176781..00d289b 100644 --- a/i18n/rpi-imager_it.ts +++ b/i18n/rpi-imager_it.ts @@ -100,7 +100,7 @@ Unable to customize. File '%1' does not exist. - + Impossibile personalizzare. Il file '%1' non esiste. @@ -120,12 +120,12 @@ Error creating user-data cloudinit file on FAT partition - + Errore nel creare il file cloudinit dei dati utente nella partizione FAT Error creating network-config cloudinit file on FAT partition - + Errore durante la creazione del file network-config cloudinit nella partizione FAT @@ -236,7 +236,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Partitioning did not create expected FAT partition %1 - + Il partizionamento non ha creato la partizione FAT prevista %1 @@ -279,7 +279,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Would you like to prefill the wifi password from the system keychain? - + Vuoi precompilare la password WiFi usando il portachiavi di sistema? @@ -315,7 +315,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos QUIT - + ESCI @@ -376,7 +376,7 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Set authorized_keys for '%1': - + Imposta authorized_keys per '%1': @@ -397,17 +397,17 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Set username and password - + Imposta nome utente e password Username: - + Nome utente: Hidden SSID - + SSID nascosto @@ -607,27 +607,27 @@ Aggiungi sia 'rpi-imager.exe' che 'fat32format.exe' all&apos Select this button to access advanced settings - + Seleziona questo pulsante per accedere alle impostazioni avanzate Using custom repository: %1 - + Usa repository personalizzato: %1 Keyboard navigation: <tab> navigate to next button <space> press button/select item <arrow up/down> go up/down in lists - + Navigazione da tastiera: <tab> vai al prossimo pulsante <spazio> premi il pulsante/seleziona la voce <freccia su/giù> vai su/giù negli elenchi Language: - + Lingua: Keyboard: - + Tastiera: From 51a79c7229d1d0b5b11efcf9bd1377ba59b5eb4d Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Sun, 23 Jan 2022 16:37:05 +0100 Subject: [PATCH 09/11] Mac: set NSSupportsAutomaticGraphicsSwitching in plist Closes #325 --- mac/Info.plist.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mac/Info.plist.in b/mac/Info.plist.in index befcdf7..a50933d 100644 --- a/mac/Info.plist.in +++ b/mac/Info.plist.in @@ -32,5 +32,7 @@ NSPrincipalClass NSApplication + NSSupportsAutomaticGraphicsSwitching + From 10b50d5f8e38c41c62b55c6d070a7fe299450af2 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Sun, 23 Jan 2022 19:27:07 +0100 Subject: [PATCH 10/11] QRegExp -> QRegularExpression - Change QRegExp -> QRegularExpression. To drop dependency on legacy Qt5Compat module, if we upgrade to a later Qt version at some point. - Change some "for" constructs clang gives warnings about while we are at it. --- imagewriter.cpp | 57 +++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/imagewriter.cpp b/imagewriter.cpp index ae1de90..ac365f7 100644 --- a/imagewriter.cpp +++ b/imagewriter.cpp @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include #include @@ -89,9 +89,9 @@ ImageWriter::ImageWriter(QObject *parent) QFile f("/sys/bus/nvmem/devices/rmem0/nvmem"); if (f.exists() && f.open(f.ReadOnly)) { - QByteArrayList eepromSettings = f.readAll().split('\n'); + const QByteArrayList eepromSettings = f.readAll().split('\n'); f.close(); - for (QByteArray setting : eepromSettings) + for (const QByteArray &setting : eepromSettings) { if (setting.startsWith("IMAGER_REPO_URL=")) { @@ -149,14 +149,14 @@ ImageWriter::ImageWriter(QObject *parent) _settings.endGroup(); QDir dir(":/i18n", "rpi-imager_*.qm"); - QStringList transFiles = dir.entryList(); + const QStringList transFiles = dir.entryList(); QLocale currentLocale; QStringList localeComponents = currentLocale.name().split('_'); QString currentlangcode; if (!localeComponents.isEmpty()) currentlangcode = localeComponents.first(); - for (QString tf : transFiles) + for (const QString &tf : transFiles) { QString langcode = tf.mid(11, tf.length()-14); /* FIXME: we currently lack a font with support for Chinese characters in embedded mode */ @@ -728,12 +728,12 @@ bool ImageWriter::mountUsbSourceMedia() int devices = 0; #ifdef Q_OS_LINUX QDir dir("/sys/class/block"); - QStringList list = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + const QStringList list = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); if (!dir.exists("/media")) dir.mkdir("/media"); - for (auto devname : list) + for (const QString &devname : list) { if (!devname.startsWith("mmcblk0") && !QFile::symLinkTarget("/sys/class/block/"+devname).contains("/devices/virtual/")) { @@ -763,14 +763,14 @@ QByteArray ImageWriter::getUsbSourceOSlist() #ifdef Q_OS_LINUX QJsonArray oslist; QDir dir("/media"); - QStringList medialist = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + const QStringList medialist = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); QStringList namefilters = {"*.img", "*.zip", "*.gz", "*.xz", "*.zst"}; - for (auto devname : medialist) + for (const QString &devname : medialist) { QDir subdir("/media/"+devname); - QStringList files = subdir.entryList(namefilters, QDir::Files, QDir::Name); - for (auto file : files) + const QStringList files = subdir.entryList(namefilters, QDir::Files, QDir::Name); + for (const QString &file : files) { QString path = "/media/"+devname+"/"+file; QFileInfo fi(path); @@ -885,13 +885,14 @@ QString ImageWriter::getSSID() } else { - QRegExp rx(regexpstr); - QList outputlines = proc.readAll().replace('\r', "").split('\n'); + QRegularExpression rx(regexpstr); + const QList outputlines = proc.readAll().replace('\r', "").split('\n'); - for (QByteArray line : outputlines) { - if (rx.indexIn(line) != -1) + for (const QByteArray &line : outputlines) { + QRegularExpressionMatch match = rx.match(line); + if (match.hasMatch()) { - ssid = rx.cap(1); + ssid = match.captured(1); break; } } @@ -941,9 +942,11 @@ QString ImageWriter::getPSK(const QString &ssid) { QString xml = QString::fromWCharArray(xmlstr); qDebug() << "XML wifi profile:" << xml; - QRegExp rx("(.+)"); - if (rx.indexIn(xml) != -1) { - psk = rx.cap(1); + QRegularExpression rx("(.+)"); + QRegularExpressionMatch match = rx.match(xml); + + if (match.hasMatch()) { + psk = match.captured(1); } WlanFreeMemory(xmlstr); @@ -1061,7 +1064,8 @@ void ImageWriter::setSavedCustomizationSettings(const QVariantMap &map) { _settings.beginGroup("imagecustomization"); _settings.remove(""); - for (QString key : map.keys()) { + const QStringList keys = map.keys(); + for (const QString &key : keys) { _settings.setValue(key, map.value(key)); } _settings.endGroup(); @@ -1072,7 +1076,8 @@ QVariantMap ImageWriter::getSavedCustomizationSettings() QVariantMap result; _settings.beginGroup("imagecustomization"); - for (QString key : _settings.childKeys()) { + const QStringList keys = _settings.childKeys(); + for (const QString &key : keys) { result.insert(key, _settings.value(key)); } _settings.endGroup(); @@ -1189,13 +1194,15 @@ QString ImageWriter::detectPiKeyboard() if (!typenr) { QDir dir("/dev/input/by-id"); - QRegExp rx("RPI_Wired_Keyboard_([0-9]+)"); + QRegularExpression rx("RPI_Wired_Keyboard_([0-9]+)"); - for (QString fn : dir.entryList(QDir::Files)) + const QStringList entries = dir.entryList(QDir::Files); + for (const QString &fn : entries) { - if (rx.indexIn(fn) != -1) + QRegularExpressionMatch match = rx.match(fn); + if (match.hasMatch()) { - typenr = rx.cap(1).toUInt(); + typenr = match.captured(1).toUInt(); } } } From c17795c48eeed597b9e62e11ddc74a5557b8384b Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Sun, 23 Jan 2022 19:30:16 +0100 Subject: [PATCH 11/11] Allow nested subitems Fixes "Can't assign to existing role 'subitems' of different type" or hang (depending on Qt version) on using nested subitems. Keep nested subitems flattenend as json string in memory while not being used, to simplify dealing with ListElement expectation that all elements have the same data type, as well as QML/Ecmascript's memory management. --- debian/changelog | 7 ++++++- main.qml | 51 ++++++++++++++++++++++++++++++++++-------------- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1892f96..abde6e1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,12 +5,17 @@ rpi-imager (1.6.3) unstable; urgency=medium repository. Some heuristics are used with custom images from disk. * Advanced settings: add support for cloudinit format * Advanced settings: add support for specifying username + * Advanced settings: allow setting username and password + * Advanced settings: allow hidden wifi SSID + * Advanced settings: allow multi-line authorized_keys + * Retry on GnuTLS Recv errors * Some fixes to deal better with Linux distributions auto-mounting drives * Add Slovenija translation * Adds support for zstd + * Allow nested subitems entries - -- Floris Bos Thu, 09 Dec 2021 11:13:12 +0100 + -- Floris Bos Sun, 23 Jan 2022 16:39:46 +0100 rpi-imager (1.6.2) unstable; urgency=medium diff --git a/main.qml b/main.qml index 6ea3945..6b4fd20 100644 --- a/main.qml +++ b/main.qml @@ -478,7 +478,7 @@ ApplicationWindow { contains_multiple_files: false release_date: "" subitems_url: "internal://back" - subitems: [] + subitems_json: "" name: qsTr("Back") description: qsTr("Go back to main menu") tooltip: "" @@ -520,7 +520,7 @@ ApplicationWindow { contains_multiple_files: false release_date: "" subitems_url: "" - subitems: [] + subitems_json: "" name: qsTr("Erase") description: qsTr("Format card as FAT32") tooltip: "" @@ -632,7 +632,7 @@ ApplicationWindow { Column { Image { source: "icons/ic_chevron_right_40px.svg" - visible: (typeof(subitems) == "object" && subitems.count) || (typeof(subitems_url) == "string" && subitems_url != "" && subitems_url != "internal://back") + visible: (typeof(subitems_json) == "string" && subitems_json != "") || (typeof(subitems_url) == "string" && subitems_url != "" && subitems_url != "internal://back") height: parent.parent.parent.height fillMode: Image.Pad } @@ -1084,24 +1084,38 @@ ApplicationWindow { } function oslistFromJson(o) { + var oslist = false var lang_country = Qt.locale().name if ("os_list_"+lang_country in o) { - return o["os_list_"+lang_country] + oslist = o["os_list_"+lang_country] } - if (lang_country.includes("_")) { + else if (lang_country.includes("_")) { var lang = lang_country.substr(0, lang_country.indexOf("_")) if ("os_list_"+lang in o) { - return o["os_list_"+lang] + oslist = o["os_list_"+lang] } } - if (!"os_list" in o) { - onError(qsTr("Error parsing os_list.json")) - return false + if (!oslist) { + if (!"os_list" in o) { + onError(qsTr("Error parsing os_list.json")) + return false + } + + oslist = o["os_list"] } - var oslist = o["os_list"] checkForRandom(oslist) + + /* Flatten subitems to subitems_json */ + for (var i in oslist) { + var entry = oslist[i]; + if ("subitems" in entry) { + entry["subitems_json"] = JSON.stringify(entry["subitems"]) + delete entry["subitems"] + } + } + return oslist } @@ -1110,8 +1124,8 @@ ApplicationWindow { for (var i = 0; i < collection.count; i++) { var os = collection.get(i) - if (typeof(os.subitems) !== "undefined") { - selectNamedOS(name, os.subitems) + if (typeof(os.subitems_json) == "string" && os.subitems_json != "") { + selectNamedOS(name, os.subitems_json) } else if (typeof(os.url) !== "undefined" && name === os.name) { selectOSitem(os, false) @@ -1197,12 +1211,19 @@ ApplicationWindow { function selectOSitem(d, selectFirstSubitem) { - if (typeof(d.subitems) == "object" && d.subitems.count) { + if (typeof(d.subitems_json) == "string" && d.subitems_json !== "") { var m = newSublist() + var subitems = JSON.parse(d.subitems_json) - for (var i=0; i