From d7f0a1b93781fa77bcec0ea9dd1c3f90512c072b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 11 Dec 2018 13:55:31 +0100 Subject: [PATCH 01/18] [lang] Xml could be option, this is developer tooling after all --- lang/CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 65c0c4ca2..37ea8356c 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -18,7 +18,8 @@ # ### -find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Xml ) - -add_executable(txload txload.cpp) -target_link_libraries(txload Qt5::Xml) +find_package(Qt5 COMPONENTS Xml) +if( Qt5Xml_FOUND ) + add_executable(txload txload.cpp) + target_link_libraries(txload Qt5::Xml) +endif() From 33c5baa9f31bef11ac62ccf230ad410b17c509b9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 11 Dec 2018 14:03:18 +0100 Subject: [PATCH 02/18] [lang] Add usage information - This developer tool was originally committed with a not-useful commit message, no usage info, and no documentation. Bad [ade]. --- lang/txload.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lang/txload.cpp b/lang/txload.cpp index 51b9dacb1..36e0f71a2 100644 --- a/lang/txload.cpp +++ b/lang/txload.cpp @@ -16,6 +16,11 @@ * along with Calamares. If not, see . */ +/* + * Tool to find differences between translations (can be used to help + * merging them into one). See usage string, below, for details. + */ + #include #include #include @@ -23,6 +28,16 @@ #include +static const char usage[] = "Usage: txload [ ...]\n" + "\n" + "Reads a .ts source file and zero or more .ts \n" + "files, and does a comparison between the translations. Source (English)\n" + "strings that are untranslated are flagged in each of the translation\n" + "files, while differences in the translations are themselves also shown.\n" + "\n" + "Outputs to stdout a human-readable list of differences between the\n" + "translations.\n"; + bool load_file(const char* filename, QDomDocument& doc) { QFile file(filename); @@ -158,7 +173,10 @@ int main(int argc, char** argv) QCoreApplication a(argc, argv); if (argc < 2) + { + qWarning() << usage; return 1; + } QDomDocument doc("master"); if ( !load_file(argv[1], doc) ) From 19617fc42dbfd0fb43efada69470bd6a8c4a4750 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 11 Dec 2018 14:23:23 +0100 Subject: [PATCH 03/18] CI: more debugging due to disk-space problems --- ci/travis-continuous.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/travis-continuous.sh b/ci/travis-continuous.sh index 1b3841e54..afa46e16c 100755 --- a/ci/travis-continuous.sh +++ b/ci/travis-continuous.sh @@ -15,9 +15,11 @@ cd $BUILDDIR || exit 1 echo "###" echo "### cmake $CMAKE_ARGS $SRCDIR" echo "###" +df -h cmake $CMAKE_ARGS $SRCDIR || { echo "! CMake failed" ; exit 1 ; } echo -e "###\n### make\n###" +df -h make -j2 || { make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } echo -e "###\n### make install\n###" From c4b5360d911e30adabe4c259c4629d2c1fae1b08 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 11 Dec 2018 14:53:06 +0100 Subject: [PATCH 04/18] CI: more debugging due to disk-space problems --- ci/travis-continuous.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/travis-continuous.sh b/ci/travis-continuous.sh index afa46e16c..4ecd7159b 100755 --- a/ci/travis-continuous.sh +++ b/ci/travis-continuous.sh @@ -15,12 +15,13 @@ cd $BUILDDIR || exit 1 echo "###" echo "### cmake $CMAKE_ARGS $SRCDIR" echo "###" +pwd -P df -h cmake $CMAKE_ARGS $SRCDIR || { echo "! CMake failed" ; exit 1 ; } echo -e "###\n### make\n###" df -h -make -j2 || { make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } +make -j2 || { pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } echo -e "###\n### make install\n###" From 59e30e3cdb964bca617e53bff4b94e44c49f38aa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 11 Dec 2018 15:25:39 +0100 Subject: [PATCH 05/18] CI: yet another attempt to debug the disk-space failures --- ci/travis-continuous.sh | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/ci/travis-continuous.sh b/ci/travis-continuous.sh index 4ecd7159b..aefaca6f8 100755 --- a/ci/travis-continuous.sh +++ b/ci/travis-continuous.sh @@ -12,26 +12,26 @@ test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; ex cd $BUILDDIR || exit 1 +section() { echo "###" -echo "### cmake $CMAKE_ARGS $SRCDIR" +echo "### $1" echo "###" pwd -P df -h +} + +section "cmake $CMAKE_ARGS $SRCDIR" cmake $CMAKE_ARGS $SRCDIR || { echo "! CMake failed" ; exit 1 ; } -echo -e "###\n### make\n###" -df -h -make -j2 || { pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } +section "make" +make -j2 || { echo "! Make recheck" ; pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } -echo -e "###\n### make install\n###" +section "make install" install_debugging() { ls -la $( find "$1" -type f -name '*.so' ) } -echo "# System status" -df -h - echo "# Build results" install_debugging "$BUILDDIR" @@ -48,10 +48,8 @@ else result=false fi -echo "# System status" -df -h -echo "# Install results" +section "Install results" install_debugging "$DESTDIR" $result || { echo "! Install failed" ; exit 1 ; } # Result of make install, above From 6798d613d87536d216e2e13752ebc9413d8a813e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 11 Dec 2018 15:40:02 +0100 Subject: [PATCH 06/18] CI: guess that debug builds are way too big for Travis --- ci/travis-config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/travis-config.sh b/ci/travis-config.sh index 260c4b78c..565b3deba 100644 --- a/ci/travis-config.sh +++ b/ci/travis-config.sh @@ -5,7 +5,7 @@ # This file is sourced by travis.sh, and exports the variables # to the environment. CMAKE_ARGS="\ - -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_BUILD_TYPE=Release \ -DWEBVIEW_FORCE_WEBKIT=1 \ -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ -DWITH_PYTHONQT=OFF" From 1321ba15252a6304e504b901cacc98feb38e898d Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 11 Dec 2018 19:31:21 +0100 Subject: [PATCH 07/18] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_bg.ts | 2 +- lang/calamares_es.ts | 38 +- lang/calamares_id.ts | 206 +-- lang/calamares_is.ts | 30 +- lang/calamares_ja.ts | 2 +- lang/calamares_mk.ts | 2847 ++++++++++++++++++++++++++++++++++++++++++ lang/calamares_ru.ts | 41 +- 7 files changed, 3007 insertions(+), 159 deletions(-) create mode 100644 lang/calamares_mk.ts diff --git a/lang/calamares_bg.ts b/lang/calamares_bg.ts index 2a69a9ef6..55a48e1a8 100644 --- a/lang/calamares_bg.ts +++ b/lang/calamares_bg.ts @@ -2774,7 +2774,7 @@ Output: Total Sectors: - + Общо сектори: diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 17c5cbde8..42c359fef 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -720,22 +720,22 @@ Saldrá del instalador y se perderán todos los cambios. Create new volume group named %1. - + Crear un nuevo grupo de volúmenes llamado %1. Create new volume group named <strong>%1</strong>. - + Crear un nuevo grupo de volúmenes llamado <strong>%1</strong>. Creating new volume group named %1. - + Creando un nuevo grupo de volúmenes llamado %1. The installer failed to create a volume group named '%1'. - + El instalador falló en crear un grupo de volúmenes llamado '%1'. @@ -744,17 +744,17 @@ Saldrá del instalador y se perderán todos los cambios. Deactivate volume group named %1. - + Desactivar grupo de volúmenes llamado %1. Deactivate volume group named <strong>%1</strong>. - + Desactivar grupo de volúmenes llamado <strong>%1</strong>. The installer failed to deactivate a volume group named %1. - + El instalador falló en desactivar el grupo de volúmenes llamado %1. @@ -823,7 +823,7 @@ Saldrá del instalador y se perderán todos los cambios. %1 - (%2) - + %1-(%2) @@ -1726,27 +1726,27 @@ Saldrá del instalador y se perderán todos los cambios. New Volume Group - + Nuevo grupo de volúmenes Resize Volume Group - + Cambiar el tamaño del grupo de volúmenes Deactivate Volume Group - + Desactivar grupo de volúmenes Remove Volume Group - + Remover grupo de volúmenes I&nstall boot loader on: - + Instalar gestor de arranque en: @@ -2034,12 +2034,12 @@ Salida: Remove Volume Group named %1. - + Remover grupo de volúmenes llamado %1. Remove Volume Group named <strong>%1</strong>. - + Remover grupo de volúmenes llamado <strong>%1</strong>. @@ -2280,12 +2280,12 @@ Salida: Resize volume group named %1 from %2 to %3. - + Cambiar el tamaño del grupo de volúmenes llamado %1 de %2 a %3. Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. - + Cambiar el tamaño del grupo de volúmenes llamado <strong>%1</strong> de <strong>%2</strong> a <strong>%3</strong>. @@ -2747,7 +2747,7 @@ Salida: Physical Extent Size: - + Tamaño de sector físico: @@ -2780,7 +2780,7 @@ Salida: Quantity of LVs: - + Cantidad de LVs: diff --git a/lang/calamares_id.ts b/lang/calamares_id.ts index 3fd711dd1..0e59d2c45 100644 --- a/lang/calamares_id.ts +++ b/lang/calamares_id.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. - Sistem ini telah dimulai dengan lingkungan boot <strong>EFI</strong>.<br><br>Untuk mengkonfigurasi startup dari lingkungan EFI, pemasang ini seharusnya memaparkan sebuah aplikasi boot loader, seperti <strong>GRUB</strong> atau <strong>systemd-boot</strong> pada sebuah <strong>EFI System Partition</strong>. Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus memilihnya atau menciptakannya pada milikmu. + Sistem ini telah dimulai dengan lingkungan boot <strong>EFI</strong>.<br><br>Untuk mengkonfigurasi startup dari lingkungan EFI, installer ini seharusnya memaparkan sebuah aplikasi boot loader, seperti <strong>GRUB</strong> atau <strong>systemd-boot</strong> pada sebuah <strong>EFI System Partition</strong>. Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus memilihnya atau menciptakannya pada milikmu. 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. - Sistem ini dimulai dengan sebuah lingkungan boot <strong>BIOS</strong>.<br><br>Untuk mengkonfigurasi startup dari sebuah lingkungan BIOS, pemasang ini seharusnya memasang sebuah boot loader, seperti <strong>GRUB</strong>, baik di awal partisi atau pada <strong>Master Boot Record</strong> di dekat awalan tabel partisi (yang disukai). Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus menyetelnya pada milikmu. + Sistem ini dimulai dengan sebuah lingkungan boot <strong>BIOS</strong>.<br><br>Untuk mengkonfigurasi startup dari sebuah lingkungan BIOS, installer ini seharusnya memasang sebuah boot loader, seperti <strong>GRUB</strong>, baik di awal partisi atau pada <strong>Master Boot Record</strong> di dekat awalan tabel partisi (yang disukai). Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus menyetelnya pada milikmu. @@ -37,7 +37,7 @@ Do not install a boot loader - Jangan pasang boot loader + Jangan instal boot loader @@ -107,7 +107,7 @@ Install - Pasang + Instal @@ -187,7 +187,7 @@ Cancel installation without changing the system. - Batal pemasangan tanpa mengubah sistem yang ada. + Batalkan instalasi tanpa mengubah sistem yang ada. @@ -197,7 +197,7 @@ %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. - %1 tidak dapat terpasang. Calamares tidak dapat memuat seluruh modul konfigurasi. Terdapat masalah dengan Calamares karena sedang digunakan oleh distribusi. + %1 tidak dapat terinstal. Calamares tidak dapat memuat seluruh modul konfigurasi. Terdapat masalah dengan Calamares karena sedang digunakan oleh distribusi. @@ -207,19 +207,19 @@ &Install - &Pasang + &Instal Cancel installation? - Batalkan pemasangan? + Batalkan instalasi? Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - Apakah Anda benar-benar ingin membatalkan proses pemasangan ini? -Pemasangan akan ditutup dan semua perubahan akan hilang. + Apakah Anda benar-benar ingin membatalkan proses instalasi ini? +Instalasi akan ditutup dan semua perubahan akan hilang. @@ -244,12 +244,12 @@ Pemasangan akan ditutup dan semua perubahan akan hilang. 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> - Pemasang %1 akan membuat perubahan ke disk Anda untuk memasang %2.<br/><strong>Anda tidak dapat membatalkan perubahan tersebut.</strong> + Installer %1 akan membuat perubahan ke disk Anda untuk memasang %2.<br/><strong>Anda tidak dapat membatalkan perubahan tersebut.</strong> &Install now - &Pasang sekarang + &Instal sekarang @@ -264,7 +264,7 @@ Pemasangan akan ditutup dan semua perubahan akan hilang. The installation is complete. Close the installer. - Pemasangan sudah lengkap. Tutup pemasang. + Instalasi sudah lengkap. Tutup installer. @@ -274,7 +274,7 @@ Pemasangan akan ditutup dan semua perubahan akan hilang. Installation Failed - Pemasangan Gagal + Instalasi Gagal @@ -305,7 +305,7 @@ Pemasangan akan ditutup dan semua perubahan akan hilang. %1 Installer - Pemasang %1 + Installer %1 @@ -319,13 +319,13 @@ Pemasangan akan ditutup dan semua perubahan akan hilang. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Komputer ini tidak memenuhi syarat minimum untuk memasang %1. -Pemasang tidak dapat dilanjutkan. <a href=" +Installer tidak dapat dilanjutkan. <a href=" This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Komputer ini tidak memenuhi beberapa syarat yang dianjurkan untuk memasang %1. -Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. +Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. @@ -437,7 +437,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - <strong>Pasang berdampingan dengan</strong><br/>Pemasang akan mengiris sebuah partisi untuk memberi ruang bagi %1. + <strong>Instal berdampingan dengan</strong><br/>Installer akan mengiris sebuah partisi untuk memberi ruang bagi %1. @@ -624,7 +624,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. The installer failed to create partition on disk '%1'. - Pemasang gagal untuk membuat partisi di disk '%1'. + Installer gagal untuk membuat partisi di disk '%1'. @@ -675,7 +675,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. The installer failed to create a partition table on %1. - Pemasang gagal membuat tabel partisi pada %1. + Installer gagal membuat tabel partisi pada %1. @@ -721,22 +721,22 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Create new volume group named %1. - + Ciptakan grup volume baru bernama %1. Create new volume group named <strong>%1</strong>. - + Ciptakan grup volume baru bernama <strong>%1</strong>. Creating new volume group named %1. - + Menciptakan grup volume baru bernama %1. The installer failed to create a volume group named '%1'. - + Installer gagal menciptakan sebuah grup volume bernama '%1'. @@ -745,17 +745,17 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Deactivate volume group named %1. - + Nonaktifkan grup volume bernama %1. Deactivate volume group named <strong>%1</strong>. - + Nonaktifkan grup volume bernama <strong>%1</strong>. The installer failed to deactivate a volume group named %1. - + Installer gagal menonaktifkan sebuah grup volume bernama %1. @@ -778,7 +778,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. The installer failed to delete partition %1. - Pemasang gagal untuk menghapus partisi %1. + Installer gagal untuk menghapus partisi %1. @@ -786,7 +786,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. 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. - Tipe dari <strong>tabel partisi</strong> pada perangkat penyimpanan terpilih.<br><br>Satu-satunya cara untuk mengubah tabel partisi adalah dengan menyetip dan menciptakan ulang tabel partisi dari awal, yang melenyapkan semua data pada perangkat penyimpanan.<br>Pemasang ini akan menjaga tabel partisi saat ini kecuali kamu secara gamblang memilih sebaliknya.<br>Jika tidak yakin, pada sistem GPT modern lebih disukai. + Tipe dari <strong>tabel partisi</strong> pada perangkat penyimpanan terpilih.<br><br>Satu-satunya cara untuk mengubah tabel partisi adalah dengan menyetip dan menciptakan ulang tabel partisi dari awal, yang melenyapkan semua data pada perangkat penyimpanan.<br>Installer ini akan menjaga tabel partisi saat ini kecuali kamu secara gamblang memilih sebaliknya.<br>Jika tidak yakin, pada sistem GPT modern lebih disukai. @@ -801,7 +801,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. 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. - Pemasang <strong>tidak bisa mendeteksi tabel partisi apapun</strong> pada media penyimpanan terpilih.<br><br>Mungkin media ini tidak memiliki tabel partisi, atau tabel partisi yang ada telah korup atau tipenya tidak dikenal.<br>Pemasang dapat membuatkan partisi baru untuk Anda, baik secara otomatis atau melalui laman pemartisian manual. + Installer <strong>tidak bisa mendeteksi tabel partisi apapun</strong> pada media penyimpanan terpilih.<br><br>Mungkin media ini tidak memiliki tabel partisi, atau tabel partisi yang ada telah korup atau tipenya tidak dikenal.<br>Installer dapat membuatkan partisi baru untuk Anda, baik secara otomatis atau melalui laman pemartisian manual. @@ -824,7 +824,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. %1 - (%2) - + %1 - (%2) @@ -949,7 +949,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Install %1 on <strong>new</strong> %2 system partition. - Pasang %1 pada partisi sistem %2 <strong>baru</strong> + Instal %1 pada partisi sistem %2 <strong>baru</strong> @@ -959,7 +959,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Install %2 on %3 system partition <strong>%1</strong>. - Pasang %2 pada sistem partisi %3 <strong>%1</strong>. + Instal %2 pada sistem partisi %3 <strong>%1</strong>. @@ -969,7 +969,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Install boot loader on <strong>%1</strong>. - Pasang boot loader di <strong>%1</strong>. + Instal boot loader di <strong>%1</strong>. @@ -987,7 +987,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. <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> - Ketika kotak ini dicentang, sistem kamu akan segera dimulai kembali saat mengklik Selesai atau menutup pemasang. + Ketika kotak ini dicentang, sistem kamu akan segera dimulai kembali saat mengklik Selesai atau menutup installer. @@ -997,12 +997,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. <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>Selesai.</h1><br>%1 sudah terpasang di komputer Anda.<br/>Anda dapat memulai ulang ke sistem baru atau lanjut menggunakan lingkungan Live %2. + <h1>Selesai.</h1><br>%1 sudah terinstal di komputer Anda.<br/>Anda dapat memulai ulang ke sistem baru atau lanjut menggunakan lingkungan Live %2. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - <h1>Pemasangan Gagal</h1><br/>%1 tidak bisa dipasang pada komputermu.<br/>Pesan galatnya adalah: %2. + <h1>Instalasi Gagal</h1><br/>%1 tidak bisa diinstal pada komputermu.<br/>Pesan galatnya adalah: %2. @@ -1015,12 +1015,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Installation Complete - Pemasangan Lengkap + Instalasi Lengkap The installation of %1 is complete. - Pemasangan %1 telah lengkap. + Instalasi %1 telah lengkap. @@ -1043,7 +1043,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. The installer failed to format partition %1 on disk '%2'. - Pemasang gagal memformat partisi %1 pada disk '%2'.'%2'. + Installer gagal memformat partisi %1 pada disk '%2'.'%2'. @@ -1051,12 +1051,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Konsole not installed - Konsole tidak terpasang + Konsole tidak terinstal Please install KDE Konsole and try again! - Silahkan pasang KDE Konsole dan ulangi lagi! + Silahkan instal KDE Konsole dan ulangi lagi! @@ -1146,7 +1146,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - Mohon periksa End User License Agreements(EULA) di atas.<br/>Bila Anda tidak setuju, perangkat lunak proprietary tidak akan dipasang, dan alternatif open source akan dipasang sebagai gantinya + Mohon periksa End User License Agreements(EULA) di atas.<br/>Bila Anda tidak setuju, perangkat lunak proprietary tidak akan diinstal, dan alternatif open source akan diinstal sebagai gantinya @@ -1262,12 +1262,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - Pemasangan Jaringan. (Dinonfungsikan: Tak mampu menarik daftar paket, periksa sambungan jaringanmu) + Instalasi 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) + Instalasi jaringan. (Menonaktifkan: Penerimaan kelompok data yang tidak sah) @@ -1566,7 +1566,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - <small>Jika lebih dari satu orang akan menggunakan komputer ini, Anda dapat mengatur beberapa akun setelah pemasangan.</small> + <small>Jika lebih dari satu orang akan menggunakan komputer ini, Anda dapat mengatur beberapa akun setelah instalasi.</small> @@ -1727,27 +1727,27 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. New Volume Group - + Grup Volume Baru Resize Volume Group - + Ubah-ukuran Grup Volume Deactivate Volume Group - + Nonaktifkan Grup Volume Remove Volume Group - + Hapus Grup Volume I&nstall boot loader on: - + I&nstal boot loader di: @@ -1780,12 +1780,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Install %1 <strong>alongside</strong> another operating system. - Pasang %1 <strong>berdampingan</strong> dengan sistem operasi lain. + Instal %1 <strong>berdampingan</strong> dengan sistem operasi lain. <strong>Erase</strong> disk and install %1. - <strong>Hapus</strong> diska dan pasang %1. + <strong>Hapus</strong> diska dan instal %1. @@ -1800,12 +1800,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - Pasang %1 <strong>berdampingan</strong> dengan sistem operasi lain di disk <strong>%2</strong> (%3). + Instal %1 <strong>berdampingan</strong> dengan sistem operasi lain di disk <strong>%2</strong> (%3). <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - <strong>Hapus</strong> diska <strong>%2</strong> (%3) dan pasang %1. + <strong>Hapus</strong> diska <strong>%2</strong> (%3) dan instal %1. @@ -1892,7 +1892,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. 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. - Silakan pilih sebuah look-and-feel untuk KDE Plasma Desktop. Anda juga dapat melewati langkah ini dan konfigurasi look-and-feel sekali ketika sistem terpasang. Mengeklik pilihan look-and-feel akan memberi Anda pratinjau langsung dari look-and-feel. + Silakan pilih sebuah look-and-feel untuk KDE Plasma Desktop. Anda juga dapat melewati langkah ini dan konfigurasi look-and-feel setelah sistem terinstal. Mengeklik pilihan look-and-feel akan memberi Anda pratinjau langsung pada look-and-feel tersebut. @@ -2035,17 +2035,17 @@ Keluaran: Remove Volume Group named %1. - + Hapus Grup Volume bernama %1. Remove Volume Group named <strong>%1</strong>. - + Hapus Grup Volume bernama <strong>%1</strong>. The installer failed to remove a volume group named '%1'. - + Installer gagal menghapus sebuah grup volume bernama '%1'. @@ -2058,7 +2058,7 @@ Keluaran: Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - Pilih tempat pemasangan %1.<br/><font color="red">Peringatan: </font>hal ini akan menghapus semua berkas di partisi terpilih. + Pilih tempat instalasi %1.<br/><font color="red">Peringatan: </font>hal ini akan menghapus semua berkas di partisi terpilih. @@ -2068,17 +2068,17 @@ Keluaran: %1 cannot be installed on empty space. Please select an existing partition. - %1 tidak dapat dipasang di ruang kosong. Mohon pilih partisi yang tersedia. + %1 tidak dapat diinstal di ruang kosong. Mohon pilih partisi yang tersedia. %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - %1 tidak bisa dipasang pada Partisi Extended. Mohon pilih Partisi Primary atau Logical yang tersedia. + %1 tidak bisa diinstal pada Partisi Extended. Mohon pilih Partisi Primary atau Logical yang tersedia. %1 cannot be installed on this partition. - %1 tidak dapat dipasang di partisi ini. + %1 tidak dapat diinstal di partisi ini. @@ -2110,7 +2110,7 @@ Keluaran: <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 akan dipasang pada %2.<br/><font color="red">Peringatan: </font>seluruh data %2 akan hilang. + <strong>%3</strong><br/><br/>%1 akan diinstal pada %2.<br/><font color="red">Peringatan: </font>seluruh data %2 akan hilang. @@ -2173,12 +2173,12 @@ Keluaran: The installer is not running with administrator rights. - Pemasang tidak dijalankan dengan kewenangan administrator. + Installer tidak dijalankan dengan kewenangan administrator. The screen is too small to display the installer. - Layar terlalu kecil untuk menampilkan pemasang. + Layar terlalu kecil untuk menampilkan installer. @@ -2186,29 +2186,29 @@ Keluaran: Resize Filesystem Job - + Tugas Ubah-ukuran Filesystem Invalid configuration - + Konfigurasi taksah The file-system resize job has an invalid configuration and will not run. - + Tugas pengubahan ukuran filesystem mempunyai sebuah konfigurasi yang taksah dan tidak akan berjalan. KPMCore not Available - + KPMCore tidak Tersedia Calamares cannot start KPMCore for the file-system resize job. - + Calamares gak bisa menjalankan KPMCore untuk tugas pengubahan ukuran filesystem. @@ -2217,39 +2217,39 @@ Keluaran: Resize Failed - + Pengubahan Ukuran, Gagal The filesystem %1 could not be found in this system, and cannot be resized. - + Filesystem %1 enggak ditemukan dalam sistem ini, dan gak bisa diubahukurannya. The device %1 could not be found in this system, and cannot be resized. - + Perangkat %1 enggak ditemukan dalam sistem ini, dan gak bisa diubahukurannya. The filesystem %1 cannot be resized. - + Filesystem %1 gak bisa diubahukurannya. The device %1 cannot be resized. - + Perangkat %1 gak bisa diubahukurannya. The filesystem %1 must be resized, but cannot. - + Filesystem %1 mestinya bisa diubahukurannya, namun gak bisa. The device %1 must be resized, but cannot - + Perangkat %1 mestinya bisa diubahukurannya, namun gak bisa. @@ -2272,7 +2272,7 @@ Keluaran: The installer failed to resize partition %1 on disk '%2'. - Pemasang gagal untuk merubah ukuran partisi %1 pada disk '%2'. + Installer gagal untuk merubah ukuran partisi %1 pada disk '%2'. @@ -2281,17 +2281,17 @@ Keluaran: Resize volume group named %1 from %2 to %3. - + Ubah ukuran grup volume bernama %1 dari %2 ke %3. Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. - + Ubah ukuran grup volume bernama <strong>%1</strong> dari <strong>%2</strong> ke %3<strong>. The installer failed to resize a volume group named '%1'. - + Installer gagal mengubah ukuran sebuah grup volume bernama '%1'. @@ -2447,7 +2447,7 @@ Keluaran: The installer failed to set flags on partition %1. - Pemasang gagal menetapkan bendera pada partisi %1. + Installer gagal menetapkan bendera pada partisi %1. @@ -2553,7 +2553,7 @@ Keluaran: This is an overview of what will happen once you start the install procedure. - Berikut adalah tinjauan mengenai yang akan terjadi setelah Anda memulai prosedur pemasangan. + Berikut adalah tinjauan mengenai yang akan terjadi setelah Anda memulai prosedur instalasi. @@ -2579,7 +2579,7 @@ Keluaran: Internal error in install-tracking. - Galat intern di pelacakan-pemasangan. + Galat intern di pelacakan-instalasi. @@ -2631,7 +2631,7 @@ Keluaran: <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>Dengan memilih ini, Anda akan mengirim <span style=" font-weight:600;">tidak ada informasi di </span> tentang pemasangan Anda. </p></body></html> + <html><head/><body><p>Dengan memilih ini, Anda akan mengirim <span style=" font-weight:600;">tidak ada informasi di </span> tentang instalasi Anda. </p></body></html> @@ -2655,22 +2655,22 @@ Keluaran: 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. - Pasang bantuan pelacakan %1 untuk melihat berapa banyak pengguna memiliki, piranti keras apa yang mereka pasang %1 dan (dengan dua pilihan terakhir), dapatkan informasi berkelanjutan tentang aplikasi yang disukai. Untuk melihat apa yang akan dikirim, silakan klik ikon bantuan ke beberapa area selanjtunya. + Instal bantuan pelacakan %1 untuk melihat berapa banyak pengguna memiliki, piranti keras apa yang mereka instal %1 dan (dengan dua pilihan terakhir), dapatkan informasi berkelanjutan tentang aplikasi yang disukai. Untuk melihat apa yang akan dikirim, silakan klik ikon bantuan ke beberapa area selanjtunya. 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. - Dengan memilih ini Anda akan mengirim informasi tentang pemasangan dan piranti keras Anda. Informasi ini hanya akan <b>dikirim sekali</b> setelah pemasangan selesai. + Dengan memilih ini Anda akan mengirim informasi tentang instalasi dan piranti keras Anda. Informasi ini hanya akan <b>dikirim sekali</b> setelah instalasi selesai. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Dengan memilih ini anda akan <b> secara berkala</b> mengirim informasi tentang pemasangan, piranti keras dan aplikasi Anda, ke %1. + Dengan memilih ini anda akan <b> secara berkala</b> mengirim informasi tentang instalasi, piranti keras dan aplikasi Anda, ke %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Dengan memilih ini anda akan<b>secara teratur</b> mengirim informasi tentang pemasangan, piranti keras, aplikasi dan pola pemakaian Anda, ke %1. + Dengan memilih ini anda akan<b>secara teratur</b> mengirim informasi tentang instalasi, piranti keras, aplikasi dan pola pemakaian Anda, ke %1. @@ -2728,27 +2728,27 @@ Keluaran: VolumeGroupDialog - + DialogGrupVolume List of Physical Volumes - + Daftar dari Volume Fisik Volume Group Name: - + Nama Grup Volume: Volume Group Type: - + Tipe Grup Volume: Physical Extent Size: - + Ukuran Luas Fisik: @@ -2758,7 +2758,7 @@ Keluaran: Total Size: - + Total Ukuran: @@ -2766,22 +2766,22 @@ Keluaran: --- - + --- Used Size: - + Ukuran Terpakai: Total Sectors: - + Total Sektor: Quantity of LVs: - + Kuantitas LV: @@ -2819,17 +2819,17 @@ Keluaran: <h1>Welcome to the %1 installer.</h1> - <h1>Selamat datang di pemasang %1.</h1> + <h1>Selamat datang di installer %1.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Selamat datang di Calamares pemasang untuk %1.</h1> + <h1>Selamat datang di Calamares installer untuk %1.</h1> About %1 installer - Tentang pemasang %1 + Tentang installer %1 diff --git a/lang/calamares_is.ts b/lang/calamares_is.ts index 181ca9986..196215a0c 100644 --- a/lang/calamares_is.ts +++ b/lang/calamares_is.ts @@ -192,7 +192,7 @@ Calamares Initialization Failed - + Calamares uppsetning mistókst @@ -207,7 +207,7 @@ &Install - + &Setja upp @@ -503,7 +503,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Could not run command. - + Gat ekki keyrt skipun. @@ -559,7 +559,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. LVM LV name - + LVM LV nafn @@ -822,7 +822,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. %1 - (%2) - + %1 - (%2) @@ -1281,17 +1281,17 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Password is too short - + Lykilorðið þitt er of stutt Password is too long - + Lykilorðið þitt er of langt Password is too weak - + Lykilorðið þitt er of veikt @@ -1386,7 +1386,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. The password is too short - + Lykilorðið er of stutt @@ -1906,7 +1906,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Saving files for later ... - + Vista skrár fyrir seinna ... @@ -2540,7 +2540,7 @@ Output: %L1 / %L2 slide counter, %1 of %2 (numeric) - + %L1 / %L2 @@ -2640,7 +2640,7 @@ Output: ... - + ... @@ -2753,7 +2753,7 @@ Output: Total Size: - + Heildar stærð: @@ -2761,12 +2761,12 @@ Output: --- - + --- Used Size: - + Notuð stærð: diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index 001e1a19e..673f3e4bb 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -1751,7 +1751,7 @@ The installer will quit and all changes will be lost. Are you sure you want to create a new partition table on %1? - %1 上で新しいパーティションテーブルを作成します。よろしいですか? + %1 上で新しいパーティションテーブルを作成します。よろしいですか? diff --git a/lang/calamares_mk.ts b/lang/calamares_mk.ts new file mode 100644 index 000000000..a1b95a0da --- /dev/null +++ b/lang/calamares_mk.ts @@ -0,0 +1,2847 @@ + + + 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::BlankViewStep + + + Blank Page + + + + + 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. + + + + + Calamares Initialization Failed + + + + + %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. + + + + + <br/>The following modules could not be loaded: + + + + + &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. + + + + + CreateVolumeGroupJob + + + Create new volume group named %1. + + + + + Create new volume group named <strong>%1</strong>. + + + + + Creating new volume group named %1. + + + + + The installer failed to create a volume group named '%1'. + + + + + DeactivateVolumeGroupJob + + + + Deactivate volume group named %1. + + + + + Deactivate volume group named <strong>%1</strong>. + + + + + The installer failed to deactivate a volume group named %1. + + + + + 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) + + + + + %1 - (%2) + + + + + 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 + + + + + Cre&ate + + + + + &Edit + + + + + &Delete + + + + + New Volume Group + + + + + Resize Volume Group + + + + + Deactivate Volume Group + + + + + Remove Volume Group + + + + + I&nstall 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 + + + + + RemoveVolumeGroupJob + + + + Remove Volume Group named %1. + + + + + Remove Volume Group named <strong>%1</strong>. + + + + + The installer failed to remove a volume group named '%1'. + + + + + 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. + + + + + ResizeFSJob + + + Resize Filesystem Job + + + + + Invalid configuration + + + + + The file-system resize job has an invalid configuration and will not run. + + + + + + KPMCore not Available + + + + + + Calamares cannot start KPMCore for the file-system resize job. + + + + + + + + + Resize Failed + + + + + The filesystem %1 could not be found in this system, and cannot be resized. + + + + + The device %1 could not be found in this system, and cannot be resized. + + + + + + The filesystem %1 cannot be resized. + + + + + + The device %1 cannot be resized. + + + + + The filesystem %1 must be resized, but cannot. + + + + + The device %1 must be resized, but cannot + + + + + 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'. + + + + + ResizeVolumeGroupJob + + + + Resize volume group named %1 from %2 to %3. + + + + + Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. + + + + + The installer failed to resize a volume group named '%1'. + + + + + 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 + + + + + VolumeGroupBaseDialog + + + VolumeGroupDialog + + + + + List of Physical Volumes + + + + + Volume Group Name: + + + + + Volume Group Type: + + + + + Physical Extent Size: + + + + + MiB + + + + + Total Size: + + + + + + + + --- + + + + + Used Size: + + + + + Total Sectors: + + + + + Quantity of LVs: + + + + + 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/calamares_ru.ts b/lang/calamares_ru.ts index 6862e400d..1dffae487 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -718,22 +718,22 @@ The installer will quit and all changes will be lost. Create new volume group named %1. - + Создать новую группу томов на диске %1 Create new volume group named <strong>%1</strong>. - + Создать новую группу томов на диске %1 Creating new volume group named %1. - + Cоздание новой группы томов на диске %1 The installer failed to create a volume group named '%1'. - + Программа установки не смогла создать группу томов на диске '%1'. @@ -829,7 +829,7 @@ The installer will quit and all changes will be lost. Write LUKS configuration for Dracut to %1 - + Записать LUKS настройки для Dracut в %1 @@ -1470,7 +1470,7 @@ The installer will quit and all changes will be lost. Bad integer value of setting - %1 - + Недопустимое целое значение свойства - %1 @@ -1729,7 +1729,7 @@ The installer will quit and all changes will be lost. Resize Volume Group - + Изменить размер группы томов @@ -1739,12 +1739,12 @@ The installer will quit and all changes will be lost. Remove Volume Group - + Удалить группу томов I&nstall boot loader on: - + Уст&ановить загрузчик в: @@ -1884,7 +1884,7 @@ The installer will quit and all changes will be lost. Placeholder - + Заменитель @@ -1905,12 +1905,12 @@ The installer will quit and all changes will be lost. Saving files for later ... - + Сохраняю файлы на потом... No files configured to save for later. - + Нет файлов, которые требуется сохранить на потом. @@ -1924,7 +1924,8 @@ The installer will quit and all changes will be lost. There was no output from the command. - + +Вывода из команды не последовало. @@ -2031,17 +2032,17 @@ Output: Remove Volume Group named %1. - + Удалить группу томов на диске %1 Remove Volume Group named <strong>%1</strong>. - + Удалить группу томов на диске %1 The installer failed to remove a volume group named '%1'. - + Установщик не смог удалить группу томов на диске '%1'. @@ -2182,12 +2183,12 @@ Output: Resize Filesystem Job - + Изменить размер файловой системы Invalid configuration - + Недействительная конфигурация @@ -2213,7 +2214,7 @@ Output: Resize Failed - + Не удалось изменить размер @@ -2622,7 +2623,7 @@ Output: Placeholder - + Заменитель From 99b99d24bdbb354e980362dd4795c030c00617b5 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 11 Dec 2018 19:31:22 +0100 Subject: [PATCH 08/18] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/calamares.desktop b/calamares.desktop index b4c3a2693..c29b9b345 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -104,6 +104,10 @@ Name[it_IT]=Installa il sistema Icon[it_IT]=calamares GenericName[it_IT]=Programma d'installazione del sistema Comment[it_IT]=Calamares — Programma d'installazione del sistema +Name[mk]=Инсталирај го системот +Icon[mk]=calamares +GenericName[mk]=Системен Инсталер +Comment[mk]=Calamares - Системен Инсталер Name[nb]=Installer System Icon[nb]=calamares GenericName[nb]=Systeminstallatør From bf976b3de06ce581be49bd7879dd800b6bc14a7b Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 11 Dec 2018 19:31:23 +0100 Subject: [PATCH 09/18] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/mk/LC_MESSAGES/dummypythonqt.mo | Bin 0 -> 625 bytes .../lang/mk/LC_MESSAGES/dummypythonqt.po | 46 ++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.mo create mode 100644 src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.po diff --git a/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 0000000000000000000000000000000000000000..aae5bd9b4655721e470dcbd9f68828dd44e0ef94 GIT binary patch literal 625 zcmYL`&2AGh5XYCV11rIyXAYACRV#4T4k3!11_&WV5eW$)^oVdbZfde?uWYAjAA}1M zFM)(q@%0S8aOGK;O+@pTej3kc=I`(e)_W!T25{me(r1Fx{vFTCU*DKpe}g8g(<3E+ChcXl%_#nR?Qnkt1oHGMdA< z(|y%>*@L6r8Y?z z`u4l&A!%;=%BxPKB|V**nbLC(&12=SHsz2n;&HaLA|r>!=8l6d)~RdPTCh2`_cYuG yMxosX2D`hkNhwq?XZ!FJC~#n{I0|3F@9_2NcZbj6N4N~%!>@1&;b-_(iT(j+m9#Vf literal 0 HcmV?d00001 diff --git a/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.po new file mode 100644 index 000000000..82998bf47 --- /dev/null +++ b/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.po @@ -0,0 +1,46 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Martin Ristovski , 2018 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-05 11:34-0400\n" +"PO-Revision-Date: 2016-12-16 12:18+0000\n" +"Last-Translator: Martin Ristovski , 2018\n" +"Language-Team: Macedonian (https://www.transifex.com/calamares/teams/20061/mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#: src/modules/dummypythonqt/main.py:84 +msgid "Click me!" +msgstr "Кликни ме!" + +#: src/modules/dummypythonqt/main.py:94 +msgid "A new QLabel." +msgstr "Нов QLabel." + +#: 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 915884c6fe9229f78ec1e7cd0aca3ab06bca7d06 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 11 Dec 2018 19:31:23 +0100 Subject: [PATCH 10/18] i18n: [python] Automatic merge of Transifex translations --- lang/python/es/LC_MESSAGES/python.mo | Bin 1207 -> 2626 bytes lang/python/es/LC_MESSAGES/python.po | 27 +++--- lang/python/fr/LC_MESSAGES/python.mo | Bin 1193 -> 2528 bytes lang/python/fr/LC_MESSAGES/python.po | 23 +++-- lang/python/id/LC_MESSAGES/python.mo | Bin 1082 -> 2644 bytes lang/python/id/LC_MESSAGES/python.po | 35 ++++---- lang/python/ja/LC_MESSAGES/python.mo | Bin 2808 -> 3013 bytes lang/python/ja/LC_MESSAGES/python.po | 5 +- lang/python/mk/LC_MESSAGES/python.mo | Bin 0 -> 2005 bytes lang/python/mk/LC_MESSAGES/python.po | 120 +++++++++++++++++++++++++++ 10 files changed, 174 insertions(+), 36 deletions(-) create mode 100644 lang/python/mk/LC_MESSAGES/python.mo create mode 100644 lang/python/mk/LC_MESSAGES/python.po diff --git a/lang/python/es/LC_MESSAGES/python.mo b/lang/python/es/LC_MESSAGES/python.mo index a8182412db11321bc73fae9cf5b6dd5b75f473e4..e3aaa18ecc0486bbc41153365958a6e5098fadad 100644 GIT binary patch literal 2626 zcmbW2O>Y}T7{>=_d2x9yAhig}6dK{EU3;CTY2q{}C3d4wCyf%P;yT$K+tcjMY z$mayl>lklh{DScoM(_mw;JE{y0PlkDg8zVLz*A2W@*cPV+V?H+9QYad3iuQF8u&+- z_qy}CYw!*5SMUsY2RsfQeU^~(;0bU7tabS@XxIH7 zTmki*CW4U2^B7nn z%_%^T4)P*~%`KKp9~_w=ypiVxydAYO3rtF7sHbE@G?SRqnrOC6Wx4lZCl-d&tCi)x z2{S@T+7JOBwW)n{7^7_U|6FXnw)D^)D?&#BYtxWP*5vWNb#|DhLV7BU0&X~|Bw^U5 zQQNd|;2UbQFgl|RkLcblvdATm8KMlC*AkLD!Y_~|sSOJP8ZmDRJL&$6kWH#2?|m4V zAIr-m9QS+Q;50~FnlZX}THm6+;+op5^If408A{wEj7Ac7u-%HH{%DRg)jZ&y;XZAs zn3@*vS@e<^DnAK$fvm>L<67GYdtuZ3Sl&~KG>EE5$MQxYE93q+S>vJFejpe9*#|Q* zRMCS^U&rABPh79d#vmJCBB@R&q1a<=% zaF%@MI*&E_w@gI6Sf$siYwJtbR&r}RQn7KCbyN7x2T4;qbycRh)oXQUA?9h* zI~8_cycwSjZ=@A z)B!UpF4M(C_=+yZOlw6idCAR0pfEER=bIrDK>^+T{<(BdxXNaNW_0SDg=M-PF)4J5 z=3B-@x?C*o?CcbbU0F2vu5~PWEMOsvxh@*G=;DOyPL+yy9nUQ7k?f|7bZ$on*BSMm-O@;Esf9S2zpoJVkO+?gNq&a6>0c0*Iq0(MND}>S&VDD zjlLi9@~xn z9GZU2T&9vc2ob$ywKeUX&TYEQyv{eaVRV#qzS6ckT5K~DTa?U(A1K`o9Y0vZ-Iqx) ZOf;!*9YQ$J9U6=C5I@1N?A}Rq%D+X?83F(R delta 307 zcmX>kvYoU3o)F7a1|Z-BVi_P#0b*VtUIWA+@BoMff%qX1ivaOwD9ynL5tjwhCO|QL zAgv9gQ-HJqke&dfMS=7|AiWQWuLH3pkUx!?fk6sLZvfIN3=D}3r-2M1puh(pZ49KD zSs(_P18ERH8A!_m>FGckXa)lZ5HkTW2!I^T4#cb=4io^DfdSAs1~wp`yoae}@>}NE z$s1TU8@LrE<|StqC+8~!A6}T3oRM0k;B$C$0gy^bRq#nI%1u, 2018 +# Guido Grasso , 2018 # #, fuzzy msgid "" @@ -14,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-05 11:34-0400\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Francisco Sánchez López de Lerma , 2018\n" +"Last-Translator: Guido Grasso , 2018\n" "Language-Team: Spanish (https://www.transifex.com/calamares/teams/20061/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,31 +25,31 @@ msgstr "" #: src/modules/displaymanager/main.py:380 msgid "Cannot write KDM configuration file" -msgstr "" +msgstr "No se puede escribir el archivo de configuración KDM" #: src/modules/displaymanager/main.py:381 msgid "KDM config file {!s} does not exist" -msgstr "" +msgstr "El archivo de configuración {!s} de KDM no existe" #: src/modules/displaymanager/main.py:442 msgid "Cannot write LXDM configuration file" -msgstr "" +msgstr "No se puede escribir el archivo de configuración LXDM" #: src/modules/displaymanager/main.py:443 msgid "LXDM config file {!s} does not exist" -msgstr "" +msgstr "El archivo de configuracion {!s} de LXDM no existe" #: src/modules/displaymanager/main.py:517 msgid "Cannot write LightDM configuration file" -msgstr "" +msgstr "No se puede escribir el archivo de configuración de LightDM" #: src/modules/displaymanager/main.py:518 msgid "LightDM config file {!s} does not exist" -msgstr "" +msgstr "El archivo de configuración {!s} de LightDM no existe" #: src/modules/displaymanager/main.py:592 msgid "Cannot configure LightDM" -msgstr "" +msgstr "No se puede configurar LightDM" #: src/modules/displaymanager/main.py:593 msgid "No LightDM greeter installed." @@ -56,16 +57,18 @@ msgstr "" #: src/modules/displaymanager/main.py:624 msgid "Cannot write SLIM configuration file" -msgstr "" +msgstr "No se puede escribir el archivo de configuración de SLIM" #: src/modules/displaymanager/main.py:625 msgid "SLIM config file {!s} does not exist" -msgstr "" +msgstr "El archivo de configuración {!s} de SLIM no existe" #: src/modules/displaymanager/main.py:740 #: src/modules/displaymanager/main.py:772 msgid "No display managers selected for the displaymanager module." msgstr "" +"No se ha seleccionado ningún gestor de pantalla para el modulo " +"displaymanager" #: src/modules/displaymanager/main.py:741 msgid "" @@ -76,10 +79,12 @@ msgstr "" #: src/modules/displaymanager/main.py:773 msgid "The list is empty after checking for installed display managers." msgstr "" +"La lista está vacía después de haber chequeado los gestores de pantalla " +"instalados" #: src/modules/displaymanager/main.py:821 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "La configuración del gestor de pantalla estaba incompleta" #: src/modules/umount/main.py:40 msgid "Unmount file systems." diff --git a/lang/python/fr/LC_MESSAGES/python.mo b/lang/python/fr/LC_MESSAGES/python.mo index 602af1c17346200e1e2cf474c0b3b3f072151de5..b612733eab2cdd4655d4fc9c898f2381799155af 100644 GIT binary patch literal 2528 zcmbVNNpl=E6c!M+VGm1jfGSbJWxJA|>9HMR#@NJoNx5t%E_&nWIzHKtNTRuO+?r^cKBu{(3D5=p0Q?AeA9x)&b%Bsqfhq71cYg(>cK?ao-ZtaVZakUm$3Pp;=fJms-vM8<^1v4GezAY?DMA?5Q@}d#8=$rOD=-8;0B!(x zpU(606A*5Z=P_|K$N_*ngL%<@6vO8EMNEWG5CVA?6RP9|Ogj*6HEP8dTp|c#Xgr72 z<926(Nf{gJ#WE0`RB^f{I$g84ULNc#VK`k~T(3l!5wWC!2>Gzg+J_G#lw1E-V_R!0 zXWqCdbP}>2jhJK|u1?t5XPOG>#ZeM+!^vVAMLnAIOcxH{iFfM5JKFGse)<`?!6jD= zQAW(`3dtSe*U5_1hJ_(bn750YbhRU7hsKhZ2SfWKV=|4#{qhV-H{&v)w4*qjQgCo! znd1_i`ojTfs(Hvg!+jdWikdDjCCZ4S*iS=VCmSmExYpL4(nmTrGUmmpG;pCoN5)Ky z5XSv+vdN=(@08=!?rFE%r|#7>6xvXsDUTA*X=8-6Kj0f7z=D-ye{{4t(P|PDodq}vgAnWwv23)gEvTZ4|R;Ni-g=k=A0GZ zxy_ZvBW=-*`GwW_8%y-|(&pC6t(&z?p2W&H>$)R+=YzDPop#)!wT)YCXF>77%XSv= z6k2q`ZB9E)*Kx1XX0tUp<+xL>3qfa-?+I)CNbZ{BPCM?qwCO_bvWrn$W7;@v#iR}y z($S*xsggaL7$JA*d;3D9lfFI(o0H9nYu7sw6Csil&0QJX3w7B^kwd4=S=6G-ic7Cc z$GXNOy47gx@9)=*H7){vVD%av3t7Yz*9`*=-I#FQcbbhrHO6b}E9*-~32D~d+CnT1 zm+-HbAW*{(Oanb7jS?VfbtZ$e= z%OUF^wCoU!*3Q01m(YNDMtI<$0kx6r3&WC=y8~v+`ZDV)q%4(G_$ayv1ViT(OjnT? zBtou1Bp;{T9C2OY<0!QAqe`JT;b57P@(R`Y)Ps08y9+`s3Q7@S+0a>^`>D^ mlo)mO%9{L>D+R4)eH3{y>qnLf^4eP-%?=|30!NEZ)8ua`%M9uO delta 291 zcmaDLypps2o)F7a1|Z-BVi_P#0b*VtUIWA+@BoMff%qX1ivaOwD9ynL5tjwhCO|QL zAgv9gQ-HJqke&dfMS=7|AiW5PuS5A&%nS??AbB9I$iR@uuoB1+0}7l5(pEtF5s=mc z(y}ZJ3>HAz2S_Ue=~f^OG=qTyh?#&G1VD~v2Vzzb2MU17zyN3r0~-)ep2O5Kxr#Y< zaw*GZ1+Ubi)Z9u1_x#eL+|(Qeo2+yQ%OR~OHB~RIXtE#cv&s4FiziRx$e6r`Qw0Fj C{3+M~ diff --git a/lang/python/fr/LC_MESSAGES/python.po b/lang/python/fr/LC_MESSAGES/python.po index d869f977d..f4d4ef26c 100644 --- a/lang/python/fr/LC_MESSAGES/python.po +++ b/lang/python/fr/LC_MESSAGES/python.po @@ -8,6 +8,7 @@ # Abdallah B , 2017 # Aestan , 2018 # Jeremy Gourmel , 2018 +# Aurnytoraink , 2018 # #, fuzzy msgid "" @@ -16,7 +17,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-05 11:34-0400\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Jeremy Gourmel , 2018\n" +"Last-Translator: Aurnytoraink , 2018\n" "Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,7 +27,7 @@ msgstr "" #: src/modules/displaymanager/main.py:380 msgid "Cannot write KDM configuration file" -msgstr "" +msgstr "Impossible d'écrire le fichier de configuration KDM" #: src/modules/displaymanager/main.py:381 msgid "KDM config file {!s} does not exist" @@ -34,7 +35,7 @@ msgstr "" #: src/modules/displaymanager/main.py:442 msgid "Cannot write LXDM configuration file" -msgstr "" +msgstr "Impossible d'écrire le fichier de configuration LXDM" #: src/modules/displaymanager/main.py:443 msgid "LXDM config file {!s} does not exist" @@ -42,7 +43,7 @@ msgstr "" #: src/modules/displaymanager/main.py:517 msgid "Cannot write LightDM configuration file" -msgstr "" +msgstr "Impossible d'écrire le fichier de configuration LightDM" #: src/modules/displaymanager/main.py:518 msgid "LightDM config file {!s} does not exist" @@ -50,15 +51,15 @@ msgstr "" #: src/modules/displaymanager/main.py:592 msgid "Cannot configure LightDM" -msgstr "" +msgstr "Impossible de configurer LightDM" #: src/modules/displaymanager/main.py:593 msgid "No LightDM greeter installed." -msgstr "" +msgstr "Aucun hôte LightDM est installé" #: src/modules/displaymanager/main.py:624 msgid "Cannot write SLIM configuration file" -msgstr "" +msgstr "Impossible d'écrire le fichier de configuration SLIM" #: src/modules/displaymanager/main.py:625 msgid "SLIM config file {!s} does not exist" @@ -68,20 +69,26 @@ msgstr "" #: src/modules/displaymanager/main.py:772 msgid "No display managers selected for the displaymanager module." msgstr "" +"Aucun gestionnaire d'affichage n'a été sélectionné pour le module de " +"gestionnaire d'affichage" #: src/modules/displaymanager/main.py:741 msgid "" "The displaymanagers list is empty or undefined in bothglobalstorage and " "displaymanager.conf." msgstr "" +"La liste des gestionnaires d'affichage est vide ou indéfinie dans " +"bothglobalstorage et displaymanager.conf." #: src/modules/displaymanager/main.py:773 msgid "The list is empty after checking for installed display managers." msgstr "" +"La liste est vide après vérification des gestionnaires d'affichage " +"installés." #: src/modules/displaymanager/main.py:821 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "La configuration du gestionnaire d'affichage était incomplète" #: src/modules/umount/main.py:40 msgid "Unmount file systems." diff --git a/lang/python/id/LC_MESSAGES/python.mo b/lang/python/id/LC_MESSAGES/python.mo index 0dba5b35a8840ce4e551949b9132d50ba3914285..9c932366fa7e627a1e023e45c8f43e15fbe7b2be 100644 GIT binary patch literal 2644 zcma)7O>Y}T7@k54ttnsOs|P-&g@i=y+Uq7jaGI(mP9iII8zpYxfIwsKcsM+J6iD68H=725{~SA#VWp zfj=O20i;-;d7hAY-~w;~*aR*C^>F>;aQ!=Q4*QRRZvs!9&GWthd=2aBaJ>n97wfNp z6!;K$3HTGxp7R^aA)mHsesL0`-24AJ+iy0GJ+Ury9I^q8m}EXr zj`%rXnhM!fQ52(hD;FmA4XHe zJ>Bk>Dk@0*goA|yjAW^BWQC{RG=rLI9`df?9_^`wnm#Wq3W_7;r6Dhq-9&Y{);9lw z6uLOS*j1@C$hku27mWgEOWqRMlp)AvKwVWBoEK^-ZR-jM{$_U@O7bw2Hk^(=ecKJNxL6-&>E%ECu+5mD+p zGO|?U;p+izSA<=#b`SJA4bQpD6OGoX(cPOHJ2$sC>D|q}{l@KEr9B?2#5gVO3(xs1 z^|jMhHCo!e-F7w-p7onk#|5p?t8R7Gsk)B)5v^8h%PWq%;<_+&_V|5aosaE4aoknM z{ghT+*j;upN=>GX(@vPwAp;#X`Z<$E4HUh0kp1Do4L@Qc1S8S)E7@UqNBSvwx-4W7OSrBWyrnBwUH9W^MR=8^QmfJ0 z95YcZyQK{!4VMUP5FXg zEz#d6u(BO~60@Q7PR4cov9?{v&P2pVx|())m_{^VQJhMjv{N6-=%tYus$rSfx(2Kd z{hQn;Eilms1z~^+&*~vMKj6m6e#@D0-Vyme6d=<-vW1UBE_L~LCHsElAu*55KF$;n zC;KSK@diWn8~bPr7#4*ZN!rRA}nV>L@vxl_z2miazwhqyf!Du4w9^@}YTc zwlwBZqBPg`&X4r2GNE?3K3x?<&&Rrk_h!?~L~fiy9RkCWBZngT5M>FJR!D^zmQuq4 zPh_Ho7PocrY04txcg;pLo*W9gb8waH_qZ5$ff M%Ml1q0tTu37k#e^AOHXW delta 322 zcmca2vWuhso)F7a1|Z-BVi_P#0b*VtUIWA+@BoMff%qX1ivaOwD9ynL5tjwhCO|QL zAgv9gQ-HJqke&dfMS=7|AiWfbuLH3VkYCHpz#s;a2htJ@42cZOfeap?zyYYlSs<+j z, 2018 +# Wantoyo , 2018 # #, fuzzy msgid "" @@ -14,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-05 11:34-0400\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Harry Suryapambagya , 2018\n" +"Last-Translator: Wantoyo , 2018\n" "Language-Team: Indonesian (https://www.transifex.com/calamares/teams/20061/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,62 +25,66 @@ msgstr "" #: src/modules/displaymanager/main.py:380 msgid "Cannot write KDM configuration file" -msgstr "" +msgstr "Gak bisa menulis file konfigurasi KDM" #: src/modules/displaymanager/main.py:381 msgid "KDM config file {!s} does not exist" -msgstr "" +msgstr "File {!s} config KDM belum ada" #: src/modules/displaymanager/main.py:442 msgid "Cannot write LXDM configuration file" -msgstr "" +msgstr "Gak bisa menulis file konfigurasi LXDM" #: src/modules/displaymanager/main.py:443 msgid "LXDM config file {!s} does not exist" -msgstr "" +msgstr "File {!s} config LXDM enggak ada" #: src/modules/displaymanager/main.py:517 msgid "Cannot write LightDM configuration file" -msgstr "" +msgstr "Gak bisa menulis file konfigurasi LightDM" #: src/modules/displaymanager/main.py:518 msgid "LightDM config file {!s} does not exist" -msgstr "" +msgstr "File {!s} config LightDM belum ada" #: src/modules/displaymanager/main.py:592 msgid "Cannot configure LightDM" -msgstr "" +msgstr "Gak bisa mengkonfigurasi LightDM" #: src/modules/displaymanager/main.py:593 msgid "No LightDM greeter installed." -msgstr "" +msgstr "Tiada LightDM greeter yang terinstal." #: src/modules/displaymanager/main.py:624 msgid "Cannot write SLIM configuration file" -msgstr "" +msgstr "Gak bisa menulis file konfigurasi SLIM" #: src/modules/displaymanager/main.py:625 msgid "SLIM config file {!s} does not exist" -msgstr "" +msgstr "File {!s} config SLIM belum ada" #: src/modules/displaymanager/main.py:740 #: src/modules/displaymanager/main.py:772 msgid "No display managers selected for the displaymanager module." -msgstr "" +msgstr "Tiada display manager yang dipilih untuk modul displaymanager." #: src/modules/displaymanager/main.py:741 msgid "" "The displaymanagers list is empty or undefined in bothglobalstorage and " "displaymanager.conf." msgstr "" +"Daftar displaymanager telah kosong atau takdidefinisikan dalam " +"bothglobalstorage dan displaymanager.conf." #: src/modules/displaymanager/main.py:773 msgid "The list is empty after checking for installed display managers." msgstr "" +"Daftar telah kosong sesudah pemeriksaan untuk display manager yang " +"terinstal." #: src/modules/displaymanager/main.py:821 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "Konfigurasi display manager belum rampung" #: src/modules/umount/main.py:40 msgid "Unmount file systems." @@ -104,13 +109,13 @@ msgstr "Paket pemrosesan (%(count)d/%(total)d)" #: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "pasang paket" +msgstr "Instal paket-paket." #: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "memasang paket %(num)d" +msgstr[0] "Menginstal paket %(num)d" #: src/modules/packages/main.py:70 #, python-format diff --git a/lang/python/ja/LC_MESSAGES/python.mo b/lang/python/ja/LC_MESSAGES/python.mo index f95e6b93ad86b3cad31066fae4e40cad952a0ae5..687043bbf5052156147f174aaeabfef6f1978c8f 100644 GIT binary patch delta 686 zcmX}p&r4KM6u|K_Iio&vO2^E?qMHgXY++6XW|6e;AF!ZB5D$Gi4`)W1Hw3Px=YX`B zYTy|m2m=!Mi->T93TxN4l^Y4#Ty)&D9+!RZ%+!JNKKEQM=l*!7-9LJAzhmLILiCVV z$OG~kSqSkVTF;1FLJRw`4+n4p2XU@Z2Y7?}Gj`$;UchR@_NMy$b-cxV9O;*n1OwBs zfTrOmyo!f7hE*KGcvxf@pP^Y_#HYB2;~0yGbmJtx;_xo^Q&*csMzOa=SfHZzx19Jxr48<@#=Dsnu|-6G(it(C(R9GBzyl4bJ%~uUF00uMV=>lgj%qd&|Y{f z;g8gUhY`#C_YSgi_fII=^x#p#QAyX!D%Vp^Y9YI*?3t{SQBw(LYR*m1s+swWa?@Vc zP9~jcHSKx}NqbSH?6f`WWW3-syw`EE^X6o8`{+Ya9hbK%rS;wYNOL3@wl0TC!N-=q yk^H{)caGn$Rm$tyf2aNLwQouLoBD;X^V@pqi_X8)exb7URr?#-Uk$#sjr|3#8+DEV delta 550 zcmXZZJ4*vW5Ww+COiq)iiFqj`LO>ycL3{>$HCk9HLafB*5F;X9niB+tU@uri3yTB4 zfyI4-E9|uJ3z*KzLcziZ1pjlnfw|xAvdqrzJq~~8ny=}|tq^&#NIsFHlka|toW}pRa)Pi@Y4S2YWZJfkH zL}VH_Q1_qV9y*xAU%aBpRJ7ZuV~8xW?%@*t;VM>pyK@^?IA0zZXvgoU9d`mVecgj5 zaE|p&oWV<+MHd(F4YhDFCbEXRsQVo(;|uEkAH2azoF>r25a;`cQ^UUnNP^TxG?JwL znhePc3YV0Al3J1`HFzKy^hf-jK<*%1*pF1;0P;8@>!xKj?9zV2s=L{6C)}z<-Q6P_h-ZyIRm} z)LyVNwb8)Gqp_$w~><6iehmmXZGBKkOu1iD|ULede0NL63H{5568^M)KtQd zdke7~8Ov@<-O1R{0p$!=ki-r|V zYAH>2L5vtf0wt>1jYW~&_KMpdKd03PQ1hxy?<~Yo`H<$OrcX@0Q=zk!`P0=?CkykU zqqOyErX4lCx4UiQ)m2D^xl?s-T8sR;ycupqNaKDm;RU|uAEh7&UpeCWM|>YdZ(dx8 zocI>+HP4^${MRY)!F$<9E6j3Zy}IVo#M~+!QjKdHNt#E|)djN{(HluVqel~Ob+ocd zCOnFZ4V4@_oM!+b+3uoPUS06S$uvY$$%sojxL|F^gr(Bb(o)g7qoS5rc6&<=9&^YG zQ?l4)O5?u&YEViRONR=zYOS(Wo}lO#rj@ipBHN1{ytWm~wuDQHXOBSw8&* z3)izx(ti45wvt^+d)cQLW6nLZD}<$9b~Rlm%-mBNk{jvI?kIP_;2YU})!|3A>%#fB zvg@ilt8D(O8I%{-lwHoQprZYqR&qO)9aqi?{r>IU`8aRET0Md@uIE|y()G0OJOlE^ z$W{Zd!4UbvwQME51_ynXThndF+rdYDSmuY#t#D2sKDq(Dwd|@h@ERn0**6F;5vaZY X{_Ap&uR?s?xper?d+>YQrda<1zo1ti literal 0 HcmV?d00001 diff --git a/lang/python/mk/LC_MESSAGES/python.po b/lang/python/mk/LC_MESSAGES/python.po new file mode 100644 index 000000000..16a51e0c2 --- /dev/null +++ b/lang/python/mk/LC_MESSAGES/python.po @@ -0,0 +1,120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Martin Ristovski , 2018 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-10-05 11:34-0400\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Last-Translator: Martin Ristovski , 2018\n" +"Language-Team: Macedonian (https://www.transifex.com/calamares/teams/20061/mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#: src/modules/displaymanager/main.py:380 +msgid "Cannot write KDM configuration file" +msgstr "KDM конфигурациониот фајл не може да се создаде" + +#: src/modules/displaymanager/main.py:381 +msgid "KDM config file {!s} does not exist" +msgstr "KDM конфигурациониот фајл {!s} не постои" + +#: src/modules/displaymanager/main.py:442 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM конфигурациониот фајл не може да се создаде" + +#: src/modules/displaymanager/main.py:443 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM конфигурациониот фајл {!s} не постои" + +#: src/modules/displaymanager/main.py:517 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM конфигурациониот фајл не може да се создаде" + +#: src/modules/displaymanager/main.py:518 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM конфигурациониот фајл {!s} не постои" + +#: src/modules/displaymanager/main.py:592 +msgid "Cannot configure LightDM" +msgstr "Не може да се подеси LightDM" + +#: src/modules/displaymanager/main.py:593 +msgid "No LightDM greeter installed." +msgstr "Нема инсталирано LightDM поздравувач" + +#: src/modules/displaymanager/main.py:624 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM конфигурациониот фајл не може да се создаде" + +#: src/modules/displaymanager/main.py:625 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM конфигурациониот фајл {!s} не постои" + +#: src/modules/displaymanager/main.py:740 +#: src/modules/displaymanager/main.py:772 +msgid "No display managers selected for the displaymanager module." +msgstr "Немате избрано дисплеј менаџер за displaymanager модулот." + +#: src/modules/displaymanager/main.py:741 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:773 +msgid "The list is empty after checking for installed display managers." +msgstr "" + +#: src/modules/displaymanager/main.py:821 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: 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:62 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:67 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:70 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" From 0b6e1ca4884bdbeda25624c02640902b749fd268 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 13 Dec 2018 14:50:33 +0100 Subject: [PATCH 11/18] i18n: update list of translations from Transifex - Add automatic tooling to retrieve translation stats and output new CMake variable settings. - If there are i18n language selection warnings, stop CMake. --- CMakeLists.txt | 19 +++++++---- ci/txstats.py | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 ci/txstats.py diff --git a/CMakeLists.txt b/CMakeLists.txt index faaab2283..47054bd8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,12 +103,12 @@ set( CALAMARES_VERSION_RC 1 ) # 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 ca zh_TW hr cs_CZ da et fr id it_IT lt pl pt_PT es_MX tr_TR ) -set( _tx_good sq de pt_BR zh_CN ja ro es sk ) -set( _tx_ok hu ru he nl bg uk ast is ko ar sv el gl en_GB - th fi_FI hi eu nb sr sl sr@latin mr es_PR kn kk be ) -set( _tx_bad fr_CH gu lo fa ur uz eo ) - +set( _tx_complete zh_TW tr_TR sk pt_PT pt_BR pl lt ja id hr gl fr + et de da cs_CZ ca ) +set( _tx_good es sq es_MX zh_CN it_IT he en_GB ru ro hi bg hu ) +set( _tx_ok uk nl ast ko is ar sv el th fi_FI eu sr nb sl + sr@latin mr es_PR ) +set( _tx_bad eo kk kn uz ur mk lo gu fr_CH fa be ) ### Required versions # @@ -316,12 +316,14 @@ endif() # 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} ) +set( tx_errors OFF ) if ( prev_tx ) # Gone in new list foreach( l ${prev_tx} ) list( FIND curr_tx ${l} p_l ) if( p_l EQUAL -1 ) message(WARNING "Language ${l} was present in previous translations and is now absent.") + set( tx_errors ON ) endif() endforeach() @@ -330,10 +332,12 @@ if ( prev_tx ) list( FIND prev_tx ${l} p_l ) if( p_l EQUAL -1 ) message(WARNING "Language ${l} is new.") + set( tx_errors ON ) endif() set( p_l "lang/calamares_${l}.ts" ) if( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${p_l} ) message(WARNING "Language ${l} has no .ts file yet.") + set( tx_errors ON ) endif() endforeach() @@ -342,6 +346,9 @@ if ( prev_tx ) endif() unset( prev_tx ) unset( curr_tx ) +if( tx_errors ) + message( FATAL_ERROR "Translation warnings, see above." ) +endif() set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} ) list( SORT CALAMARES_TRANSLATION_LANGUAGES ) diff --git a/ci/txstats.py b/ci/txstats.py new file mode 100644 index 000000000..368ce503e --- /dev/null +++ b/ci/txstats.py @@ -0,0 +1,87 @@ +#! /usr/bin/env python +# +# Uses the Transifex API to get a list of enabled languages, +# and outputs CMake settings for inclusion into CMakeLists.txt. +import sys + +def get_tx_credentials(): + """ + Gets the API token out of the user's .transifexrc (this is supposed + to be secure). + """ + import configparser + import os + txconfig_name = os.path.expanduser("~/.transifexrc") + try: + with open(txconfig_name, "r") as f: + parser = configparser.SafeConfigParser() + parser.readfp(f) + + return parser.get("https://www.transifex.com", "password") + except IOError as e: + return None + +def output_langs(all_langs, label, filterfunc): + """ + Output (via print) all of the languages in @p all_langs + that satisfy the translation-percentage filter @p filterfunc. + Prints a CMake set() command with the @p label as part + of the variable name. + + Performs line-wrapping. + """ + these_langs = [l for s, l in all_langs if filterfunc(s)] + out = " ".join(["set( _tx_%s" % label, " ".join(these_langs), ")"]) + width = 68 + prefix = "" + + while len(out) > width - len(prefix): + chunk = out[:out[:width].rfind(" ")] + print("%s%s" % (prefix, chunk)) + out = out[len(chunk)+1:] + prefix = " " + print("%s%s" % (prefix, out)) + +def get_tx_stats(token): + """ + Does an API request to Transifex with the given API @p token, getting + the translation statistics for the main body of texts. Then prints + out CMake settings to replace the _tx_* variables in CMakeLists.txt + according to standard criteria. + """ + import requests + + r = requests.get("https://api.transifex.com/organizations/calamares/projects/calamares/resources/calamares-master/", auth=("api", token)) + if r.status_code != 200: + return 1 + + all_langs = [] + + j = r.json() + languages = j["stats"] + print("# Total %d languages" % len(languages)) + for lang_name in languages: + stats = languages[lang_name]["translated"]["percentage"] + all_langs.append((stats, lang_name)) + + all_langs.sort(reverse=True) + + output_langs(all_langs, "complete", lambda s : s == 1.0) + output_langs(all_langs, "good", lambda s : 1.0 > s >= 0.75) + output_langs(all_langs, "ok", lambda s : 0.75 > s >= 0.05) + output_langs(all_langs, "bad", lambda s : 0.05 > s) + + return 0 + + +def main(): + cred = get_tx_credentials() + if cred: + return get_tx_stats(cred) + else: + print("! Could not find API token in ~/.transifexrc") + return 1 + return 0 + +if __name__ == "__main__": + sys.exit(main()) From 311af6de5d9a4d157ec6d888e6b85b0aaf9441a1 Mon Sep 17 00:00:00 2001 From: Harald Sitter Date: Thu, 5 Apr 2018 11:57:23 +0200 Subject: [PATCH 12/18] [locale] prefer native language and country names when available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This basically means we talk about localization in the respective localized variant. e.g. "German (Germany)" ➡ "Deutsch (Deutschland)". If geoip lookup failed or isn't configured for whatever reason it's a stretch to expect the user to know english enough to find their own language. Preferring the localized strings resolves this issue. Additionally this happens to bypass #712 respectively https://bugreports.qt.io/browse/QTBUG-34287 as the native names are properly spelled. So, as long as Qt has localized names the names will also be properly spelled. --- src/modules/keyboard/KeyboardPage.cpp | 2 ++ src/modules/locale/LocalePage.cpp | 9 +++++++-- src/modules/welcome/WelcomePage.cpp | 1 - 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 6f4473014..9056ba273 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -369,6 +369,8 @@ KeyboardPage::onActivate() { const auto langParts = lang.split( '_', QString::SkipEmptyParts ); + // Note that this his string is not fit for display purposes! + // It doesn't come from QLocale::nativeCountryName. QString country = QLocale::countryToString( QLocale( lang ).country() ); cDebug() << " .. extracted country" << country << "::" << langParts; diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 9aad283c6..50f2d9889 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -477,8 +477,13 @@ LocalePage::prettyLCLocale( const QString& lcLocale ) const QLocale locale( localeString ); //: Language (Country) - return tr( "%1 (%2)" ).arg( QLocale::languageToString( locale.language() ) ) - .arg( QLocale::countryToString( locale.country() ) ); + const QString lang = !locale.nativeLanguageName().isEmpty() ? + locale.nativeLanguageName() : + QLocale::languageToString( locale.language() ); + const QString country = !locale.nativeCountryName().isEmpty() ? + locale.nativeCountryName() : + QLocale::countryToString( locale.country() ); + return tr( "%1 (%2)" ).arg( lang ).arg( country ); } void diff --git a/src/modules/welcome/WelcomePage.cpp b/src/modules/welcome/WelcomePage.cpp index 0a1d2fb7d..4fc44e0d5 100644 --- a/src/modules/welcome/WelcomePage.cpp +++ b/src/modules/welcome/WelcomePage.cpp @@ -345,4 +345,3 @@ WelcomePage::focusInEvent( QFocusEvent* e ) ui->languageWidget->setFocus(); e->accept(); } - From 084f4d24450b018999b97f53f3580cc69507cc5c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 14 Dec 2018 10:52:55 +0100 Subject: [PATCH 13/18] [libcalamaresui] Refactor: move LocaleLabel to UI library - This is prep-work for making locale labels consistent everywhere. - While here, improve code documentation. --- .../utils/CalamaresUtilsGui.cpp | 37 ++++++++++ src/libcalamaresui/utils/CalamaresUtilsGui.h | 65 ++++++++++++++++- src/modules/welcome/WelcomePage.cpp | 72 +------------------ 3 files changed, 103 insertions(+), 71 deletions(-) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 425ee1811..41465ca02 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -266,5 +266,42 @@ clearLayout( QLayout* layout ) } } +LocaleLabel::LocaleLabel( const QString& locale ) + : m_locale( LocaleLabel::getLocale( locale ) ) + , m_localeId( locale ) +{ + QString sortKey = QLocale::languageToString( m_locale.language() ); + QString label = m_locale.nativeLanguageName(); + + if ( label.isEmpty() ) + label = QString( QLatin1Literal( "* %1 (%2)" ) ).arg( locale, sortKey ); + + if ( locale.contains( '_' ) && QLocale::countriesForLanguage( m_locale.language() ).count() > 2 ) + { + QLatin1Literal countrySuffix( " (%1)" ); + + sortKey.append( QString( countrySuffix ).arg( QLocale::countryToString( m_locale.country() ) ) ); + + // If the language name is RTL, make this parenthetical addition RTL as well. + QString countryFormat = label.isRightToLeft() ? QString( QChar( 0x202B ) ) : QString(); + countryFormat.append( countrySuffix ); + label.append( countryFormat.arg( m_locale.nativeCountryName() ) ); + } + + m_sortKey = sortKey; + m_label = label; +} + +QLocale LocaleLabel::getLocale( const QString& localeName ) +{ + if ( localeName.contains( "@latin" ) ) + { + QLocale loc( localeName ); // Ignores @latin + return QLocale( loc.language(), QLocale::Script::LatinScript, loc.country() ); + } + else + return QLocale( localeName ); +} + } diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index 4b041466d..1e5f283b1 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -23,6 +23,7 @@ #include "utils/CalamaresUtils.h" #include "UiDllMacro.h" +#include #include #include @@ -125,6 +126,68 @@ constexpr int windowMinimumWidth = 800; constexpr int windowMinimumHeight = 520; constexpr int windowPreferredWidth = 1024; constexpr int windowPreferredHeight = 520; -} + +/** + * @brief Consistent locale (language + country) naming. + * + * Support class to turn locale names (as used by Calamares's + * translation system) into QLocales, and also into consistent + * human-readable text labels. + */ +class LocaleLabel : public QObject +{ + Q_OBJECT + +public: + /** @brief Construct from a locale name. + * + * The locale name should be one that Qt recognizes, e.g. en_US or ar_EY. + */ + LocaleLabel( const QString& localeName ); + + /** @brief Define a sorting order. + * + * English (@see isEnglish() -- it means en_US) is sorted at the top. + */ + bool operator <(const LocaleLabel& other) const + { + if ( isEnglish() ) + return !other.isEnglish(); + if ( other.isEnglish() ) + return false; + return m_sortKey < other.m_sortKey; + } + + /** @brief Is this locale English? + * + * en_US and en (American English) is defined as English. The Queen's + * English -- proper English -- is relegated to non-English status. + */ + bool isEnglish() const + { + return m_localeId == QLatin1Literal( "en_US" ) || m_localeId == QLatin1Literal( "en" ); + } + + /** @brief Get the human-readable name for this locale. */ + QString label() const { return m_label; } + /** @brief Get the Qt locale. */ + QLocale locale() const { return m_locale; } + + /** @brief Get a Qt locale for the given @p localeName + * + * This special-cases `sr@latin`, which is used as a translation + * name in Calamares, while Qt recognizes `sr@latn`. + */ + static QLocale getLocale( const QString& localeName ); + +protected: + QLocale m_locale; + QString m_localeId; // the locale identifier, e.g. "en_GB" + QString m_sortKey; // the English name of the locale + QString m_label; // the native name of the locale +} ; + + +} // namespace CalamaresUtils #endif // CALAMARESUTILSGUI_H diff --git a/src/modules/welcome/WelcomePage.cpp b/src/modules/welcome/WelcomePage.cpp index 4fc44e0d5..8ffb153bf 100644 --- a/src/modules/welcome/WelcomePage.cpp +++ b/src/modules/welcome/WelcomePage.cpp @@ -132,74 +132,6 @@ bool matchLocale( QComboBox& list, QLocale& matchFound, std::function 2 ) - { - QLatin1Literal countrySuffix( " (%1)" ); - - sortKey.append( QString( countrySuffix ).arg( QLocale::countryToString( m_locale.country() ) ) ); - - // If the language name is RTL, make this parenthetical addition RTL as well. - QString countryFormat = label.isRightToLeft() ? QString( QChar( 0x202B ) ) : QString(); - countryFormat.append( countrySuffix ); - label.append( countryFormat.arg( m_locale.nativeCountryName() ) ); - } - - m_sortKey = sortKey; - m_label = label; - } - - QLocale m_locale; - QString m_localeId; // the locale identifier, e.g. "en_GB" - QString m_sortKey; // the English name of the locale - QString m_label; // the native name of the locale - - /** @brief Define a sorting order. - * - * English (@see isEnglish() -- it means en_US) is sorted at the top. - */ - bool operator <(const LocaleLabel& other) const - { - if ( isEnglish() ) - return !other.isEnglish(); - if ( other.isEnglish() ) - return false; - return m_sortKey < other.m_sortKey; - } - - /** @brief Is this locale English? - * - * en_US and en (American English) is defined as English. The Queen's - * English -- proper English -- is relegated to non-English status. - */ - bool isEnglish() const - { - return m_localeId == QLatin1Literal( "en_US" ) || m_localeId == QLatin1Literal( "en" ); - } - - static QLocale getLocale( const QString& localeName ) - { - if ( localeName.contains( "@latin" ) ) - { - QLocale loc( localeName ); - return QLocale( loc.language(), QLocale::Script::LatinScript, loc.country() ); - } - else - return QLocale( localeName ); - } -} ; - void WelcomePage::initLanguages() { @@ -208,7 +140,7 @@ WelcomePage::initLanguages() ui->languageWidget->setInsertPolicy( QComboBox::InsertAtBottom ); { - std::list< LocaleLabel > localeList; + std::list< CalamaresUtils::LocaleLabel > localeList; const auto locales = QString( CALAMARES_TRANSLATION_LANGUAGES ).split( ';'); for ( const QString& locale : locales ) { @@ -219,7 +151,7 @@ WelcomePage::initLanguages() for ( const auto& locale : localeList ) { - ui->languageWidget->addItem( locale.m_label, locale.m_locale ); + ui->languageWidget->addItem( locale.label(), locale.locale() ); } } From 1f4ac45bb5d6ad4712109bd126a33cf306d35e9d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 14 Dec 2018 11:22:47 +0100 Subject: [PATCH 14/18] [libcalamaresui] Cleanup locale-labeling code - Support translations of the "language (country)" format instead of forcing English parenthesis. --- .../utils/CalamaresUtilsGui.cpp | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 41465ca02..5e4b8e069 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -270,26 +270,27 @@ LocaleLabel::LocaleLabel( const QString& locale ) : m_locale( LocaleLabel::getLocale( locale ) ) , m_localeId( locale ) { + QString longFormat = tr( "%1 (%2)", "Language (Country)" ); + QString sortKey = QLocale::languageToString( m_locale.language() ); - QString label = m_locale.nativeLanguageName(); + QString languageName = m_locale.nativeLanguageName(); + QString countryName; - if ( label.isEmpty() ) - label = QString( QLatin1Literal( "* %1 (%2)" ) ).arg( locale, sortKey ); + if ( languageName.isEmpty() ) + languageName = QString( QLatin1Literal( "* %1 (%2)" ) ).arg( locale, sortKey ); - if ( locale.contains( '_' ) && QLocale::countriesForLanguage( m_locale.language() ).count() > 2 ) + bool needsCountryName = locale.contains( '_' ) && QLocale::countriesForLanguage( m_locale.language() ).count() > 2; + + if ( needsCountryName ) { - QLatin1Literal countrySuffix( " (%1)" ); + sortKey.append( '+' ); + sortKey.append( QLocale::countryToString( m_locale.country() ) ); - sortKey.append( QString( countrySuffix ).arg( QLocale::countryToString( m_locale.country() ) ) ); - - // If the language name is RTL, make this parenthetical addition RTL as well. - QString countryFormat = label.isRightToLeft() ? QString( QChar( 0x202B ) ) : QString(); - countryFormat.append( countrySuffix ); - label.append( countryFormat.arg( m_locale.nativeCountryName() ) ); + countryName = m_locale.nativeCountryName(); } m_sortKey = sortKey; - m_label = label; + m_label = needsCountryName ? longFormat.arg( languageName ).arg( countryName ) : languageName; } QLocale LocaleLabel::getLocale( const QString& localeName ) From 3dda9ab860f1d2aec92e505465f4bc1c97d6d664 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 14 Dec 2018 11:30:05 +0100 Subject: [PATCH 15/18] [libcalamaresui] LocaleLabel doesn't need to inherit QObject - Use static QObject::tr instead. --- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 2 +- src/libcalamaresui/utils/CalamaresUtilsGui.h | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 5e4b8e069..803e1b050 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -270,7 +270,7 @@ LocaleLabel::LocaleLabel( const QString& locale ) : m_locale( LocaleLabel::getLocale( locale ) ) , m_localeId( locale ) { - QString longFormat = tr( "%1 (%2)", "Language (Country)" ); + QString longFormat = QObject::tr( "%1 (%2)", "Language (Country)" ); QString sortKey = QLocale::languageToString( m_locale.language() ); QString languageName = m_locale.nativeLanguageName(); diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index 1e5f283b1..9cbc7a4a3 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -134,10 +134,8 @@ constexpr int windowPreferredHeight = 520; * translation system) into QLocales, and also into consistent * human-readable text labels. */ -class LocaleLabel : public QObject +class LocaleLabel { - Q_OBJECT - public: /** @brief Construct from a locale name. * From 8790985fca581469b96b61cb71f1c631a2291b2a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 14 Dec 2018 11:33:13 +0100 Subject: [PATCH 16/18] [libcalamaresui] Code-formatting, remove dead code --- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 8 ++------ src/libcalamaresui/utils/CalamaresUtilsGui.h | 14 ++++++++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 803e1b050..789b41c4f 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -170,11 +170,7 @@ createRoundedImage( const QPixmap& pixmap, const QSize& size, float frameWidthPc painter.setBrush( brush ); painter.setPen( pen ); - painter.drawRoundedRect( outerRect, qreal(frameWidthPct) * 100.0, qreal(frameWidthPct) * 100.0, Qt::RelativeSize ); - -/* painter.setBrush( Qt::transparent ); - painter.setPen( Qt::white ); - painter.drawRoundedRect( outerRect, frameWidthPct, frameWidthPct, Qt::RelativeSize ); */ + painter.drawRoundedRect( outerRect, qreal( frameWidthPct ) * 100.0, qreal( frameWidthPct ) * 100.0, Qt::RelativeSize ); return frame; } @@ -246,7 +242,7 @@ setDefaultFontSize( int points ) QSize defaultIconSize() { - const int w = int(defaultFontHeight() * 1.6); + const int w = int( defaultFontHeight() * 1.6 ); return QSize( w, w ); } diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index 9cbc7a4a3..e75eee210 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -147,7 +147,7 @@ public: * * English (@see isEnglish() -- it means en_US) is sorted at the top. */ - bool operator <(const LocaleLabel& other) const + bool operator <( const LocaleLabel& other ) const { if ( isEnglish() ) return !other.isEnglish(); @@ -163,13 +163,19 @@ public: */ bool isEnglish() const { - return m_localeId == QLatin1Literal( "en_US" ) || m_localeId == QLatin1Literal( "en" ); + return m_localeId == QLatin1Literal( "en_US" ) || m_localeId == QLatin1Literal( "en" ); } /** @brief Get the human-readable name for this locale. */ - QString label() const { return m_label; } + QString label() const + { + return m_label; + } /** @brief Get the Qt locale. */ - QLocale locale() const { return m_locale; } + QLocale locale() const + { + return m_locale; + } /** @brief Get a Qt locale for the given @p localeName * From 210965aca48dac26837335f1d7538fc4a6fc5183 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 14 Dec 2018 13:20:32 +0100 Subject: [PATCH 17/18] [libcalamaresui] Allow always-show-country setting in locale label --- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 5 +++-- src/libcalamaresui/utils/CalamaresUtilsGui.h | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 789b41c4f..a7783af3e 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -262,7 +262,7 @@ clearLayout( QLayout* layout ) } } -LocaleLabel::LocaleLabel( const QString& locale ) +LocaleLabel::LocaleLabel( const QString& locale, LabelFormat format ) : m_locale( LocaleLabel::getLocale( locale ) ) , m_localeId( locale ) { @@ -275,7 +275,8 @@ LocaleLabel::LocaleLabel( const QString& locale ) if ( languageName.isEmpty() ) languageName = QString( QLatin1Literal( "* %1 (%2)" ) ).arg( locale, sortKey ); - bool needsCountryName = locale.contains( '_' ) && QLocale::countriesForLanguage( m_locale.language() ).count() > 2; + bool needsCountryName = ( format == LabelFormat::AlwaysWithCountry ) || + (locale.contains( '_' ) && QLocale::countriesForLanguage( m_locale.language() ).count() > 1 ); if ( needsCountryName ) { diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index e75eee210..6a036b218 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -137,11 +137,16 @@ constexpr int windowPreferredHeight = 520; class LocaleLabel { public: + /** @brief Formatting option for label -- add (country) to label. */ + enum class LabelFormat { AlwaysWithCountry, IfNeededWithCountry } ; + /** @brief Construct from a locale name. * - * The locale name should be one that Qt recognizes, e.g. en_US or ar_EY. + * The @p localeName should be one that Qt recognizes, e.g. en_US or ar_EY. + * The @p format determines whether the country name is always present + * in the label (human-readable form) or only if needed for disambiguation. */ - LocaleLabel( const QString& localeName ); + LocaleLabel( const QString& localeName, LabelFormat format = LabelFormat::IfNeededWithCountry ); /** @brief Define a sorting order. * From 56a71c232f73113843272bc85bfb7ee904379d21 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 14 Dec 2018 13:27:32 +0100 Subject: [PATCH 18/18] [locale] Use the re-factored LocaleLabel --- src/modules/locale/LocalePage.cpp | 31 ++++++++----------------------- src/modules/locale/LocalePage.h | 1 - 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 50f2d9889..ea77d6b9f 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -21,6 +21,7 @@ #include "timezonewidget/timezonewidget.h" #include "SetTimezoneJob.h" +#include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" #include "utils/Retranslator.h" #include "GlobalStorage.h" @@ -383,12 +384,14 @@ LocalePage::init( const QString& initialRegion, std::pair< QString, QString > LocalePage::prettyLocaleStatus( const LocaleConfiguration& lc ) const { + using CalamaresUtils::LocaleLabel; + + LocaleLabel lang( lc.lang, LocaleLabel::LabelFormat::AlwaysWithCountry ); + LocaleLabel num( lc.lc_numeric, LocaleLabel::LabelFormat::AlwaysWithCountry ); + return std::make_pair< QString, QString >( - tr( "The system language will be set to %1." ) - .arg( prettyLCLocale( lc.lang ) ), - tr( "The numbers and dates locale will be set to %1." ) - .arg( prettyLCLocale( lc.lc_numeric ) ) - ); + tr( "The system language will be set to %1." ).arg( lang.label() ), + tr( "The numbers and dates locale will be set to %1." ).arg( num.label() ) ); } QString @@ -468,24 +471,6 @@ LocalePage::guessLocaleConfiguration() const } -QString -LocalePage::prettyLCLocale( const QString& lcLocale ) const -{ - QString localeString = lcLocale; - if ( localeString.endsWith( " UTF-8" ) ) - localeString.remove( " UTF-8" ); - - QLocale locale( localeString ); - //: Language (Country) - const QString lang = !locale.nativeLanguageName().isEmpty() ? - locale.nativeLanguageName() : - QLocale::languageToString( locale.language() ); - const QString country = !locale.nativeCountryName().isEmpty() ? - locale.nativeCountryName() : - QLocale::countryToString( locale.country() ); - return tr( "%1 (%2)" ).arg( lang ).arg( country ); -} - void LocalePage::updateGlobalStorage() { diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index c4ca20503..fae16cfb9 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -51,7 +51,6 @@ public: private: LocaleConfiguration guessLocaleConfiguration() const; - QString prettyLCLocale( const QString& localesMap ) const; // For the given locale config, return two strings describing // the settings for language and numbers.