From 6d744374db5ac64fc538f89412eb91f4798187b0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 12 May 2020 11:22:25 +0200 Subject: [PATCH 001/335] [tracking] Use enum-conveniences --- src/modules/tracking/TrackingType.h | 12 +++++++++--- src/modules/tracking/TrackingViewStep.cpp | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/modules/tracking/TrackingType.h b/src/modules/tracking/TrackingType.h index 02dbd934e..04e8d2ebe 100644 --- a/src/modules/tracking/TrackingType.h +++ b/src/modules/tracking/TrackingType.h @@ -19,11 +19,17 @@ #ifndef TRACKINGTYPE_H #define TRACKINGTYPE_H +#include "utils/NamedEnum.h" + enum class TrackingType { - InstallTracking, - MachineTracking, - UserTracking + NoTracking, // Do not enable tracking at all + InstallTracking, // Track that *this* install has happened + MachineTracking, // Track the machine, ongoing + UserTracking // Track the user, ongoing }; +// Implemented in TrackingViewStep.cpp +const NamedEnumTable< TrackingType >& trackingNames(); + #endif //TRACKINGTYPE_H diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index a51864ea9..2cb97f079 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -189,3 +189,20 @@ TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_widget->setGeneralPolicy( CalamaresUtils::getString( configurationMap, "policy" ) ); m_widget->setTrackingLevel( CalamaresUtils::getString( configurationMap, "default" ) ); } + +const NamedEnumTable< TrackingType >& +trackingNames() +{ + // *INDENT-OFF* + // clang-format off + static const NamedEnumTable< TrackingType > names { + { QStringLiteral( "none" ), TrackingType::NoTracking }, + { QStringLiteral( "install" ), TrackingType::InstallTracking }, + { QStringLiteral( "machine" ), TrackingType::MachineTracking }, + { QStringLiteral( "user" ), TrackingType::UserTracking } + }; + // clang-format on + // *INDENT-ON* + + return names; +} From fd2853b2cfa49d6af5add66ceaa75c60b0f97391 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 12 May 2020 11:41:02 +0200 Subject: [PATCH 002/335] [tracking] Switch setTrackingLevel() to use enum --- src/modules/tracking/TrackingPage.cpp | 34 ++++++++++------------- src/modules/tracking/TrackingPage.h | 14 ++++++---- src/modules/tracking/TrackingViewStep.cpp | 7 ++++- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index ba1d5efd0..359fac4b4 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -172,34 +172,28 @@ TrackingPage::setGeneralPolicy( QString url ) } void -TrackingPage::setTrackingLevel( const QString& l ) +TrackingPage::setTrackingLevel( TrackingType t ) { - QString level = l.toLower(); QRadioButton* button = nullptr; - if ( level.isEmpty() || level == "none" ) + switch( t ) { - button = ui->noneRadio; - } - else if ( level == "install" ) - { - button = ui->installRadio; - } - else if ( level == "machine" ) - { - button = ui->machineRadio; - } - else if ( level == "user" ) - { - button = ui->userRadio; + case TrackingType::NoTracking: + button = ui->noneRadio; + break; + case TrackingType::InstallTracking: + button = ui->installRadio; + break; + case TrackingType::MachineTracking: + button = ui->machineRadio; + break; + case TrackingType::UserTracking: + button = ui->userRadio; + break; } if ( button != nullptr ) { button->setChecked( true ); } - else - { - cWarning() << "unknown default tracking level" << l; - } } diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index 560115b92..52cfca493 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -35,7 +35,8 @@ class TrackingPage : public QWidget public: explicit TrackingPage( QWidget* parent = nullptr ); - /** + /** @brief Set initial state for each option + * * Enables or disables the tracking-option block for the given * tracking option @p t, and sets the initial state of the * checkbox to the @p user default. @@ -43,19 +44,20 @@ public: * Call this in ascending order of tracking type. */ void enableTrackingOption( TrackingType t, bool enabled ); - /** + /** @brief Is the given tracking type enabled? + * * Returns whether tracking type @p is selected by the user * (i.e. is the radio button for that level, or for a higher * tracking level, enabled). */ bool getTrackingOption( TrackingType t ); - /* URL for given level @p t */ + ///@brief Set URL for given level @p t void setTrackingPolicy( TrackingType t, QString url ); - /* URL for the global link */ + ///@brief Set URL for the global link void setGeneralPolicy( QString url ); - /* Select one of the four levels by name */ - void setTrackingLevel( const QString& level ); + ///@brief Select one of the four levels by name + void setTrackingLevel( TrackingType t ); private: Ui::TrackingPage* ui; diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 2cb97f079..f934301bd 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -187,7 +187,12 @@ TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) setTrackingOption( configurationMap, "user", TrackingType::UserTracking ); m_widget->setGeneralPolicy( CalamaresUtils::getString( configurationMap, "policy" ) ); - m_widget->setTrackingLevel( CalamaresUtils::getString( configurationMap, "default" ) ); + bool ok; + m_widget->setTrackingLevel( trackingNames().find(CalamaresUtils::getString( configurationMap, "default" ), ok ) ); + if ( !ok ) + { + cWarning() << "Default tracking level unknown:" << CalamaresUtils::getString( configurationMap, "default" ); + } } const NamedEnumTable< TrackingType >& From 8ed8b5dfa3e00274eb98dd4fa40274a1bbbfb82e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 12 May 2020 12:11:11 +0200 Subject: [PATCH 003/335] [tracking] Reduce compiler warnings - Newly added enum value NoTracking needs explicit handling in some switch()es, although it will never be passed in. --- src/modules/tracking/TrackingPage.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 359fac4b4..0ac466673 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -70,6 +70,9 @@ TrackingPage::enableTrackingOption( TrackingType t, bool enabled ) switch ( t ) { + case TrackingType::NoTracking: + // Nothing to do, this **has** no widget + return; case TrackingType::InstallTracking: group = ui->installGroup; break; @@ -108,6 +111,8 @@ TrackingPage::getTrackingOption( TrackingType t ) #define ch( x ) ui->x->isChecked() switch ( t ) { + case TrackingType::NoTracking: + return false; case TrackingType::InstallTracking: enabled = ch( installRadio ) || ch( machineRadio ) || ch( userRadio ); break; @@ -128,6 +133,9 @@ TrackingPage::setTrackingPolicy( TrackingType t, QString url ) QToolButton* button = nullptr; switch ( t ) { + case TrackingType::NoTracking: + cWarning() << "Cannot configure NoTracking widget"; + return; case TrackingType::InstallTracking: button = ui->installPolicyButton; break; From a69d47c115bcd32e9d4b8628b9ac939efb26d3fa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 12 May 2020 14:24:33 +0200 Subject: [PATCH 004/335] [tracking] Add a Config object --- src/modules/tracking/CMakeLists.txt | 1 + src/modules/tracking/Config.cpp | 40 +++++++++++++++++++++++++ src/modules/tracking/Config.h | 45 +++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 src/modules/tracking/Config.cpp create mode 100644 src/modules/tracking/Config.h diff --git a/src/modules/tracking/CMakeLists.txt b/src/modules/tracking/CMakeLists.txt index 24e020af4..11ccdb00b 100644 --- a/src/modules/tracking/CMakeLists.txt +++ b/src/modules/tracking/CMakeLists.txt @@ -2,6 +2,7 @@ calamares_add_plugin( tracking TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES + Config.cpp TrackingJobs.cpp TrackingPage.cpp TrackingViewStep.cpp diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp new file mode 100644 index 000000000..d920074fa --- /dev/null +++ b/src/modules/tracking/Config.cpp @@ -0,0 +1,40 @@ +/* === This file is part of Calamares - === + * + * Copyright 2020, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "Config.h" + +#include "utils/Logger.h" +#include "utils/Variant.h" + +Config::Config( QObject* parent ) + : QObject( parent ) +{ +} + +void +Config::setConfigurationMap( const QVariantMap& m ) +{ + m_generalPolicy = CalamaresUtils::getString( m, "policy" ); + emit generalPolicyChanged( m_generalPolicy ); +} + +QString +Config::generalPolicy() const +{ + return m_generalPolicy; +} diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h new file mode 100644 index 000000000..d0d6f6e0c --- /dev/null +++ b/src/modules/tracking/Config.h @@ -0,0 +1,45 @@ +/* === This file is part of Calamares - === + * + * Copyright 2020, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef TRACKING_CONFIG_H +#define TRACKING_CONFIG_H + +#include +#include +#include + +class Config : public QObject +{ + Q_OBJECT + Q_PROPERTY( QString generalPolicy READ generalPolicy NOTIFY generalPolicyChanged FINAL ) + +public: + Config( QObject* parent = nullptr ); + void setConfigurationMap( const QVariantMap& ); + +public Q_SLOTS: + QString generalPolicy() const; + +signals: + void generalPolicyChanged( QString ); + +private: + QString m_generalPolicy; +}; + +#endif From 044f5ce2b56f97600d604353f4eef94bfdf7ac78 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 12 May 2020 14:39:42 +0200 Subject: [PATCH 005/335] [tracking] Use the config object - right now only holds the global policy URL (as a string) --- src/modules/tracking/TrackingPage.cpp | 75 +++++++++++++---------- src/modules/tracking/TrackingPage.h | 12 +++- src/modules/tracking/TrackingViewStep.cpp | 9 ++- src/modules/tracking/TrackingViewStep.h | 2 + 4 files changed, 60 insertions(+), 38 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 0ac466673..ae9a04843 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -18,6 +18,7 @@ #include "TrackingPage.h" +#include "Config.h" #include "ui_page_trackingstep.h" #include "Branding.h" @@ -32,27 +33,12 @@ #include #include -TrackingPage::TrackingPage( QWidget* parent ) +TrackingPage::TrackingPage( Config* config, QWidget* parent ) : QWidget( parent ) , ui( new Ui::TrackingPage ) { ui->setupUi( this ); - CALAMARES_RETRANSLATE( - QString product = Calamares::Branding::instance()->shortProductName(); ui->retranslateUi( this ); - ui->generalExplanation->setText( - tr( "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." ) - .arg( product ) ); - ui->installExplanation->setText( - tr( "By selecting this you will send information about your installation and hardware. This information " - "will only be sent once after the installation finishes." ) ); - ui->machineExplanation->setText( tr( "By selecting this you will periodically send information about " - "your installation, hardware and applications, to %1." ) - .arg( product ) ); - ui->userExplanation->setText( tr( "By selecting this you will regularly send information about your " - "installation, hardware, applications and usage patterns, to %1." ) - .arg( product ) ); ) + CALAMARES_RETRANSLATE_SLOT( &TrackingPage::retranslate ); QButtonGroup* group = new QButtonGroup( this ); group->setExclusive( true ); @@ -61,8 +47,33 @@ TrackingPage::TrackingPage( QWidget* parent ) group->addButton( ui->machineRadio ); group->addButton( ui->userRadio ); ui->noneRadio->setChecked( true ); + + connect( config, &Config::generalPolicyChanged, this, &TrackingPage::setGeneralPolicy ); + retranslate(); +} + +void +TrackingPage::retranslate() +{ + QString product = Calamares::Branding::instance()->shortProductName(); + ui->retranslateUi( this ); + ui->generalExplanation->setText( + tr( "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." ) + .arg( product ) ); + ui->installExplanation->setText( + tr( "By selecting this you will send information about your installation and hardware. This information " + "will only be sent once after the installation finishes." ) ); + ui->machineExplanation->setText( tr( "By selecting this you will periodically send information about " + "your installation, hardware and applications, to %1." ) + .arg( product ) ); + ui->userExplanation->setText( tr( "By selecting this you will regularly send information about your " + "installation, hardware, applications and usage patterns, to %1." ) + .arg( product ) ); } + void TrackingPage::enableTrackingOption( TrackingType t, bool enabled ) { @@ -154,7 +165,7 @@ TrackingPage::setTrackingPolicy( TrackingType t, QString url ) } else { - connect( button, &QToolButton::clicked, [ url ] { QDesktopServices::openUrl( url ); } ); + connect( button, &QToolButton::clicked, [url] { QDesktopServices::openUrl( url ); } ); cDebug() << "Tracking policy" << int( t ) << "set to" << url; } else @@ -175,7 +186,7 @@ TrackingPage::setGeneralPolicy( QString url ) ui->generalPolicyLabel->show(); ui->generalPolicyLabel->setTextInteractionFlags( Qt::TextBrowserInteraction ); ui->generalPolicyLabel->show(); - connect( ui->generalPolicyLabel, &QLabel::linkActivated, [ url ] { QDesktopServices::openUrl( url ); } ); + connect( ui->generalPolicyLabel, &QLabel::linkActivated, [url] { QDesktopServices::openUrl( url ); } ); } } @@ -184,20 +195,20 @@ TrackingPage::setTrackingLevel( TrackingType t ) { QRadioButton* button = nullptr; - switch( t ) + switch ( t ) { - case TrackingType::NoTracking: - button = ui->noneRadio; - break; - case TrackingType::InstallTracking: - button = ui->installRadio; - break; - case TrackingType::MachineTracking: - button = ui->machineRadio; - break; - case TrackingType::UserTracking: - button = ui->userRadio; - break; + case TrackingType::NoTracking: + button = ui->noneRadio; + break; + case TrackingType::InstallTracking: + button = ui->installRadio; + break; + case TrackingType::MachineTracking: + button = ui->machineRadio; + break; + case TrackingType::UserTracking: + button = ui->userRadio; + break; } if ( button != nullptr ) diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index 52cfca493..dbc9cc20c 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -29,11 +29,13 @@ namespace Ui class TrackingPage; } +class Config; + class TrackingPage : public QWidget { Q_OBJECT public: - explicit TrackingPage( QWidget* parent = nullptr ); + explicit TrackingPage( Config* config, QWidget* parent = nullptr ); /** @brief Set initial state for each option * @@ -54,11 +56,15 @@ public: ///@brief Set URL for given level @p t void setTrackingPolicy( TrackingType t, QString url ); - ///@brief Set URL for the global link - void setGeneralPolicy( QString url ); ///@brief Select one of the four levels by name void setTrackingLevel( TrackingType t ); +public Q_SLOTS: + ///@brief Set URL for the global link + void setGeneralPolicy( QString url ); + + void retranslate(); + private: Ui::TrackingPage* ui; }; diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index f934301bd..6da292242 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -18,6 +18,7 @@ #include "TrackingViewStep.h" +#include "Config.h" #include "TrackingJobs.h" #include "TrackingPage.h" @@ -43,7 +44,8 @@ isValidStyle( const QString& s ) TrackingViewStep::TrackingViewStep( QObject* parent ) : Calamares::ViewStep( parent ) - , m_widget( new TrackingPage ) + , m_config( new Config( this ) ) + , m_widget( new TrackingPage( m_config ) ) { emit nextStatusChanged( false ); } @@ -186,9 +188,10 @@ TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) setTrackingOption( configurationMap, "user", TrackingType::UserTracking ); - m_widget->setGeneralPolicy( CalamaresUtils::getString( configurationMap, "policy" ) ); + m_config->setConfigurationMap( configurationMap ); + bool ok; - m_widget->setTrackingLevel( trackingNames().find(CalamaresUtils::getString( configurationMap, "default" ), ok ) ); + m_widget->setTrackingLevel( trackingNames().find( CalamaresUtils::getString( configurationMap, "default" ), ok ) ); if ( !ok ) { cWarning() << "Default tracking level unknown:" << CalamaresUtils::getString( configurationMap, "default" ); diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index bb40d292a..a342dc498 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -29,6 +29,7 @@ #include #include +class Config; class TrackingPage; class PLUGINDLLEXPORT TrackingViewStep : public Calamares::ViewStep @@ -58,6 +59,7 @@ public: private: QVariantMap setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t ); + Config* m_config; TrackingPage* m_widget; QString m_installTrackingUrl; QString m_machineTrackingStyle; From ed71b2fbf530af59dff51782dc7e37e6d25e0954 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 12 May 2020 14:42:04 +0200 Subject: [PATCH 006/335] [tracking] Only accept valid policy URLs --- src/modules/tracking/Config.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index d920074fa..67da7025d 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -21,6 +21,8 @@ #include "utils/Logger.h" #include "utils/Variant.h" +#include + Config::Config( QObject* parent ) : QObject( parent ) { @@ -30,6 +32,12 @@ void Config::setConfigurationMap( const QVariantMap& m ) { m_generalPolicy = CalamaresUtils::getString( m, "policy" ); + + if ( !QUrl( m_generalPolicy ).isValid() ) + { + m_generalPolicy = QString(); + } + emit generalPolicyChanged( m_generalPolicy ); } From da6f728cd45a17d759f3f3ef104b77182516c9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Thu, 14 May 2020 12:30:58 -0400 Subject: [PATCH 007/335] [partition] Add support for partition uuid --- src/modules/partition/core/PartitionCoreModule.cpp | 1 + src/modules/partition/core/PartitionLayout.cpp | 6 ++++++ src/modules/partition/core/PartitionLayout.h | 2 ++ src/modules/partition/partition.conf | 1 + 4 files changed, 10 insertions(+) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index aee1ab10f..b3c3409f4 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -883,6 +883,7 @@ PartitionCoreModule::initLayout( const QVariantList& config ) } if ( !m_partLayout->addEntry( CalamaresUtils::getString( pentry, "name" ), + CalamaresUtils::getString( pentry, "uuid" ), CalamaresUtils::getString( pentry, "type" ), CalamaresUtils::getString( pentry, "mountPoint" ), CalamaresUtils::getString( pentry, "filesystem" ), diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 33d2a7679..451604273 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -118,6 +118,7 @@ PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const bool PartitionLayout::addEntry( const QString& label, + const QString& uuid, const QString& type, const QString& mountPoint, const QString& fs, @@ -140,6 +141,7 @@ PartitionLayout::addEntry( const QString& label, } entry.partLabel = label; + entry.partUUID = uuid; entry.partType = type; entry.partMountPoint = mountPoint; PartUtils::findFS( fs, &entry.partFileSystem ); @@ -244,6 +246,10 @@ PartitionLayout::execute( Device* dev, currentPartition->setLabel( part.partLabel ); currentPartition->fileSystem().setLabel( part.partLabel ); } + if ( !part.partUUID.isEmpty() ) + { + currentPartition->setUUID( part.partUUID ); + } if ( !part.partType.isEmpty() ) { #if defined( WITH_KPMCORE42API ) diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 5651ae995..a7bfcc4b9 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -41,6 +41,7 @@ public: struct PartitionEntry { QString partLabel; + QString partUUID; QString partType; QString partMountPoint; FileSystem::Type partFileSystem = FileSystem::Unknown; @@ -76,6 +77,7 @@ public: const QString& min = QString(), const QString& max = QString() ); bool addEntry( const QString& label, + const QString& uuid, const QString& type, const QString& mountPoint, const QString& fs, diff --git a/src/modules/partition/partition.conf b/src/modules/partition/partition.conf index f6cc34ee4..158258fc9 100644 --- a/src/modules/partition/partition.conf +++ b/src/modules/partition/partition.conf @@ -127,6 +127,7 @@ defaultFileSystemType: "ext4" # - name: filesystem label # and # partition name (gpt only; since KPMCore 4.2.0) +# - uuid: partition uuid (optional parameter; gpt only; requires KPMCore >= 4.2.0) # - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0) # - filesystem: filesystem type # - mountPoint: partition mount point From 3d2b9053b08b41ee9dab70c61a9542324442b35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Thu, 12 Mar 2020 15:27:35 -0400 Subject: [PATCH 008/335] [partition] Add the GPT label and UUID to global storage --- src/modules/partition/jobs/FillGlobalStorageJob.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index 07c856d44..1242b7804 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -91,6 +91,8 @@ mapForPartition( Partition* partition, const QString& uuid ) { QVariantMap map; map[ "device" ] = partition->partitionPath(); + map[ "partlabel" ] = partition->label(); + map[ "partuuid" ] = partition->uuid(); map[ "mountPoint" ] = PartitionInfo::mountPoint( partition ); map[ "fsName" ] = userVisibleFS( partition->fileSystem() ); map[ "fs" ] = untranslatedFS( partition->fileSystem() ); @@ -107,6 +109,7 @@ mapForPartition( Partition* partition, const QString& uuid ) Logger::CDebug deb; using TR = Logger::DebugRow< const char* const, const QString& >; deb << Logger::SubEntry << "mapping for" << partition->partitionPath() << partition->deviceNode() + << TR( "partlabel", map[ "partlabel" ].toString() ) << TR( "partuuid", map[ "partuuid" ].toString() ) << TR( "mountPoint:", PartitionInfo::mountPoint( partition ) ) << TR( "fs:", map[ "fs" ].toString() ) << TR( "fsName", map[ "fsName" ].toString() ) << TR( "uuid", uuid ) << TR( "claimed", map[ "claimed" ].toString() ); From d9fb9c19a80efd4f149b5952e868b2639a8e5034 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 18 May 2020 16:41:25 +0200 Subject: [PATCH 009/335] [tracking] Refactor the information for one tracking type - a single tracking type can be enabled for configuration in the config file; each must have a policy URL. Class TrackingStyleConfig is a base class for that kind of configuration. --- src/modules/tracking/Config.cpp | 56 ++++++++++++++++++++++++-- src/modules/tracking/Config.h | 70 +++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 3 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 67da7025d..217babba4 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -23,22 +23,72 @@ #include +TrackingStyleConfig::TrackingStyleConfig( QObject* parent ) + : QObject( parent ) +{ +} + +TrackingStyleConfig::~TrackingStyleConfig() { } + +void +TrackingStyleConfig::setTracking( bool enabled ) +{ + setTracking( enabled ? EnabledByUser : DisabledByUser ); +} + +void +TrackingStyleConfig::setTracking( TrackingStyleConfig::TrackingState state ) +{ + if ( m_state != TrackingState::DisabledByConfig ) + { + m_state = state; + } + emit trackingChanged(); +} + +void +TrackingStyleConfig::setConfigurationMap( const QVariantMap& config ) +{ + m_state = CalamaresUtils::getBool( config, "enabled", false ) ? DisabledByUser : DisabledByConfig; + m_policy = CalamaresUtils::getString( config, "policy" ); + if ( !QUrl( m_policy ).isValid() ) + { + if ( m_state != DisabledByConfig ) + { + cError() << "Tracking policy URL" << m_policy << "is not valid; disabling this tracking type."; + } + m_policy = QString(); + m_state = DisabledByConfig; + } + + emit policyChanged( m_policy ); + emit trackingChanged(); +} + + Config::Config( QObject* parent ) : QObject( parent ) + , m_installTracking( new TrackingStyleConfig( this ) ) { } void -Config::setConfigurationMap( const QVariantMap& m ) +Config::setConfigurationMap( const QVariantMap& configurationMap ) { - m_generalPolicy = CalamaresUtils::getString( m, "policy" ); + m_generalPolicy = CalamaresUtils::getString( configurationMap, "policy" ); if ( !QUrl( m_generalPolicy ).isValid() ) { m_generalPolicy = QString(); } - emit generalPolicyChanged( m_generalPolicy ); + + bool success = false; + auto subconfig = CalamaresUtils::getSubMap( configurationMap, "install", success ); + if ( success ) + { + m_installTracking->setConfigurationMap( subconfig ); + } } QString diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index d0d6f6e0c..80f6d74d1 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -23,10 +23,77 @@ #include #include +/** @brief Base class for configuring a specific kind of tracking. + * + * All tracking types have a policy URL, which is used to explain what + * kind of tracking is involved, what data is sent, etc. The content + * of that URL is the responsibility of the distro. + * + * A tracking type is disabled by default: if it isn't specifically + * enabled (for configuration) in the config file, it will always be disabled. + * If it is enabled (for configuration) in the config file, it still + * defaults to disabled, but the user can choose to enable it. + */ +class TrackingStyleConfig : public QObject +{ + Q_OBJECT + + Q_PROPERTY( TrackingState trackingStatus READ tracking WRITE setTracking NOTIFY trackingChanged FINAL ) + Q_PROPERTY( bool isEnabled READ isEnabled NOTIFY trackingChanged FINAL ) + Q_PROPERTY( bool isConfigurable READ isConfigurable NOTIFY trackingChanged FINAL ) + Q_PROPERTY( QString policy READ policy NOTIFY policyChanged FINAL ) + +public: + TrackingStyleConfig( QObject* parent ); + virtual ~TrackingStyleConfig(); + + void setConfigurationMap( const QVariantMap& ); + + enum TrackingState + { + DisabledByConfig, + DisabledByUser, + EnabledByUser + }; + Q_ENUM( TrackingState ); + +public Q_SLOTS: + TrackingState tracking() const { return m_state; } + /// @brief Has the user specifically enabled this kind of tracking? + bool isEnabled() const { return m_state == EnabledByUser; } + /// @brief Is this tracking enabled for configuration? + bool isConfigurable() const { return m_state != DisabledByConfig; } + /** @brief Sets the tracking state + * + * Unless the tracking is enabled for configuration, it always + * remains disabled. + */ + void setTracking( TrackingState ); + /** @brief Sets the tracking state + * + * Use @c true for @c EnabledByUser, @c false for DisabledByUser, + * but keep in mind that if the tracking is not enabled for + * configuration, it will always remain disabled. + */ + void setTracking( bool ); + + /// @brief URL for the policy explaining this tracking + QString policy() const { return m_policy; } + +signals: + void trackingChanged(); + void policyChanged( QString ); + +private: + TrackingState m_state = DisabledByConfig; + QString m_policy; // URL +}; + class Config : public QObject { Q_OBJECT Q_PROPERTY( QString generalPolicy READ generalPolicy NOTIFY generalPolicyChanged FINAL ) + Q_PROPERTY( TrackingStyleConfig* installTracking READ installTracking FINAL ) public: Config( QObject* parent = nullptr ); @@ -34,12 +101,15 @@ public: public Q_SLOTS: QString generalPolicy() const; + TrackingStyleConfig* installTracking() const { return m_installTracking; } signals: void generalPolicyChanged( QString ); private: QString m_generalPolicy; + + TrackingStyleConfig* m_installTracking; }; #endif From f97a0756a9af62ce544475d6631e93de2c9f012a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 18 May 2020 17:09:01 +0200 Subject: [PATCH 010/335] [tracking] Introduce configuration for install-tracking - subclass of TrackingStyleConfig holds the URL that is pinged with information when the installation is done. --- src/modules/tracking/Config.cpp | 37 ++++++++++++++++++++++++++------- src/modules/tracking/Config.h | 18 +++++++++++++++- 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 217babba4..7997556bf 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -47,28 +47,49 @@ TrackingStyleConfig::setTracking( TrackingStyleConfig::TrackingState state ) } void -TrackingStyleConfig::setConfigurationMap( const QVariantMap& config ) +TrackingStyleConfig::validateUrl( QString& urlString ) { - m_state = CalamaresUtils::getBool( config, "enabled", false ) ? DisabledByUser : DisabledByConfig; - m_policy = CalamaresUtils::getString( config, "policy" ); - if ( !QUrl( m_policy ).isValid() ) + if ( !QUrl( urlString ).isValid() ) { if ( m_state != DisabledByConfig ) { - cError() << "Tracking policy URL" << m_policy << "is not valid; disabling this tracking type."; + cError() << "URL" << urlString << "is not valid; disabling this tracking type."; + m_state = DisabledByConfig; + emit trackingChanged(); } - m_policy = QString(); - m_state = DisabledByConfig; + urlString = QString(); } +} + +void +TrackingStyleConfig::setConfigurationMap( const QVariantMap& config ) +{ + m_state = CalamaresUtils::getBool( config, "enabled", false ) ? DisabledByUser : DisabledByConfig; + m_policy = CalamaresUtils::getString( config, "policy" ); + validateUrl( m_policy ); emit policyChanged( m_policy ); emit trackingChanged(); } +InstallTrackingConfig::InstallTrackingConfig( QObject* parent ) + : TrackingStyleConfig( parent ) +{ +} + +void +InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) +{ + TrackingStyleConfig::setConfigurationMap( configurationMap ); + + m_installTrackingUrl = CalamaresUtils::getString( configurationMap, "url" ); + validateUrl( m_installTrackingUrl ); +} + Config::Config( QObject* parent ) : QObject( parent ) - , m_installTracking( new TrackingStyleConfig( this ) ) + , m_installTracking( new InstallTrackingConfig( this ) ) { } diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 80f6d74d1..0fbf8495b 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -84,11 +84,27 @@ signals: void trackingChanged(); void policyChanged( QString ); +protected: + /// @brief Validates the @p urlString, disables tracking if invalid + void validateUrl( QString& urlString ); + private: TrackingState m_state = DisabledByConfig; QString m_policy; // URL }; +class InstallTrackingConfig : public TrackingStyleConfig +{ +public: + InstallTrackingConfig( QObject* parent ); + void setConfigurationMap( const QVariantMap& configurationMap ); + + QString installTrackingUrl() { return m_installTrackingUrl; } + +private: + QString m_installTrackingUrl; +}; + class Config : public QObject { Q_OBJECT @@ -109,7 +125,7 @@ signals: private: QString m_generalPolicy; - TrackingStyleConfig* m_installTracking; + InstallTrackingConfig* m_installTracking; }; #endif From 528b98c1c4410423958c776945ec012b7876a55a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 18 May 2020 17:42:51 +0200 Subject: [PATCH 011/335] [tracking] Configurations for machine and user tracking --- src/modules/tracking/Config.cpp | 59 +++++++++++++++++++++++++++++++++ src/modules/tracking/Config.h | 49 +++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 7997556bf..2c62447b1 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -46,6 +46,21 @@ TrackingStyleConfig::setTracking( TrackingStyleConfig::TrackingState state ) emit trackingChanged(); } +void +TrackingStyleConfig::validate( QString& s, std::function< bool( const QString& ) >&& pred ) +{ + if ( !pred( s ) ) + { + if ( m_state != DisabledByConfig ) + { + cError() << "Configuration string" << s << "is not valid; disabling this tracking type."; + m_state = DisabledByConfig; + emit trackingChanged(); + } + s = QString(); + } +} + void TrackingStyleConfig::validateUrl( QString& urlString ) { @@ -86,6 +101,50 @@ InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap validateUrl( m_installTrackingUrl ); } +MachineTrackingConfig::MachineTrackingConfig( QObject* parent ) + : TrackingStyleConfig( parent ) +{ +} + +/** @brief Is @p s a valid machine-tracking style. */ +static bool +isValidMachineTrackingStyle( const QString& s ) +{ + static QStringList knownStyles { "neon" }; + return knownStyles.contains( s ); +} + +void +MachineTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) +{ + TrackingStyleConfig::setConfigurationMap( configurationMap ); + + m_machineTrackingStyle = CalamaresUtils::getString( configurationMap, "style" ); + validate( m_machineTrackingStyle, isValidMachineTrackingStyle ); +} + + +UserTrackingConfig::UserTrackingConfig( QObject* parent ) + : TrackingStyleConfig( parent ) +{ +} + +static bool +isValidUserTrackingStyle( const QString& s ) +{ + static QStringList knownStyles { "kde" }; + return knownStyles.contains( s ); +} + +void +UserTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) +{ + TrackingStyleConfig::setConfigurationMap( configurationMap ); + + m_userTrackingStyle = CalamaresUtils::getString( configurationMap, "style" ); + validate( m_userTrackingStyle, isValidUserTrackingStyle ); +} + Config::Config( QObject* parent ) : QObject( parent ) diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 0fbf8495b..d9210b7ff 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -87,12 +87,21 @@ signals: protected: /// @brief Validates the @p urlString, disables tracking if invalid void validateUrl( QString& urlString ); + /// @brief Validates the @p string, disables tracking if invalid + void validate( QString& s, std::function< bool( const QString& s ) >&& pred ); private: TrackingState m_state = DisabledByConfig; QString m_policy; // URL }; +/** @brief Install tracking pings a URL at the end of installation + * + * Install tracking will do a single GET on the given URL at + * the end of installation. The information included in the GET + * request depends on the URL configuration, see also the tracking + * jobs. + */ class InstallTrackingConfig : public TrackingStyleConfig { public: @@ -105,6 +114,46 @@ private: QString m_installTrackingUrl; }; +/** @brief Machine tracking reports from the installed system + * + * When machine tracking is on, the installed system will report + * back ("call home") at some point. This can mean Debian pop-con, + * or KDE neon maching tracking, or something else. The kind + * of configuration depends on the style of tracking that is enabled. + */ +class MachineTrackingConfig : public TrackingStyleConfig +{ +public: + MachineTrackingConfig( QObject* parent ); + void setConfigurationMap( const QVariantMap& configurationMap ); + + QString machineTrackingStyle() { return m_machineTrackingStyle; } + +private: + QString m_machineTrackingStyle; +}; + +/** @brief User tracking reports user actions + * + * When user tracking is on, it is enabled for the user configured + * in Calamares -- not for users created afterwards in the target + * system, unless the target system defaults to tracking them. + * The kind of user tracking depends on the target system and + * environment; KDE user tracking is one example, which can be + * configured in a fine-grained way and defaults to off. + */ +class UserTrackingConfig : public TrackingStyleConfig +{ +public: + UserTrackingConfig( QObject* parent ); + void setConfigurationMap( const QVariantMap& configurationMap ); + + QString userTrackingStyle() { return m_userTrackingStyle; } + +private: + QString m_userTrackingStyle; +}; + class Config : public QObject { Q_OBJECT From 5763799ba9b6394a509c26a23831dda63c9a7700 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 18 May 2020 17:48:51 +0200 Subject: [PATCH 012/335] [tracking] Load all the tracking bits into the configuration --- src/modules/tracking/Config.cpp | 14 ++++++++++++++ src/modules/tracking/Config.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 2c62447b1..8b5decd76 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -149,6 +149,8 @@ UserTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) Config::Config( QObject* parent ) : QObject( parent ) , m_installTracking( new InstallTrackingConfig( this ) ) + , m_machineTracking( new MachineTrackingConfig( this ) ) + , m_userTracking( new UserTrackingConfig( this ) ) { } @@ -169,6 +171,18 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) { m_installTracking->setConfigurationMap( subconfig ); } + + subconfig = CalamaresUtils::getSubMap( configurationMap, "machine", success ); + if ( success ) + { + m_machineTracking->setConfigurationMap( subconfig ); + } + + subconfig = CalamaresUtils::getSubMap( configurationMap, "user", success ); + if ( success ) + { + m_userTracking->setConfigurationMap( subconfig ); + } } QString diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index d9210b7ff..1a451e5ce 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -175,6 +175,8 @@ private: QString m_generalPolicy; InstallTrackingConfig* m_installTracking; + MachineTrackingConfig* m_machineTracking; + UserTrackingConfig* m_userTracking; }; #endif From 309b2f872de99fb8d93ed54d531e71f798bf9157 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 18 May 2020 20:18:34 +0200 Subject: [PATCH 013/335] [tracking] Drop configuration fields from ViewStep - All the configuration lives in the Config object (or the tracking objects that it exposes). - Get data from the config object for the jobs; TODO: give the jobs a less-clunky interface. The UI isn't hooked up to the Config object yet, though. --- src/modules/tracking/Config.h | 7 ++- src/modules/tracking/TrackingViewStep.cpp | 62 +++++------------------ src/modules/tracking/TrackingViewStep.h | 35 ------------- 3 files changed, 19 insertions(+), 85 deletions(-) diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 1a451e5ce..bd9ba520e 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -159,6 +159,8 @@ class Config : public QObject Q_OBJECT Q_PROPERTY( QString generalPolicy READ generalPolicy NOTIFY generalPolicyChanged FINAL ) Q_PROPERTY( TrackingStyleConfig* installTracking READ installTracking FINAL ) + Q_PROPERTY( TrackingStyleConfig* machineTracking READ machineTracking FINAL ) + Q_PROPERTY( TrackingStyleConfig* userTracking READ userTracking FINAL ) public: Config( QObject* parent = nullptr ); @@ -166,7 +168,10 @@ public: public Q_SLOTS: QString generalPolicy() const; - TrackingStyleConfig* installTracking() const { return m_installTracking; } + + InstallTrackingConfig* installTracking() const { return m_installTracking; } + MachineTrackingConfig* machineTracking() const { return m_machineTracking; } + UserTrackingConfig* userTracking() const { return m_userTracking; } signals: void generalPolicyChanged( QString ); diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 6da292242..98685bfc8 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -105,12 +105,9 @@ TrackingViewStep::isAtEnd() const void TrackingViewStep::onLeave() { - m_installTracking.userEnabled = m_widget->getTrackingOption( TrackingType::InstallTracking ); - m_machineTracking.userEnabled = m_widget->getTrackingOption( TrackingType::MachineTracking ); - m_userTracking.userEnabled = m_widget->getTrackingOption( TrackingType::UserTracking ); - cDebug() << "Install tracking:" << m_installTracking.enabled(); - cDebug() << "Machine tracking:" << m_machineTracking.enabled(); - cDebug() << " User tracking:" << m_userTracking.enabled(); + cDebug() << "Install tracking:" << m_config->installTracking()->isEnabled(); + cDebug() << "Machine tracking:" << m_config->machineTracking()->isEnabled(); + cDebug() << " User tracking:" << m_config->userTracking()->isEnabled(); } @@ -120,10 +117,10 @@ TrackingViewStep::jobs() const Calamares::JobList l; cDebug() << "Creating tracking jobs .."; - if ( m_installTracking.enabled() && !m_installTrackingUrl.isEmpty() ) + if ( m_config->installTracking()->isEnabled() ) { - QString installUrl = m_installTrackingUrl; - const auto s = CalamaresUtils::System::instance(); + QString installUrl = m_config->installTracking()->installTrackingUrl(); + const auto* s = CalamaresUtils::System::instance(); QString memory, disk; memory.setNum( s->getTotalMemoryB().first ); @@ -136,58 +133,25 @@ TrackingViewStep::jobs() const l.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); } - if ( m_machineTracking.enabled() && !m_machineTrackingStyle.isEmpty() ) + if ( m_config->machineTracking()->isEnabled() ) { - Q_ASSERT( isValidStyle( m_machineTrackingStyle ) ); - if ( m_machineTrackingStyle == "neon" ) + const auto style = m_config->machineTracking()->machineTrackingStyle(); + if ( style == "neon" ) { l.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) ); } + else + { + cWarning() << "Unsupported machine tracking style" << style; + } } return l; } -QVariantMap -TrackingViewStep::setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t ) -{ - bool settingEnabled = false; - - bool success = false; - auto config = CalamaresUtils::getSubMap( configurationMap, key, success ); - - if ( success ) - { - settingEnabled = CalamaresUtils::getBool( config, "enabled", false ); - } - - TrackingEnabled& trackingConfiguration = tracking( t ); - trackingConfiguration.settingEnabled = settingEnabled; - trackingConfiguration.userEnabled = false; - - m_widget->enableTrackingOption( t, settingEnabled ); - m_widget->setTrackingPolicy( t, CalamaresUtils::getString( config, "policy" ) ); - - return config; -} - void TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - QVariantMap config; - - config = setTrackingOption( configurationMap, "install", TrackingType::InstallTracking ); - m_installTrackingUrl = CalamaresUtils::getString( config, "url" ); - - config = setTrackingOption( configurationMap, "machine", TrackingType::MachineTracking ); - auto s = CalamaresUtils::getString( config, "style" ); - if ( isValidStyle( s ) ) - { - m_machineTrackingStyle = s; - } - - setTrackingOption( configurationMap, "user", TrackingType::UserTracking ); - m_config->setConfigurationMap( configurationMap ); bool ok; diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index a342dc498..b05f1b053 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -57,43 +57,8 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; private: - QVariantMap setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t ); - Config* m_config; TrackingPage* m_widget; - QString m_installTrackingUrl; - QString m_machineTrackingStyle; - - struct TrackingEnabled - { - bool settingEnabled; // Enabled in config file - bool userEnabled; // User checked "yes" - - TrackingEnabled() - : settingEnabled( false ) - , userEnabled( false ) - { - } - - bool enabled() const { return settingEnabled && userEnabled; } - }; - TrackingEnabled m_installTracking, m_machineTracking, m_userTracking; - - inline TrackingEnabled& tracking( TrackingType t ) - { - if ( t == TrackingType::UserTracking ) - { - return m_userTracking; - } - else if ( t == TrackingType::MachineTracking ) - { - return m_machineTracking; - } - else - { - return m_installTracking; - } - } }; CALAMARES_PLUGIN_FACTORY_DECLARATION( TrackingViewStepFactory ) From 49e66b11a2938b92cd9647728de38058de921cd7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 10:42:25 +0200 Subject: [PATCH 014/335] [tracking] Refactor creation of jobs - Let the jobs handle their own styling and handling, simplify the ViewStep code. --- src/modules/tracking/TrackingJobs.cpp | 40 +++++++++++++++++++++ src/modules/tracking/TrackingJobs.h | 42 +++++++++++++++++++++-- src/modules/tracking/TrackingPage.cpp | 4 +-- src/modules/tracking/TrackingViewStep.cpp | 36 +++---------------- 4 files changed, 86 insertions(+), 36 deletions(-) diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 1f284e6dd..40af355bd 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -18,6 +18,8 @@ #include "TrackingJobs.h" +#include "Config.h" + #include "network/Manager.h" #include "utils/CalamaresUtilsSystem.h" #include "utils/Logger.h" @@ -72,6 +74,44 @@ TrackingInstallJob::exec() return Calamares::JobResult::ok(); } +void +TrackingInstallJob::addJob( Calamares::JobList& list, InstallTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + QString installUrl = config->installTrackingUrl(); + const auto* s = CalamaresUtils::System::instance(); + + QString memory, disk; + memory.setNum( s->getTotalMemoryB().first ); + disk.setNum( s->getTotalDiskB() ); + + installUrl.replace( "$CPU", s->getCpuDescription() ).replace( "$MEMORY", memory ).replace( "$DISK", disk ); + + cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; + + list.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); + } +} + +void +TrackingMachineJob::addJob( Calamares::JobList& list, MachineTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto style = config->machineTrackingStyle(); + if ( style == "neon" ) + { + list.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) ); + } + else + { + cWarning() << "Unsupported machine tracking style" << style; + } + } +} + + QString TrackingMachineNeonJob::prettyName() const { diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index 813355591..c7c2450cb 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -16,13 +16,35 @@ * along with Calamares. If not, see . */ -#ifndef TRACKINGJOBS -#define TRACKINGJOBS +#ifndef TRACKING_TRACKINGJOBS_H +#define TRACKING_TRACKINGJOBS_H #include "Job.h" +class InstallTrackingConfig; +class MachineTrackingConfig; + class QSemaphore; +/** @section Tracking Jobs + * + * The tracking jobs do the actual work of configuring tracking on the + * target machine. Tracking jobs may have *styles*, variations depending + * on the distro or environment of the target system. At the root of + * each family of tracking jobs (installation, machine, user) there is + * a class with static method `addJob()` that takes the configuration + * information from the relevant Config sub-object and optionally + * adds the right job (subclass!) to the list of jobs. + */ + +/** @brief Install-tracking job (gets a URL) + * + * The install-tracking job (there is only one kind) does a GET + * on a configured URL with some additional information about + * the machine (if configured into the URL). + * + * No persistent tracking is done. + */ class TrackingInstallJob : public Calamares::Job { Q_OBJECT @@ -35,11 +57,25 @@ public: QString prettyStatusMessage() const override; Calamares::JobResult exec() override; + static void addJob( Calamares::JobList& list, InstallTrackingConfig* config ); + private: const QString m_url; }; -class TrackingMachineNeonJob : public Calamares::Job +/** @brief Base class for machine-tracking jobs + * + * Machine-tracking configuraiton depends on the distro / style of machine + * being tracked, so it has subclasses to switch on the relevant kind + * of tracking. A machine is tracked persistently. + */ +class TrackingMachineJob : public Calamares::Job +{ +public: + static void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); +}; + +class TrackingMachineNeonJob : public TrackingMachineJob { Q_OBJECT public: diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index ae9a04843..7572ecb68 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -165,7 +165,7 @@ TrackingPage::setTrackingPolicy( TrackingType t, QString url ) } else { - connect( button, &QToolButton::clicked, [url] { QDesktopServices::openUrl( url ); } ); + connect( button, &QToolButton::clicked, [ url ] { QDesktopServices::openUrl( url ); } ); cDebug() << "Tracking policy" << int( t ) << "set to" << url; } else @@ -186,7 +186,7 @@ TrackingPage::setGeneralPolicy( QString url ) ui->generalPolicyLabel->show(); ui->generalPolicyLabel->setTextInteractionFlags( Qt::TextBrowserInteraction ); ui->generalPolicyLabel->show(); - connect( ui->generalPolicyLabel, &QLabel::linkActivated, [url] { QDesktopServices::openUrl( url ); } ); + connect( ui->generalPolicyLabel, &QLabel::linkActivated, [ url ] { QDesktopServices::openUrl( url ); } ); } } diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 98685bfc8..9942c2981 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -106,45 +106,19 @@ void TrackingViewStep::onLeave() { cDebug() << "Install tracking:" << m_config->installTracking()->isEnabled(); - cDebug() << "Machine tracking:" << m_config->machineTracking()->isEnabled(); - cDebug() << " User tracking:" << m_config->userTracking()->isEnabled(); + cDebug() << Logger::SubEntry << "Machine tracking:" << m_config->machineTracking()->isEnabled(); + cDebug() << Logger::SubEntry << " User tracking:" << m_config->userTracking()->isEnabled(); } Calamares::JobList TrackingViewStep::jobs() const { - Calamares::JobList l; - cDebug() << "Creating tracking jobs .."; - if ( m_config->installTracking()->isEnabled() ) - { - QString installUrl = m_config->installTracking()->installTrackingUrl(); - const auto* s = CalamaresUtils::System::instance(); - - QString memory, disk; - memory.setNum( s->getTotalMemoryB().first ); - disk.setNum( s->getTotalDiskB() ); - - installUrl.replace( "$CPU", s->getCpuDescription() ).replace( "$MEMORY", memory ).replace( "$DISK", disk ); - - cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; - l.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); - } - - if ( m_config->machineTracking()->isEnabled() ) - { - const auto style = m_config->machineTracking()->machineTrackingStyle(); - if ( style == "neon" ) - { - l.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) ); - } - else - { - cWarning() << "Unsupported machine tracking style" << style; - } - } + Calamares::JobList l; + TrackingInstallJob::addJob( l, m_config->installTracking() ); + TrackingMachineJob::addJob( l, m_config->machineTracking() ); return l; } From dfd6bb6a8bf08dc8c83a228f43177917f8253972 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 11:05:32 +0200 Subject: [PATCH 015/335] [tracking] Massage the displayed explanation --- src/modules/tracking/TrackingPage.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 7572ecb68..1e30a8a3a 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -58,19 +58,21 @@ TrackingPage::retranslate() QString product = Calamares::Branding::instance()->shortProductName(); ui->retranslateUi( this ); ui->generalExplanation->setText( - tr( "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 " + tr( "Tracking helps %1 to see how often it is installed, what hardware it is installed on and " + "which applications are used. To see what " "will be sent, please click the help icon next to each area." ) .arg( product ) ); ui->installExplanation->setText( tr( "By selecting this you will send information about your installation and hardware. This information " "will only be sent once after the installation finishes." ) ); - ui->machineExplanation->setText( tr( "By selecting this you will periodically send information about " - "your installation, hardware and applications, to %1." ) - .arg( product ) ); - ui->userExplanation->setText( tr( "By selecting this you will regularly send information about your " - "installation, hardware, applications and usage patterns, to %1." ) - .arg( product ) ); + ui->machineExplanation->setText( + tr( "By selecting this you will periodically send information about your machine installation, " + "hardware and applications, to %1." ) + .arg( product ) ); + ui->userExplanation->setText( + tr( "By selecting this you will regularly send information about your " + "user installation, hardware, applications and application usage patterns, to %1." ) + .arg( product ) ); } From a7c4e2d203a05ef94b84f1451e4f4cc3a5728272 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 11:12:16 +0200 Subject: [PATCH 016/335] [tracking] Remove widget-setting stuff not needed with Config --- src/modules/tracking/TrackingPage.cpp | 100 -------------------------- src/modules/tracking/TrackingPage.h | 19 ----- 2 files changed, 119 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 1e30a8a3a..82e0d99c5 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -76,106 +76,6 @@ TrackingPage::retranslate() } -void -TrackingPage::enableTrackingOption( TrackingType t, bool enabled ) -{ - QWidget* group = nullptr; - - switch ( t ) - { - case TrackingType::NoTracking: - // Nothing to do, this **has** no widget - return; - case TrackingType::InstallTracking: - group = ui->installGroup; - break; - case TrackingType::MachineTracking: - group = ui->machineGroup; - break; - case TrackingType::UserTracking: - group = ui->userGroup; - break; - } - - if ( group != nullptr ) - { - if ( enabled ) - { - group->show(); - } - else - { - group->hide(); - } - } - else - { - cWarning() << "unknown tracking option" << int( t ); - } -} - -bool -TrackingPage::getTrackingOption( TrackingType t ) -{ - bool enabled = false; - - // A tracking type is enabled if it is checked, or - // any higher level is checked. -#define ch( x ) ui->x->isChecked() - switch ( t ) - { - case TrackingType::NoTracking: - return false; - case TrackingType::InstallTracking: - enabled = ch( installRadio ) || ch( machineRadio ) || ch( userRadio ); - break; - case TrackingType::MachineTracking: - enabled = ch( machineRadio ) || ch( userRadio ); - break; - case TrackingType::UserTracking: - enabled = ch( userRadio ); - break; - } -#undef ch - return enabled; -} - -void -TrackingPage::setTrackingPolicy( TrackingType t, QString url ) -{ - QToolButton* button = nullptr; - switch ( t ) - { - case TrackingType::NoTracking: - cWarning() << "Cannot configure NoTracking widget"; - return; - case TrackingType::InstallTracking: - button = ui->installPolicyButton; - break; - case TrackingType::MachineTracking: - button = ui->machinePolicyButton; - break; - case TrackingType::UserTracking: - button = ui->userPolicyButton; - break; - } - - if ( button != nullptr ) - if ( url.isEmpty() ) - { - button->hide(); - } - else - { - connect( button, &QToolButton::clicked, [ url ] { QDesktopServices::openUrl( url ); } ); - cDebug() << "Tracking policy" << int( t ) << "set to" << url; - } - else - { - cWarning() << "unknown tracking option" << int( t ); - } -} - void TrackingPage::setGeneralPolicy( QString url ) { diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index dbc9cc20c..ce8b87729 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -37,25 +37,6 @@ class TrackingPage : public QWidget public: explicit TrackingPage( Config* config, QWidget* parent = nullptr ); - /** @brief Set initial state for each option - * - * Enables or disables the tracking-option block for the given - * tracking option @p t, and sets the initial state of the - * checkbox to the @p user default. - * - * Call this in ascending order of tracking type. - */ - void enableTrackingOption( TrackingType t, bool enabled ); - /** @brief Is the given tracking type enabled? - * - * Returns whether tracking type @p is selected by the user - * (i.e. is the radio button for that level, or for a higher - * tracking level, enabled). - */ - bool getTrackingOption( TrackingType t ); - - ///@brief Set URL for given level @p t - void setTrackingPolicy( TrackingType t, QString url ); ///@brief Select one of the four levels by name void setTrackingLevel( TrackingType t ); From 8465dcbc1902e4fea3af4ada38c02682c42b2af4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 11:39:53 +0200 Subject: [PATCH 017/335] [calamares] Don't crash in test-loader - When loading *view* modules, we always need a QApplication for GUI bits, because the widget for a module is created is very early. - If it's a view module, replace the application object with one that supports GUIs; without the --ui flag, though, it will just run the jobs. --- src/calamares/testmain.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index cd06c5d03..f353fa6d5 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -252,6 +252,12 @@ main( int argc, char* argv[] ) cDebug() << " .. got" << m->name() << m->typeString() << m->interfaceString(); if ( m->type() == Calamares::Module::Type::View ) { + if ( !qobject_cast< QApplication* >(aw) ) + { + auto* replace_app = new QApplication( argc, argv ); + replace_app->setQuitOnLastWindowClosed( true ); + aw = replace_app; + } mw = module.m_ui ? new QMainWindow() : nullptr; (void)new Calamares::Branding( module.m_branding ); From 3e51fe4651b08b0f5fd7f6c47db027c2f5956f76 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 15:05:05 +0200 Subject: [PATCH 018/335] [partition] Remove spurious Q_FUNC_INFO from logging - The Q_FUNC_INFO was integrated into regular logging with commit 5248a37eb3ac162d8fc86f3bf4c2f9314842f467 --- src/modules/partition/gui/ChoicePage.cpp | 2 +- src/modules/partition/gui/PartitionSplitterWidget.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 5c90ea7b0..69a740d20 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -560,7 +560,7 @@ ChoicePage::doAlongsideSetupSplitter( const QModelIndex& current, Partition* part = modl->partitionForIndex( current ); if ( !part ) { - cDebug() << Q_FUNC_INFO << "Partition not found for index" << current; + cDebug() << "Partition not found for index" << current; return; } diff --git a/src/modules/partition/gui/PartitionSplitterWidget.cpp b/src/modules/partition/gui/PartitionSplitterWidget.cpp index bcc80b65a..5d2803b76 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.cpp +++ b/src/modules/partition/gui/PartitionSplitterWidget.cpp @@ -120,10 +120,10 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, qint64 maxSize, qint64 preferredSize ) { - cDebug() << Q_FUNC_INFO << "path:" << path - << "\nminSize:" << minSize - << "\nmaxSize:" << maxSize - << "\nprfSize:" << preferredSize; + cDebug() << "path:" << path + << Logger::Continuation << "minSize:" << minSize + << Logger::Continuation << "maxSize:" << maxSize + << Logger::Continuation << "prfSize:" << preferredSize; if ( m_itemToResize && m_itemToResizeNext ) { From 8db8752a41c70f65d6bc9e1ecdef09bad3898364 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 15:06:43 +0200 Subject: [PATCH 019/335] [libcalamaresui] Remove spurious Q_FUNC_INFO --- src/libcalamaresui/modulesystem/CppJobModule.cpp | 4 ++-- src/libcalamaresui/modulesystem/ViewModule.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libcalamaresui/modulesystem/CppJobModule.cpp b/src/libcalamaresui/modulesystem/CppJobModule.cpp index 2eddeda86..632a9dcb8 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.cpp +++ b/src/libcalamaresui/modulesystem/CppJobModule.cpp @@ -52,14 +52,14 @@ CppJobModule::loadSelf() CalamaresPluginFactory* pf = qobject_cast< CalamaresPluginFactory* >( m_loader->instance() ); if ( !pf ) { - cDebug() << Q_FUNC_INFO << m_loader->errorString(); + cDebug() << "Could not load module:" << m_loader->errorString(); return; } CppJob* cppJob = pf->create< Calamares::CppJob >(); if ( !cppJob ) { - cDebug() << Q_FUNC_INFO << m_loader->errorString(); + cDebug() << "Could not load module:" << m_loader->errorString(); return; } // cDebug() << "CppJobModule loading self for instance" << instanceKey() diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 02c771ee2..54a79ab66 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -53,14 +53,14 @@ ViewModule::loadSelf() CalamaresPluginFactory* pf = qobject_cast< CalamaresPluginFactory* >( m_loader->instance() ); if ( !pf ) { - cWarning() << Q_FUNC_INFO << "No factory:" << m_loader->errorString(); + cWarning() << "No factory:" << m_loader->errorString(); return; } m_viewStep = pf->create< Calamares::ViewStep >(); if ( !m_viewStep ) { - cWarning() << Q_FUNC_INFO << "create() failed" << m_loader->errorString(); + cWarning() << "create() failed" << m_loader->errorString(); return; } } @@ -76,7 +76,7 @@ ViewModule::loadSelf() } else { - cWarning() << Q_FUNC_INFO << "No view step was created"; + cWarning() << "No view step was created"; } } From ec2fc5a7637d4f50315d7c6ccfc2f6a93943abd3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 16:25:30 +0200 Subject: [PATCH 020/335] [libcalamaresui] Better default font size - Previously, unless setDefaultFontSize() was called explicitly, the default size would be 0, leading to unexpected and weird displays (and a warning on stderr). - If setDefaultFontSize() is not called, get a sensible size instead (like defaultFontHeight() was already trying to do). --- src/libcalamaresui/utils/CalamaresUtilsGui.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index bd15d7a68..680673a22 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -207,6 +207,10 @@ unmarginLayout( QLayout* layout ) int defaultFontSize() { + if ( s_defaultFontSize <= 0 ) + { + s_defaultFontSize = QFont().pointSize(); + } return s_defaultFontSize; } From bd73981c5f41c5d2ad162764da75b38507821efd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 14:09:12 +0200 Subject: [PATCH 021/335] [calamares] Add -s option to module-tester - The -s will run the slideshow with a bogus job-queue, allowing easier testing of the slideshow. This is more convenient than having a Calamares with an empty show and a bogus exec section. - The -s option for running the slideshow / execution phase of Calamares needs to create a bogus Module for the ExecutionViewStep. --- src/calamares/testmain.cpp | 111 +++++++++++++++++++++++++++++++++---- 1 file changed, 101 insertions(+), 10 deletions(-) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index f353fa6d5..77c86a59a 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -22,18 +22,18 @@ * bindings. */ -#include "modulesystem/Module.h" -#include "utils/Logger.h" -#include "utils/Yaml.h" - #include "Branding.h" #include "GlobalStorage.h" #include "Job.h" #include "JobQueue.h" #include "Settings.h" #include "ViewManager.h" - +#include "modulesystem/Module.h" #include "modulesystem/ModuleManager.h" +#include "modulesystem/ViewModule.h" +#include "utils/Logger.h" +#include "utils/Yaml.h" +#include "viewpages/ExecutionViewStep.h" #include #include @@ -80,6 +80,8 @@ handle_args( QCoreApplication& a ) "src/branding/default/branding.desc" ); QCommandLineOption uiOption( QStringList() << QStringLiteral( "U" ) << QStringLiteral( "ui" ), QStringLiteral( "Enable UI" ) ); + QCommandLineOption slideshowOption( QStringList() << QStringLiteral( "s" ) << QStringLiteral( "slideshow" ), + QStringLiteral( "Run slideshow module" ) ); QCommandLineParser parser; parser.setApplicationDescription( "Calamares module tester" ); @@ -92,13 +94,14 @@ handle_args( QCoreApplication& a ) parser.addOption( langOption ); parser.addOption( brandOption ); parser.addOption( uiOption ); + parser.addOption( slideshowOption ); parser.addPositionalArgument( "module", "Path or name of module to run." ); parser.addPositionalArgument( "job.yaml", "Path of job settings document to use.", "[job.yaml]" ); parser.process( a ); const QStringList args = parser.positionalArguments(); - if ( args.isEmpty() ) + if ( args.isEmpty() && !parser.isSet( slideshowOption ) ) { cError() << "Missing path.\n"; parser.showHelp(); @@ -116,20 +119,92 @@ handle_args( QCoreApplication& a ) jobSettings = args.at( 1 ); } - return ModuleConfig { args.first(), + return ModuleConfig { parser.isSet( slideshowOption ) ? QStringLiteral( "-" ) : args.first(), jobSettings, parser.value( globalOption ), parser.value( langOption ), parser.value( brandOption ), - parser.isSet( uiOption ) }; + parser.isSet( slideshowOption ) || parser.isSet( uiOption ) }; } } +/** @brief Bogus module for --slideshow option + * + * Normally the slideshow -- displayed by ExecutionViewStep -- is not + * associated with any particular module in the Calamares configuration. + * It is added internally by the module manager. For the module-loader + * testing application, we need something that pretends to be the + * module for the ExecutionViewStep. + */ +class ExecViewModule : public Calamares::Module +{ +public: + ExecViewModule(); + ~ExecViewModule() override; + + void loadSelf() override; + + virtual Type type() const override; + virtual Interface interface() const override; + + virtual Calamares::JobList jobs() const override; + + +protected: + void initFrom( const QVariantMap& ) override; +}; + +ExecViewModule::ExecViewModule() + : Calamares::Module() +{ +} + +ExecViewModule::~ExecViewModule() {} + +void +ExecViewModule::initFrom( const QVariantMap& ) +{ +} + +void +ExecViewModule::loadSelf() +{ + auto* viewStep = new Calamares::ExecutionViewStep(); + viewStep->setModuleInstanceKey( instanceKey() ); + viewStep->setConfigurationMap( m_configurationMap ); + Calamares::ViewManager::instance()->addViewStep( viewStep ); + m_loaded = true; +} + +Calamares::Module::Type +ExecViewModule::type() const +{ + return Module::Type::View; +} + + +Calamares::Module::Interface +ExecViewModule::interface() const +{ + return Module::Interface::QtPlugin; +} + +Calamares::JobList +ExecViewModule::jobs() const +{ + return Calamares::JobList(); +} + static Calamares::Module* load_module( const ModuleConfig& moduleConfig ) { QString moduleName = moduleConfig.moduleName(); + if ( moduleName == "-" ) + { + return new ExecViewModule; + } + QFileInfo fi; bool ok = false; @@ -188,6 +263,18 @@ load_module( const ModuleConfig& moduleConfig ) return module; } +static bool +is_ui_option( const char* s ) +{ + return !qstrcmp( s, "--ui" ) || !qstrcmp( s, "-U" ); +} + +static bool +is_slideshow_option( const char* s ) +{ + return !qstrcmp( s, "--slideshow" ) || !qstrcmp( s, "-s" ); +} + /** @brief Create the right kind of QApplication * * Does primitive parsing of argv[] to find the --ui option and returns @@ -202,7 +289,7 @@ createApplication( int& argc, char* argv[] ) { for ( int i = 1; i < argc; ++i ) { - if ( !qstrcmp( argv[ i ], "--ui" ) || !qstrcmp( argv[ i ], "-U" ) ) + if ( is_slideshow_option( argv[ i ] ) || is_ui_option( argv[ i ] ) ) { auto* aw = new QApplication( argc, argv ); aw->setQuitOnLastWindowClosed( true ); @@ -252,7 +339,11 @@ main( int argc, char* argv[] ) cDebug() << " .. got" << m->name() << m->typeString() << m->interfaceString(); if ( m->type() == Calamares::Module::Type::View ) { - if ( !qobject_cast< QApplication* >(aw) ) + // If we forgot the --ui, any ViewModule will core dump as it + // tries to create the widget **which won't be used anyway**. + // + // To avoid that crash, re-create the QApplication, now with GUI + if ( !qobject_cast< QApplication* >( aw ) ) { auto* replace_app = new QApplication( argc, argv ); replace_app->setQuitOnLastWindowClosed( true ); From ae861f7ec0134c3c50c32118e72e1ffb5a36f934 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 16:43:26 +0200 Subject: [PATCH 022/335] [calamares] Give slideshow-test some jobs to run --- src/calamares/testmain.cpp | 43 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 77c86a59a..3405b0530 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -23,6 +23,7 @@ */ #include "Branding.h" +#include "CppJob.h" #include "GlobalStorage.h" #include "Job.h" #include "JobQueue.h" @@ -42,6 +43,7 @@ #include #include #include +#include #include @@ -128,6 +130,39 @@ handle_args( QCoreApplication& a ) } } +/** @brief Bogus Job for --slideshow option + * + * Generally one would use DummyCppJob for this kind of dummy + * job, but that class lives in a module so isn't available + * in this test application. + * + * This bogus job just sleeps for 3. + */ +class ExecViewJob : public Calamares::CppJob +{ +public: + explicit ExecViewJob( const QString& name ) + : m_name( name ) + { + } + virtual ~ExecViewJob() override; + + QString prettyName() const override { return m_name; } + + Calamares::JobResult exec() override + { + QThread::sleep( 3 ); + return Calamares::JobResult::ok(); + } + + void setConfigurationMap( const QVariantMap& ) override {} + +private: + QString m_name; +}; + +ExecViewJob::~ExecViewJob() {} + /** @brief Bogus module for --slideshow option * * Normally the slideshow -- displayed by ExecutionViewStep -- is not @@ -192,10 +227,13 @@ ExecViewModule::interface() const Calamares::JobList ExecViewModule::jobs() const { - return Calamares::JobList(); + Calamares::JobList l; + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "step 1" ) ) ) ); + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "step two" ) ) ) ); + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "step III" ) ) ) ); + return l; } - static Calamares::Module* load_module( const ModuleConfig& moduleConfig ) { @@ -376,6 +414,7 @@ main( int argc, char* argv[] ) mw->setCentralWidget( w ); w->show(); mw->show(); + vm->currentStep()->onActivate(); return aw->exec(); } From 0947da3d41f8a861020cca3a778899cd6f5244aa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 17:08:49 +0200 Subject: [PATCH 023/335] [libcalamaresui] Report on QML errors - If the slideshow fails to load entirely, say so --- src/libcalamaresui/viewpages/Slideshow.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/libcalamaresui/viewpages/Slideshow.cpp b/src/libcalamaresui/viewpages/Slideshow.cpp index 85551f797..db994029c 100644 --- a/src/libcalamaresui/viewpages/Slideshow.cpp +++ b/src/libcalamaresui/viewpages/Slideshow.cpp @@ -23,7 +23,9 @@ #include "Branding.h" #include "utils/Dirs.h" #include "utils/Logger.h" +#ifdef WITH_QML #include "utils/Qml.h" +#endif #include "utils/Retranslator.h" #include @@ -50,6 +52,8 @@ SlideshowQML::SlideshowQML( QWidget* parent ) , m_qmlComponent( nullptr ) , m_qmlObject( nullptr ) { + CalamaresUtils::registerCalamaresModels(); + m_qmlShow->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); m_qmlShow->setResizeMode( QQuickWidget::SizeRootObjectToView ); m_qmlShow->engine()->addImportPath( CalamaresUtils::qmlModulesDir().absolutePath() ); @@ -126,6 +130,21 @@ SlideshowQML::loadQmlV2Complete() } } } + else + { + if ( m_qmlObject ) + { + cWarning() << "QML object already created"; + } + else if ( !m_qmlComponent ) + { + cWarning() << "QML component does not exist"; + } + else if ( m_qmlComponent && !m_qmlComponent->isReady() ) + { + cWarning() << "QML component not ready:" << m_qmlComponent->errors(); + } + } } /* From 40dd34c7d029308ffeffc29dc95564d2cd5a4f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Tue, 19 May 2020 12:46:16 -0400 Subject: [PATCH 024/335] [rawfs] Fix crash if bogus is unset - fixes: 12:44:25 [6]: Python Error: 'builtin_function_or_method' object is not subscriptable File "/usr/lib/calamares/modules/rawfs/main.py", line 188, in run item.copy(filesystems.index(item), len(filesystems)) File "/usr/lib/calamares/modules/rawfs/main.py", line 99, in copy if libcalamares.job.configuration["bogus"]: --- src/modules/rawfs/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/rawfs/main.py b/src/modules/rawfs/main.py index 1898d8fea..68f3c444e 100644 --- a/src/modules/rawfs/main.py +++ b/src/modules/rawfs/main.py @@ -96,7 +96,7 @@ class RawFSItem: count = 0 libcalamares.utils.debug("Copying {} to {}".format(self.source, self.destination)) - if libcalamares.job.configuration["bogus"]: + if libcalamares.job.configuration.get("bogus", False): return srcsize, srcblksize = get_device_size(self.source) From 4491fb8c2758e3ae0e28de511f50211877c81285 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 17:17:14 +0200 Subject: [PATCH 025/335] [libcalamaresui] Name QML-wrangling functions consistently - Use "Qml" in camel-cased names --- src/calamares/CalamaresWindow.cpp | 4 ++-- src/libcalamaresui/utils/Qml.cpp | 4 ++-- src/libcalamaresui/utils/Qml.h | 4 ++-- src/libcalamaresui/viewpages/QmlViewStep.cpp | 4 ++-- src/libcalamaresui/viewpages/Slideshow.cpp | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp index 2ab7cd5fa..a3775c44e 100644 --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp @@ -208,7 +208,7 @@ CalamaresWindow::getWidgetNavigation( QWidget* parent ) QWidget* CalamaresWindow::getQmlSidebar( QWidget* parent, int ) { - CalamaresUtils::registerCalamaresModels(); + CalamaresUtils::registerQmlModels(); QQuickWidget* w = new QQuickWidget( parent ); w->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); w->setResizeMode( QQuickWidget::SizeRootObjectToView ); @@ -220,7 +220,7 @@ CalamaresWindow::getQmlSidebar( QWidget* parent, int ) QWidget* CalamaresWindow::getQmlNavigation( QWidget* parent ) { - CalamaresUtils::registerCalamaresModels(); + CalamaresUtils::registerQmlModels(); QQuickWidget* w = new QQuickWidget( parent ); w->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); w->setResizeMode( QQuickWidget::SizeRootObjectToView ); diff --git a/src/libcalamaresui/utils/Qml.cpp b/src/libcalamaresui/utils/Qml.cpp index 5f3264da9..2837dfb5e 100644 --- a/src/libcalamaresui/utils/Qml.cpp +++ b/src/libcalamaresui/utils/Qml.cpp @@ -34,7 +34,7 @@ namespace CalamaresUtils { void -callQMLFunction( QQuickItem* qmlObject, const char* method ) +callQmlFunction( QQuickItem* qmlObject, const char* method ) { QByteArray methodSignature( method ); methodSignature.append( "()" ); @@ -149,7 +149,7 @@ qmlSearchNames() } void -registerCalamaresModels() +registerQmlModels() { static bool done = false; if ( !done ) diff --git a/src/libcalamaresui/utils/Qml.h b/src/libcalamaresui/utils/Qml.h index 33b44b9ea..d9d226034 100644 --- a/src/libcalamaresui/utils/Qml.h +++ b/src/libcalamaresui/utils/Qml.h @@ -40,7 +40,7 @@ namespace CalamaresUtils * Additionally, modules based on QmlViewStep have a context * property `config` referring to that module's configuration (if any). */ -UIDLLEXPORT void registerCalamaresModels(); +UIDLLEXPORT void registerQmlModels(); /** @brief Calls the QML method @p method on @p qmlObject * @@ -50,7 +50,7 @@ UIDLLEXPORT void registerCalamaresModels(); * * If there is a return value from the QML method, it is logged (but not otherwise used). */ -UIDLLEXPORT void callQMLFunction( QQuickItem* qmlObject, const char* method ); +UIDLLEXPORT void callQmlFunction( QQuickItem* qmlObject, const char* method ); /** @brief Search modes for loading Qml files. * diff --git a/src/libcalamaresui/viewpages/QmlViewStep.cpp b/src/libcalamaresui/viewpages/QmlViewStep.cpp index f92ef47e7..2234c230a 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.cpp +++ b/src/libcalamaresui/viewpages/QmlViewStep.cpp @@ -58,7 +58,7 @@ changeQMLState( QMLAction action, QQuickItem* item ) static const char propertyName[] = "activatedInCalamares"; bool activate = action == QMLAction::Start; - CalamaresUtils::callQMLFunction( item, activate ? "onActivate" : "onLeave" ); + CalamaresUtils::callQmlFunction( item, activate ? "onActivate" : "onLeave" ); auto property = item->property( propertyName ); if ( property.isValid() && ( property.type() == QVariant::Bool ) && ( property.toBool() != activate ) ) @@ -76,7 +76,7 @@ QmlViewStep::QmlViewStep( QObject* parent ) , m_spinner( new WaitingWidget( tr( "Loading ..." ) ) ) , m_qmlWidget( new QQuickWidget ) { - CalamaresUtils::registerCalamaresModels(); + CalamaresUtils::registerQmlModels(); QVBoxLayout* layout = new QVBoxLayout( m_widget ); layout->addWidget( m_spinner ); diff --git a/src/libcalamaresui/viewpages/Slideshow.cpp b/src/libcalamaresui/viewpages/Slideshow.cpp index db994029c..baed36252 100644 --- a/src/libcalamaresui/viewpages/Slideshow.cpp +++ b/src/libcalamaresui/viewpages/Slideshow.cpp @@ -52,7 +52,7 @@ SlideshowQML::SlideshowQML( QWidget* parent ) , m_qmlComponent( nullptr ) , m_qmlObject( nullptr ) { - CalamaresUtils::registerCalamaresModels(); + CalamaresUtils::registerQmlModels(); m_qmlShow->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); m_qmlShow->setResizeMode( QQuickWidget::SizeRootObjectToView ); @@ -163,7 +163,7 @@ SlideshowQML::changeSlideShowState( Action state ) if ( Branding::instance()->slideshowAPI() == 2 ) { // The QML was already loaded in the constructor, need to start it - CalamaresUtils::callQMLFunction( m_qmlObject, activate ? "onActivate" : "onLeave" ); + CalamaresUtils::callQmlFunction( m_qmlObject, activate ? "onActivate" : "onLeave" ); } else if ( !Calamares::Branding::instance()->slideshowPath().isEmpty() ) { From 6dffec27304d0eb90595234545788529d5291514 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 17:39:57 +0200 Subject: [PATCH 026/335] [libcalamaresui] Move QML-related directory functions to Qml.cpp --- src/calamares/CalamaresApplication.cpp | 3 +++ src/libcalamares/utils/Dirs.cpp | 15 --------------- src/libcalamares/utils/Dirs.h | 4 ---- src/libcalamaresui/utils/Qml.cpp | 14 ++++++++++++++ src/libcalamaresui/utils/Qml.h | 11 ++++++++++- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 5ef97a6a3..e90a67bb3 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -32,6 +32,9 @@ #include "utils/CalamaresUtilsSystem.h" #include "utils/Dirs.h" #include "utils/Logger.h" +#ifdef WITH_QML +#include "utils/Qml.h" +#endif #include "utils/Retranslator.h" #include "viewpages/ViewStep.h" diff --git a/src/libcalamares/utils/Dirs.cpp b/src/libcalamares/utils/Dirs.cpp index ca569490f..bb48477da 100644 --- a/src/libcalamares/utils/Dirs.cpp +++ b/src/libcalamares/utils/Dirs.cpp @@ -42,7 +42,6 @@ namespace CalamaresUtils { static QDir s_appDataDir( CMAKE_INSTALL_FULL_DATADIR ); -static QDir s_qmlModulesDir( QString( CMAKE_INSTALL_FULL_DATADIR ) + "/qml" ); static bool s_isAppDataDirOverridden = false; static bool s_haveExtraDirs = false; @@ -79,13 +78,6 @@ isWritableDir( const QDir& dir ) } -QDir -qmlModulesDir() -{ - return s_qmlModulesDir; -} - - void setAppDataDir( const QDir& dir ) { @@ -200,11 +192,4 @@ appLogDir() return QDir::temp(); } - -void -setQmlModulesDir( const QDir& dir ) -{ - s_qmlModulesDir = dir; -} - } // namespace CalamaresUtils diff --git a/src/libcalamares/utils/Dirs.h b/src/libcalamares/utils/Dirs.h index a63e679da..79c07a957 100644 --- a/src/libcalamares/utils/Dirs.h +++ b/src/libcalamares/utils/Dirs.h @@ -31,8 +31,6 @@ namespace CalamaresUtils { -DLLEXPORT QDir qmlModulesDir(); - /** * @brief appDataDir returns the directory with common application data. * Defaults to CMAKE_INSTALL_FULL_DATADIR (usually /usr/share/calamares). @@ -57,8 +55,6 @@ DLLEXPORT QDir systemLibDir(); DLLEXPORT void setAppDataDir( const QDir& dir ); DLLEXPORT bool isAppDataDirOverridden(); -DLLEXPORT void setQmlModulesDir( const QDir& dir ); - /** @brief Setup extra config and data dirs from the XDG variables. */ DLLEXPORT void setXdgDirs(); diff --git a/src/libcalamaresui/utils/Qml.cpp b/src/libcalamaresui/utils/Qml.cpp index 2837dfb5e..eabbf8d33 100644 --- a/src/libcalamaresui/utils/Qml.cpp +++ b/src/libcalamaresui/utils/Qml.cpp @@ -30,8 +30,22 @@ #include #include +static QDir s_qmlModulesDir( QString( CMAKE_INSTALL_FULL_DATADIR ) + "/qml" ); + namespace CalamaresUtils { +QDir +qmlModulesDir() +{ + return s_qmlModulesDir; +} + +void +setQmlModulesDir( const QDir& dir ) +{ + s_qmlModulesDir = dir; +} + void callQmlFunction( QQuickItem* qmlObject, const char* method ) diff --git a/src/libcalamaresui/utils/Qml.h b/src/libcalamaresui/utils/Qml.h index d9d226034..2da36633a 100644 --- a/src/libcalamaresui/utils/Qml.h +++ b/src/libcalamaresui/utils/Qml.h @@ -24,10 +24,19 @@ #include "modulesystem/InstanceKey.h" #include "utils/NamedEnum.h" +#include + class QQuickItem; namespace CalamaresUtils { +/// @brief the extra directory where Calamares searches for QML files +UIDLLEXPORT QDir qmlModulesDir(); +/// @brief sets specific directory for searching for QML files +UIDLLEXPORT void setQmlModulesDir( const QDir& dir ); + + + /** @brief Sets up global Calamares models for QML * * This needs to be called at least once to make the global Calamares @@ -66,7 +75,7 @@ enum class QmlSearch Both }; -///@brief Names for the search terms (in config files) +/// @brief Names for the search terms (in config files) UIDLLEXPORT const NamedEnumTable< QmlSearch >& qmlSearchNames(); /** @brief Find a suitable QML file, given the search method and name hints From 1fec95ac48717942be1be673119710d795f5a774 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 19 May 2020 21:25:05 +0200 Subject: [PATCH 027/335] [libcalamares] Move QML search-path initialization - QML files need to be searched in specific places; this was initialized by Calamares, but not for the text application. Move initialization into the library. --- src/calamares/CalamaresApplication.cpp | 60 ++----------------------- src/calamares/testmain.cpp | 7 +++ src/libcalamaresui/utils/Qml.cpp | 62 +++++++++++++++++++++++++- src/libcalamaresui/utils/Qml.h | 8 +++- 4 files changed, 77 insertions(+), 60 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index e90a67bb3..43a48881c 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -120,34 +120,6 @@ CalamaresApplication::mainWindow() } -static QStringList -qmlDirCandidates( bool assumeBuilddir ) -{ - static const char QML[] = "qml"; - - QStringList qmlDirs; - if ( CalamaresUtils::isAppDataDirOverridden() ) - { - qmlDirs << CalamaresUtils::appDataDir().absoluteFilePath( QML ); - } - else - { - if ( assumeBuilddir ) - { - qmlDirs << QDir::current().absoluteFilePath( "src/qml" ); // In build-dir - } - if ( CalamaresUtils::haveExtraDirs() ) - for ( auto s : CalamaresUtils::extraDataDirs() ) - { - qmlDirs << ( s + QML ); - } - qmlDirs << CalamaresUtils::appDataDir().absoluteFilePath( QML ); - } - - return qmlDirs; -} - - static QStringList brandingFileCandidates( bool assumeBuilddir, const QString& brandingFilename ) { @@ -178,38 +150,12 @@ brandingFileCandidates( bool assumeBuilddir, const QString& brandingFilename ) void CalamaresApplication::initQmlPath() { - QDir importPath; // Right now, current-dir - QStringList qmlDirCandidatesByPriority = qmlDirCandidates( isDebug() ); - bool found = false; - - foreach ( const QString& path, qmlDirCandidatesByPriority ) - { - QDir dir( path ); - if ( dir.exists() && dir.isReadable() ) - { - importPath = dir; - found = true; - break; - } - } - - if ( !found || !importPath.exists() || !importPath.isReadable() ) +#ifdef WITH_QML + if ( !CalamaresUtils::initQmlModulesDir() ) { - cError() << "Cowardly refusing to continue startup without a QML directory." - << Logger::DebugList( qmlDirCandidatesByPriority ); - if ( CalamaresUtils::isAppDataDirOverridden() ) - { - cError() << "FATAL: explicitly configured application data directory is missing qml/"; - } - else - { - cError() << "FATAL: none of the expected QML paths exist."; - } ::exit( EXIT_FAILURE ); } - - cDebug() << "Using Calamares QML directory" << importPath.absolutePath(); - CalamaresUtils::setQmlModulesDir( importPath ); +#endif } diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 3405b0530..57da890cc 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -33,6 +33,9 @@ #include "modulesystem/ModuleManager.h" #include "modulesystem/ViewModule.h" #include "utils/Logger.h" +#ifdef WITH_QML +#include "utils/Qml.h" +#endif #include "utils/Yaml.h" #include "viewpages/ExecutionViewStep.h" @@ -366,6 +369,10 @@ main( int argc, char* argv[] ) gs->insert( "localeConf", vm ); } +#ifdef WITH_QML + CalamaresUtils::initQmlModulesDir(); // don't care if failed +#endif + cDebug() << "Calamares module-loader testing" << module.moduleName(); Calamares::Module* m = load_module( module ); if ( !m ) diff --git a/src/libcalamaresui/utils/Qml.cpp b/src/libcalamaresui/utils/Qml.cpp index eabbf8d33..4f53aa317 100644 --- a/src/libcalamaresui/utils/Qml.cpp +++ b/src/libcalamaresui/utils/Qml.cpp @@ -21,7 +21,9 @@ #include "Branding.h" #include "GlobalStorage.h" #include "JobQueue.h" +#include "Settings.h" #include "ViewManager.h" +#include "utils/Dirs.h" #include "utils/Logger.h" #include @@ -46,6 +48,62 @@ setQmlModulesDir( const QDir& dir ) s_qmlModulesDir = dir; } +static QStringList +qmlDirCandidates( bool assumeBuilddir ) +{ + static const char QML[] = "qml"; + + QStringList qmlDirs; + if ( CalamaresUtils::isAppDataDirOverridden() ) + { + qmlDirs << CalamaresUtils::appDataDir().absoluteFilePath( QML ); + } + else + { + if ( assumeBuilddir ) + { + qmlDirs << QDir::current().absoluteFilePath( "src/qml" ); // In build-dir + } + if ( CalamaresUtils::haveExtraDirs() ) + for ( auto s : CalamaresUtils::extraDataDirs() ) + { + qmlDirs << ( s + QML ); + } + qmlDirs << CalamaresUtils::appDataDir().absoluteFilePath( QML ); + } + + return qmlDirs; +} + +bool +initQmlModulesDir() +{ + QStringList qmlDirCandidatesByPriority + = qmlDirCandidates( Calamares::Settings::instance() && Calamares::Settings::instance()->debugMode() ); + + for ( const QString& path : qmlDirCandidatesByPriority ) + { + QDir dir( path ); + if ( dir.exists() && dir.isReadable() ) + { + cDebug() << "Using Calamares QML directory" << dir.absolutePath(); + CalamaresUtils::setQmlModulesDir( dir ); + return true; + } + } + + cError() << "Cowardly refusing to continue startup without a QML directory." + << Logger::DebugList( qmlDirCandidatesByPriority ); + if ( CalamaresUtils::isAppDataDirOverridden() ) + { + cError() << "FATAL: explicitly configured application data directory is missing qml/"; + } + else + { + cError() << "FATAL: none of the expected QML paths exist."; + } + return false; +} void callQmlFunction( QQuickItem* qmlObject, const char* method ) @@ -85,14 +143,14 @@ addExpansions( QmlSearch method, QStringList& candidates, const QStringList& nam std::transform( names.constBegin(), names.constEnd(), std::back_inserter( candidates ), - [ & ]( const QString& s ) { return s.isEmpty() ? QString() : bPath.arg( brandDir, s ); } ); + [&]( const QString& s ) { return s.isEmpty() ? QString() : bPath.arg( brandDir, s ); } ); } if ( ( method == QmlSearch::Both ) || ( method == QmlSearch::QrcOnly ) ) { std::transform( names.constBegin(), names.constEnd(), std::back_inserter( candidates ), - [ & ]( const QString& s ) { return s.isEmpty() ? QString() : qrPath.arg( s ); } ); + [&]( const QString& s ) { return s.isEmpty() ? QString() : qrPath.arg( s ); } ); } } diff --git a/src/libcalamaresui/utils/Qml.h b/src/libcalamaresui/utils/Qml.h index 2da36633a..a3fc6d114 100644 --- a/src/libcalamaresui/utils/Qml.h +++ b/src/libcalamaresui/utils/Qml.h @@ -35,7 +35,13 @@ UIDLLEXPORT QDir qmlModulesDir(); /// @brief sets specific directory for searching for QML files UIDLLEXPORT void setQmlModulesDir( const QDir& dir ); - +/** @brief initialize QML search path with branding directories + * + * Picks a suitable branding directory (from the build-dir in debug mode, + * otherwise based on the branding directory) and adds it to the + * QML modules directory; returns @c false if none is found. + */ +UIDLLEXPORT bool initQmlModulesDir(); /** @brief Sets up global Calamares models for QML * From c7d0df223a64cd4d0adda30930e4791bced6a156 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 10:36:42 +0200 Subject: [PATCH 028/335] [libcalamaresui] Expose registering-a-single-module - For testing purposes, it's useful to load a module externally and then register it to the ModuleManager (this hands off ownership). - Refactor overall module loading to use the exposed single-module method. --- .../modulesystem/ModuleManager.cpp | 52 +++++++++++++++---- .../modulesystem/ModuleManager.h | 8 +++ 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 3a3174935..0b83e4d9b 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -300,22 +300,12 @@ ModuleManager::loadModules() continue; } - if ( !checkModuleDependencies( *thisModule ) ) + if ( !addModule( thisModule ) ) { // Error message is already printed failedModules.append( instanceKey.toString() ); continue; } - - // If it's a ViewModule, it also appends the ViewStep to the ViewManager. - thisModule->loadSelf(); - m_loadedModulesByInstanceKey.insert( instanceKey, thisModule ); - if ( !thisModule->isLoaded() ) - { - cError() << "Module" << instanceKey.toString() << "loading FAILED."; - failedModules.append( instanceKey.toString() ); - continue; - } } // At this point we most certainly have a pointer to a loaded module in @@ -345,6 +335,40 @@ ModuleManager::loadModules() } } +bool +ModuleManager::addModule( Module *module ) +{ + if ( !module ) + { + return false; + } + if ( !module->instanceKey().isValid() ) + { + cWarning() << "Module" << module->location() << '@' << (void*)module << "has invalid instance key."; + return false; + } + if ( !checkModuleDependencies( *module ) ) + { + return false; + } + + if ( !module->isLoaded() ) + { + module->loadSelf(); + } + + // Even if the load failed, we keep the module, so that if it tried to + // get loaded **again**, we already know. + m_loadedModulesByInstanceKey.insert( module->instanceKey(), module ); + if ( !module->isLoaded() ) + { + cError() << "Module" << module->instanceKey().toString() << "loading FAILED."; + return false; + } + + return true; +} + void ModuleManager::checkRequirements() { @@ -414,6 +438,12 @@ ModuleManager::checkDependencies() bool ModuleManager::checkModuleDependencies( const Module& m ) { + if ( !m_availableDescriptorsByModuleName.contains( m.name() ) ) + { + cWarning() << "Module" << m.name() << "loaded externally, no dependency information."; + return true; + } + bool allRequirementsFound = true; QStringList requiredModules = m_availableDescriptorsByModuleName[ m.name() ].value( "requiredModules" ).toStringList(); diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index 0c8a4bdaf..2c51e70f7 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -85,6 +85,14 @@ public: */ void loadModules(); + /** + * @brief Adds a single module (loaded by some other means) + * + * Returns @c true on success (that is, the module's dependencies + * are satisfied, it wasn't already loaded, ...). + */ + bool addModule( Module* ); + /** * @brief Starts asynchronous requirements checking for each module. * When this is done, the signal requirementsComplete is emitted. From 28500de2f8b6ca2d925cd225d4d5ff1745127324 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 10:54:48 +0200 Subject: [PATCH 029/335] [calamares] Register modules in test-loader - When a viewmodule is loaded, register it with the module manager (especially relevant for the slideshow module). --- src/calamares/testmain.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 57da890cc..2b004ed7f 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -397,8 +397,9 @@ main( int argc, char* argv[] ) mw = module.m_ui ? new QMainWindow() : nullptr; (void)new Calamares::Branding( module.m_branding ); - (void)new Calamares::ModuleManager( QStringList(), nullptr ); + auto* modulemanager = new Calamares::ModuleManager( QStringList(), nullptr ); (void)Calamares::ViewManager::instance( mw ); + modulemanager->addModule( m ); } if ( !m->isLoaded() ) From 376cb3c042121f3b3a99f6dbdd59bd04fc481af0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 10:59:43 +0200 Subject: [PATCH 030/335] [calamares] Give the fake ExecutionViewModule a name - This is needed for addModule() so the module manager knows there is a module by the name x@x. - Tell the ExecutionViewStep to run jobs from x@x. --- src/calamares/testmain.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 2b004ed7f..a6b126d62 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -187,7 +187,6 @@ public: virtual Calamares::JobList jobs() const override; - protected: void initFrom( const QVariantMap& ) override; }; @@ -195,6 +194,9 @@ protected: ExecViewModule::ExecViewModule() : Calamares::Module() { + QVariantMap m; + m.insert( "name", "x" ); + Calamares::Module::initFrom(m, "x" ); } ExecViewModule::~ExecViewModule() {} @@ -210,6 +212,7 @@ ExecViewModule::loadSelf() auto* viewStep = new Calamares::ExecutionViewStep(); viewStep->setModuleInstanceKey( instanceKey() ); viewStep->setConfigurationMap( m_configurationMap ); + viewStep->appendJobModuleInstanceKey( "x@x" ); Calamares::ViewManager::instance()->addViewStep( viewStep ); m_loaded = true; } From 39b5dd4e6ec826c1513f953a3174a8deec29937e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 11:36:44 +0200 Subject: [PATCH 031/335] [libcalamaresui] Avoid deadlock - When loading QML V2, both loadQmlV2Complete() and changeSlideShowState() lock the same mutex, introduced in e7f4479df150efa21a3c225916ee5d6580b17064. - Explicitly unlock when loading is done and we need to change the state immediately. --- src/libcalamaresui/viewpages/Slideshow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libcalamaresui/viewpages/Slideshow.cpp b/src/libcalamaresui/viewpages/Slideshow.cpp index baed36252..0c75dc390 100644 --- a/src/libcalamaresui/viewpages/Slideshow.cpp +++ b/src/libcalamaresui/viewpages/Slideshow.cpp @@ -125,7 +125,11 @@ SlideshowQML::loadQmlV2Complete() if ( isActive() ) { // We're alreay visible! Must have been slow QML loading, and we - // passed onActivate already. + // passed onActivate already. changeSlideShowState() locks + // the same mutex: we could set up a workaround to call + // changeSlideShowState() later after destruction of l. + // + l.unlock(); changeSlideShowState( Slideshow::Start ); } } From d51a545fcf513b176aa8b4a5acf8b927b202f541 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 11:44:27 +0200 Subject: [PATCH 032/335] [calamares] onInitComplete() already activates first step - In the test application, there is only one viewstep, so it is already activated; avoid double-activation. --- src/calamares/testmain.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index a6b126d62..5c3dd5c95 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -425,7 +425,6 @@ main( int argc, char* argv[] ) mw->setCentralWidget( w ); w->show(); mw->show(); - vm->currentStep()->onActivate(); return aw->exec(); } From 738a6a9019eb900769e916a0176551135f231e7f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 20 May 2020 12:12:11 +0200 Subject: [PATCH 033/335] [calamares] Make module-tester configurable in slideshow mode - Uses global storage to steer the jobs that are created, in case the slideshow needs to be tweaked by percentages or whatever. - While here, add some code docs and apply coding style. --- src/calamares/testmain.cpp | 40 +++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 5c3dd5c95..a29c8ce91 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -144,8 +144,9 @@ handle_args( QCoreApplication& a ) class ExecViewJob : public Calamares::CppJob { public: - explicit ExecViewJob( const QString& name ) + explicit ExecViewJob( const QString& name, unsigned long t = 3 ) : m_name( name ) + , m_delay( t ) { } virtual ~ExecViewJob() override; @@ -154,7 +155,7 @@ public: Calamares::JobResult exec() override { - QThread::sleep( 3 ); + QThread::sleep( m_delay ); return Calamares::JobResult::ok(); } @@ -162,6 +163,7 @@ public: private: QString m_name; + unsigned long m_delay; }; ExecViewJob::~ExecViewJob() {} @@ -194,9 +196,12 @@ protected: ExecViewModule::ExecViewModule() : Calamares::Module() { + // Normally the module-loader gives the module an instance key + // (out of the settings file, or the descriptor of the module). + // We don't have one, so build one -- this gives us "x@x". QVariantMap m; m.insert( "name", "x" ); - Calamares::Module::initFrom(m, "x" ); + Calamares::Module::initFrom( m, "x" ); } ExecViewModule::~ExecViewModule() {} @@ -212,7 +217,7 @@ ExecViewModule::loadSelf() auto* viewStep = new Calamares::ExecutionViewStep(); viewStep->setModuleInstanceKey( instanceKey() ); viewStep->setConfigurationMap( m_configurationMap ); - viewStep->appendJobModuleInstanceKey( "x@x" ); + viewStep->appendJobModuleInstanceKey( instanceKey().toString() ); Calamares::ViewManager::instance()->addViewStep( viewStep ); m_loaded = true; } @@ -234,9 +239,34 @@ Calamares::JobList ExecViewModule::jobs() const { Calamares::JobList l; + const auto* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( gs && gs->contains( "jobs" ) ) + { + QVariantList joblist = gs->value( "jobs" ).toList(); + for ( const auto& jd : joblist ) + { + QVariantMap jobdescription = jd.toMap(); + if ( jobdescription.contains( "name" ) && jobdescription.contains( "delay" ) ) + { + l.append( Calamares::job_ptr( new ExecViewJob( jobdescription.value( "name" ).toString(), + jobdescription.value( "delay" ).toULongLong() ) ) ); + } + } + } + if ( l.count() > 0 ) + { + return l; + } + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "step 1" ) ) ) ); l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "step two" ) ) ) ); - l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "step III" ) ) ) ); + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "locking mutexes" ), 20 ) ) ); + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "unlocking mutexes" ), 1 ) ) ); + for ( const QString& s : QStringList { "Harder", "Better", "Faster", "Stronger" } ) + { + l.append( Calamares::job_ptr( new ExecViewJob( s, 0 ) ) ); + } + l.append( Calamares::job_ptr( new ExecViewJob( QStringLiteral( "cleaning up" ), 20 ) ) ); return l; } From 629bb2e2f6216009bcf27d2a6ea1744fac59ca48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Wed, 20 May 2020 10:39:01 -0400 Subject: [PATCH 034/335] [partition] Remove unused locals - Unused since commit 0d284759f59a2e1c282f86255d3da8d4542fce9d --- src/modules/partition/core/PartitionActions.cpp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index d0de2c0d4..7f8dafb8f 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -98,11 +98,6 @@ void doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionOptions o ) { Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - QString defaultFsType = o.defaultFsType; - if ( FileSystem::typeForName( defaultFsType ) == FileSystem::Unknown ) - { - defaultFsType = "ext4"; - } bool isEfi = PartUtils::isEfiSystem(); @@ -227,12 +222,6 @@ doReplacePartition( PartitionCoreModule* core, Device* dev, Partition* partition cDebug() << "doReplacePartition for device" << partition->partitionPath(); - QString defaultFsType = o.defaultFsType; - if ( FileSystem::typeForName( defaultFsType ) == FileSystem::Unknown ) - { - defaultFsType = "ext4"; - } - PartitionRole newRoles( partition->roles() ); if ( partition->roles().has( PartitionRole::Extended ) ) { From 885fe80d5ba33803d55f4640dc03a0de6d986e78 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 25 May 2020 03:40:18 -0400 Subject: [PATCH 035/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_es.ts | 44 +-- lang/calamares_fa.ts | 738 ++++++++++++++++++++-------------------- lang/calamares_zh_TW.ts | 4 +- 3 files changed, 393 insertions(+), 393 deletions(-) diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 9325c653c..f54b26d8b 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -102,7 +102,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Reload Stylesheet - + Recargar Hoja de estilo @@ -120,7 +120,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Set up - + Instalar @@ -138,7 +138,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Programmed job failure was explicitly requested. - + Se solicitó de manera explícita la falla del trabajo programado. @@ -154,7 +154,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Example job (%1) - + Ejemplo de trabajo (%1) @@ -162,12 +162,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Run command '%1' in target system. - + Ejecutar el comando '% 1' en el sistema de destino. Run command '%1'. - + Ejecutar el comando '% 1'. @@ -213,17 +213,17 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Loading ... - + Cargando ... QML Step <i>%1</i>. - + Paso QML <i>%1</i>. Loading failed. - + La carga ha fallado. @@ -231,9 +231,9 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Waiting for %n module(s). - - - + + Esperando %n módulo (s). + Esperando %n módulo(s). @@ -247,7 +247,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar System-requirements checking is complete. - + La verificación de los requisitos del sistema está completa. @@ -255,7 +255,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Setup Failed - + Configuración Fallida @@ -265,7 +265,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Would you like to paste the install log to the web? - + ¿Desea pegar el registro de instalación en la web? @@ -292,12 +292,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Install Log Paste URL - + Pegar URL Registro de Instalación The upload was unsuccessful. No web-paste was done. - + La carga no tuvo éxito. No se realizó pegado web. @@ -322,12 +322,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Continue with installation? - + Continuar con la instalación? The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + El programa de instalación %1 está a punto de hacer cambios en el disco con el fin de configurar %2.<br/><strong>No podrá deshacer estos cambios.</strong> @@ -337,7 +337,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar &Set up now - + &Configurar ahora @@ -352,7 +352,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar &Set up - + &Instalar @@ -362,7 +362,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Setup is complete. Close the setup program. - + La instalación se ha completado. Cierre el instalador. diff --git a/lang/calamares_fa.ts b/lang/calamares_fa.ts index a4de510ad..00b82036f 100644 --- a/lang/calamares_fa.ts +++ b/lang/calamares_fa.ts @@ -6,17 +6,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - <strong>محیط بوت</strong> این سیستم. <br><br>سیستم‌های قدیمی x86 فقط از <strong>بایوس</strong> پشتیبانی می‌کنند. <br>سیستم‌های مدرن معمولا از <strong>ای.اف.آی</strong> استفاده می‌کنند، اما ممکن است در صورتی که در حالت سازگاری اجرا شوند همچنان به صورت بایوس نشان داده شوند + <strong>محیط راه‌اندازی</strong> این سامانه. <br><br>سامانه‌های x86 قدیم‌تر فقط از <strong>بایوس</strong> پشتیبانی می‌کنند. <br>سامانه‌های نوین معمولا از <strong>ای‌اف‌آی</strong> استفاده می‌کنند، ولی اگر در حالت سازگاری روشن شوند، ممکن است به عنوان بایوس هم نمایش یابند. 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. - سیستم با محیط بوت <strong>ای.اف.آی</strong> آغاز شد. <br><br>به منظور پیکربندی راه‌اندازی از یک محیط ای.اف.آی، این نصاب باید حتما‌ یک برنامه بالاآورنده بوت، مانند <strong>گراب</strong> یا <strong>سیستم‌بوت</strong> را روی یک پارتیشن سیستم ای.اف.آی مستقر نماید. این به صورت خودکار است مگر اینکه شما پارتیشن‌بندی دستی را انتخاب کنید که در این صورت باید خودتان انتخاب کنید یا به صورت دستی ایجاد کنید. + سامانه با محیط راه‌اندازی <strong>ای‌اف‌آی</strong> روشن شد. <br><br>برای پیکربندی برپایی از محیط ای‌اف‌آی، باید این نصب‌کننده، برنامه بارکنندهٔ راه‌اندازی‌ای چون <strong>گراب</strong> یا <strong>راه‌انداز سیستم‌دی</strong> را روی یک <strong>افراز سامانه‌ای ای‌اف‌آی</strong> مستقر کند. این عمل به صورت خودکار انجام می‌شود، مگر آن که افرازش دستی را برگزینید که در آن صورت باید خودتان ایجادش کرده یا برگزینید. 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. - سیستم با محیط بوت <strong>بایوس</strong> آغاز شد. <br><br>به منظور پیکربندی راه‌انداری از یک محیط بایوس، این نصاب باید حتما‌ یک برنامه بالاآورنده بوت، مانند <strong>گراب</strong> را یا در شروع یک پارتیشن و یا روی <strong>رکورد راه‌انداز اصلی</strong> نزدیک شروع جدول پارتیشن (ترجیحا) نصب کند. این به صورت خودکار است مگر اینکه شما پارتیشن‌بندی دستی را انتخاب کنید که در این صورت باید خودتان به صورت دستی آن را راه‌اندازی کنید. + سامانه با محیط راه‌اندازی <strong>بایوس</strong> روشن شد. <br><br>برای پیکربندی برپایی از یک محیط بایوس، باید این نصب‌کنده برنامهٔ بارکنندهٔ راه‌اندازی چون <strong>گراب</strong> را در ابتدای یک افراز یا (ترجیحاً) روی <strong>رکورد راه‌اندازی اصلی</strong> نزدیکابتدای جدول افراز نصب کند. این عمل به صورت خودکار انجام می‌شود، مگر آن که افرازش دستی را برگزینید که در آن صورت باید خودتان برپایش کنید. @@ -24,22 +24,22 @@ Master Boot Record of %1 - رکورد راه انداز اصلی یا همان ام.بی.آر ٪1 + رکورد راه اندازی اصلی %1 Boot Partition - پارتیشن بوت + افراز راه‌اندازی System Partition - پارتیشن سیستمی + افراز سامانه‌ای Do not install a boot loader - بوت لودر نصب نکن. + نصب نکردن یک بارکنندهٔ راه‌اندازی @@ -52,7 +52,7 @@ Blank Page - صفحه خالی + صفحهٔ خالی @@ -75,12 +75,12 @@ Modules - ماژول‌ها + پیمانه‌ها Type: - نوع: + گونه: @@ -111,7 +111,7 @@ Debug information - اطلاعات رفع اشکال + اطّلاعات اشکال‌زدایی @@ -184,27 +184,27 @@ Bad working directory path - مسیر شاخه جاری نامناسب + مسیر شاخهٔ جاری بد Working directory %1 for python job %2 is not readable. - شاخه جاری %1 برای کار پایتونی %2 خواندنی نیست + شاخهٔ کاری %1 برای کار پایتونی %2 خواندنی نیست Bad main script file - اسکریپت اصلی مشکل‌دار + پروندهٔ کدنوشتهٔ اصلی بد Main script file %1 for python job %2 is not readable. - فایل اسکریپت اصلی %1 برای کار پایتون %2 قابل خواندن نیست. + پروندهٔ کدنویسهٔ اصلی %1 برای کار پایتونی %2 قابل خواندن نیست. Boost.Python error in job "%1". - Boost.Python error in job "%1". + خطای Boost.Python در کار %1. @@ -238,9 +238,9 @@ (%n second(s)) - - - + + (%n ثانیه) + (%n ثانیه) @@ -259,7 +259,7 @@ Installation Failed - نصب شکست خورد. + نصب شکست خورد @@ -316,7 +316,7 @@ Continue with setup? - راه اندازی ادامه یابد؟ + ادامهٔ برپایی؟ @@ -331,7 +331,7 @@ The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - نصاب %1 در شرف ایجاد تغییرات در دیسک شما به منظور نصب %2 است. <br/><strong>شما قادر نخواهید بود تا این تغییرات را برگردانید.</strong> + نصب‌کنندهٔ %1 می‌خواهد برای نصب %2 تغییراتی در دیسکتان بدهد. <br/><strong>نخواهید توانست این تغییرات را برگردانید.</strong> @@ -341,12 +341,12 @@ &Install now - &همین حالا نصب کنید + &اکنون نصب شود Go &back - برگردید به &عقب + &بازگشت @@ -386,7 +386,7 @@ &Back - &قبلی + &پیشین @@ -419,8 +419,8 @@ The setup program will quit and all changes will be lost. Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - آیا واقعاً می خواهید روند نصب فعلی را لغو کنید؟ -نصاب ترک می شود و همه تغییرات از بین می روند. + واقعاً می خواهید فرایند نصب فعلی را لغو کنید؟ +نصب‌کننده بسته شده و تمامی تغییرات از بین خواهند رفت. @@ -428,22 +428,22 @@ The installer will quit and all changes will be lost. Unknown exception type - نوع ناشناخته استثنا + گونهٔ استثنای ناشناخته unparseable Python error - unparseable Python error + خطای پایتونی غیرقابل تجزیه unparseable Python traceback - unparseable Python traceback + ردیابی پایتونی غیرقابل تجزیه Unfetchable Python error. - Unfetchable Python error. + خطای پایتونی غیرقابل دریافت. @@ -461,7 +461,7 @@ The installer will quit and all changes will be lost. Show debug information - نمایش اطلاعات دیباگ + نمایش اطّلاعات اشکال‌زدایی @@ -486,7 +486,7 @@ The installer will quit and all changes will be lost. %1 Installer - %1 نصاب + نصب‌کنندهٔ %1 @@ -594,7 +594,7 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>جایگزینی یک افراز</strong><br/>افرازی را با %1 جایگزین می‌کند. @@ -619,22 +619,22 @@ The installer will quit and all changes will be lost. Reuse Swap - + باز استفاده از مبادله Swap (no Hibernate) - + مبادله (بدون خواب‌زمستانی) Swap (with Hibernate) - + مبادله (با خواب‌زمستانی) Swap to file - + مبادله به پرونده @@ -642,17 +642,17 @@ The installer will quit and all changes will be lost. Clear mounts for partitioning operations on %1 - + پاک‌سازی اتّصال‌ها برای عملبات افراز روی %1 Clearing mounts for partitioning operations on %1. - + در حال پاک‌سازی اتّصال‌ها برای عملبات افراز روی %1 Cleared all mounts for %1 - + همهٔ اتّصال‌ها برای %1 پاک‌‌سازی شدند @@ -660,22 +660,22 @@ The installer will quit and all changes will be lost. Clear all temporary mounts. - + پاک‌سازی همهٔ اتّصال‌های موقّتی. Clearing all temporary mounts. - + در حال پاک‌سازی همهٔ اتّصال‌های موقّتی. Cannot get list of temporary mounts. - + نمی‌توان فهرست اتّصال‌های موقّتی را گرفت. Cleared all temporary mounts. - + همهٔ اتّصال‌های موقّتی پاک‌سازی شدند. @@ -684,17 +684,17 @@ The installer will quit and all changes will be lost. 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. - + دستور نیاز دارد نام کاربر را بداند، ولی هیچ نام کاربری‌ای تعریف نشده. @@ -702,17 +702,17 @@ The installer will quit and all changes will be lost. Set keyboard model to %1.<br/> - + تنظیم مدل صفحه‌کلید به %1.<br/> Set keyboard layout to %1/%2. - + تنظیم چینش صفحه‌کلید به %1/%2. The system language will be set to %1. - + زبان سامانه به %1 تنظیم خواهد شد. @@ -722,72 +722,72 @@ The installer will quit and all changes will be lost. Set timezone to %1/%2.<br/> - + تنظیم منطقهٔ زمانی به %1/%2.<br/> Network Installation. (Disabled: Incorrect configuration) - + نصب شبکه‌ای. (از کار افتاده: پیکربندی نادرست) Network Installation. (Disabled: Received invalid groups data) - + نصب شبکه‌ای. (از کار افتاده: دریافت داده‌های گروه‌های نامعتبر) Network Installation. (Disabled: internal error) - + نصب شبکه‌ای. (از کار افتاده: خطای داخلی) Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + نصب شبکه‌ای. (از کار افتاده: ناتوان در گرفتن فهرست بسته‌ها. اتّصال شبکه‌تان را بررسی کنید) This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. This program will ask you some questions and set up %2 on your computer. - + این برنامه تعدادی سوال از شما پرسیده و %2 را روی رایانه‌تان برپا می‌کند. <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>به برنامهٔ برپاسازی کالامارس برای %1 خوش آمدید.</h1> <h1>Welcome to %1 setup.</h1> - + <h1>به برپاسازی %1 خوش آمدید.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>به نصب‌کنندهٔ کالامارس برای %1 خوش آمدید.</h1> <h1>Welcome to the %1 installer.</h1> - + <h1>به نصب‌کنندهٔ %1 خوش آمدید.</h1> @@ -803,77 +803,77 @@ The installer will quit and all changes will be lost. Create a Partition - + ایجاد یک افراز Si&ze: - + اندا&زه: MiB - + می‌ب Partition &Type: - + &گونهٔ افراز &Primary - + &اصلی E&xtended - + &گسترش‌یافته Fi&le System: - + سامانه &پرونده: LVM LV name - + نام حجم منطقی &Mount Point: - + &نقطهٔ اتّصال: Flags: - + پرچم‌ها: En&crypt - + رمز&نگاری Logical - + منطقی Primary - + اصلی GPT - + GPT Mountpoint already in use. Please select another one. - + نقطهٔ اتّصال از پیش در حال استفاده است. لطفاً نقطهٔ دیگری برگزینید. @@ -881,17 +881,17 @@ The installer will quit and all changes will be lost. Create new %2MiB partition on %4 (%3) with file system %1. - + ایچاد افراز %2می‌ب جدید روی %4 (%3) با سامانهٔ پروندهٔ %1. Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - + ایچاد افراز <strong>%2می‌ب</strong> جدید روی <strong>%</strong>4 (%3) با سامانهٔ پروندهٔ <strong>%</strong>1. Creating new %1 partition on %2. - + در حال ایجاد افراز %1 جدید روی %2. @@ -904,27 +904,27 @@ The installer will quit and all changes will be lost. 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) - + رکورد راه‌اندازی اصلی (MBR) GUID Partition Table (GPT) - + جدول افراز گاید (GPT) @@ -932,17 +932,17 @@ The installer will quit and all changes will be lost. Create new %1 partition table on %2. - + ایجاد جدول افراز %1 جدید روی %2. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - + ایجاد جدول افراز <strong>%1</strong> جدید روی <strong>%2</strong> (%3). Creating new %1 partition table on %2. - + در حال ایجاد جدول افراز %1 جدید روی %2. @@ -955,37 +955,37 @@ The installer will quit and all changes will be lost. Create user %1 - + ایجاد کاربر %1 Create user <strong>%1</strong>. - + ایجاد کاربر <strong>%</strong>1. Creating user %1. - + در حال ایجاد کاربر %1. Sudoers dir is not writable. - + شاخهٔ sudoers قابل نوشتن نیست. Cannot create sudoers file for writing. - + نمی‌توان پروندهٔ sudoers را برای نوشتن ایجاد کرد. Cannot chmod sudoers file. - + نمی‌توان مالک پروندهٔ sudoers را تغییر داد. Cannot open groups file for reading. - + نمی‌توان پروندهٔ groups را برای خواندن گشود. @@ -993,7 +993,7 @@ The installer will quit and all changes will be lost. Create Volume Group - + ایجاد گروه حجمی @@ -1001,17 +1001,17 @@ 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>. - + ایجاد گروه حجمی جدید به نام <strong>%1</strong>. Creating new volume group named %1. - + در حال ایجاد گروه حجمی جدید به نام %1. @@ -1025,12 +1025,12 @@ The installer will quit and all changes will be lost. Deactivate volume group named %1. - + از کار انداختن گروه حجمی با نام %1. Deactivate volume group named <strong>%1</strong>. - + از کار انداختن گروه حجمی با نام <strong>%1</strong>. @@ -1043,17 +1043,17 @@ The installer will quit and all changes will be lost. Delete partition %1. - + حذف افراز %1. Delete partition <strong>%1</strong>. - + حذف افراز <strong>%1</strong>. Deleting partition %1. - + در حال حذف افراز %1. @@ -1066,7 +1066,7 @@ The installer will quit and all changes will be lost. This device has a <strong>%1</strong> partition table. - + این افزاره یک جدول افراز <strong>%1</strong> دارد. @@ -1124,7 +1124,7 @@ The installer will quit and all changes will be lost. Failed to open %1 - + شکست در گشودن %1 @@ -1132,7 +1132,7 @@ The installer will quit and all changes will be lost. Dummy C++ Job - + کار سی‌پلاس‌پلاس الکی @@ -1140,57 +1140,57 @@ The installer will quit and all changes will be lost. 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. - + نقطهٔ اتّصال از پیش در حال استفاده است. لطفاً نقطهٔ دیگری برگزینید. @@ -1203,22 +1203,22 @@ The installer will quit and all changes will be lost. En&crypt system - + رمز&نگاری سامانه Passphrase - + عبارت عبور Confirm passphrase - + تأیید عبارت عبور Please enter the same passphrase in both boxes. - + لطفاً عبارت عبور یکسانی را در هر دو جعبه وارد کنید. @@ -1226,7 +1226,7 @@ The installer will quit and all changes will be lost. Set partition information - + تنظیم اطّلاعات افراز @@ -1256,7 +1256,7 @@ The installer will quit and all changes will be lost. Setting up mount points. - + برپایی نقطه‌های اتّصال @@ -1269,7 +1269,7 @@ The installer will quit and all changes will be lost. &Restart now - + &راه‌اندازی دوباره @@ -1284,7 +1284,7 @@ The installer will quit and all changes will be lost. <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>همه‌چیز انجام شد.</h1><br/>%1 روی رایانه‌تان نصب شد.<br/>ممکن است بخواهید به سامانهٔ جدیدتان وارد شده تا به استفاده از محیط زندهٔ %2 ادامه دهید. @@ -1307,27 +1307,27 @@ The installer will quit and all changes will be lost. Finish - + پایان Setup Complete - + برپایی کامل شد Installation Complete - + نصب کامل شد The setup of %1 is complete. - + برپایی %1 کامل شد. The installation of %1 is complete. - + نصب %1 کامل شد. @@ -1378,52 +1378,52 @@ The installer will quit and all changes will be lost. 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. - + سامانه به اینترنت وصل نیست. is running the installer as an administrator (root) - + دارد نصب‌کننده را به عنوان یک مدیر (ریشه) اجرا می‌کند The setup program is not running with administrator rights. - + برنامهٔ برپایی با دسترسی‌های مدیر اجرا نشده‌است. The installer is not running with administrator rights. - + برنامهٔ نصب کننده با دسترسی‌های مدیر اجرا نشده‌است. has a screen large enough to show the whole installer - + صفحه‌ای با بزرگی کافی برای نمایش تمام نصب‌کننده دارد The screen is too small to display the setup program. - + صفحه برای نمایش برنامهٔ برپایی خیلی کوچک است. The screen is too small to display the installer. - + صفحه برای نمایش نصب‌کننده خیلی کوچک است. @@ -1431,7 +1431,7 @@ The installer will quit and all changes will be lost. Collecting information about your machine. - + در حال جمع‌آوری اطّلاعات دربارهٔ دستگاهتان. @@ -1447,17 +1447,17 @@ The installer will quit and all changes will be lost. Could not create directories <code>%1</code>. - + نمی‌توان شاخه‌های <code>%1</code> را ایجاد کرد. Could not open file <code>%1</code>. - + نمی‌توان پروندهٔ <code>%1</code> را گشود. Could not write to file <code>%1</code>. - + نمی‌توان در پروندهٔ <code>%1</code> نوشت. @@ -1465,7 +1465,7 @@ The installer will quit and all changes will be lost. Creating initramfs with mkinitcpio. - + در جال ایجاد initramfs با mkinitcpio. @@ -1473,7 +1473,7 @@ The installer will quit and all changes will be lost. Creating initramfs. - + در حال ایجاد initramfs. @@ -1481,17 +1481,17 @@ The installer will quit and all changes will be lost. Konsole not installed - + برنامهٔ Konsole نصب نیست Please install KDE Konsole and try again! - + لطفاً Konsole کی‌دی‌ای را نصب کرده و دوباره تلاش کنید! Executing script: &nbsp;<code>%1</code> - + در حال اجرای کدنوشته: &nbsp;<code>%1</code> @@ -1499,7 +1499,7 @@ The installer will quit and all changes will be lost. Script - + کدنوشته @@ -1507,12 +1507,12 @@ The installer will quit and all changes will be lost. Set keyboard model to %1.<br/> - + تنظیم مدل صفحه‌کلید به %1.<br/> Set keyboard layout to %1/%2. - + تنظیم چینش صفحه‌کلید به %1/%2. @@ -1520,7 +1520,7 @@ The installer will quit and all changes will be lost. Keyboard - + صفحه‌کلید @@ -1528,7 +1528,7 @@ The installer will quit and all changes will be lost. Keyboard - + صفحه‌کلید @@ -1536,12 +1536,12 @@ The installer will quit and all changes will be lost. 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>. - + تنظیمات محلی سیستم بر روی زبان و مجموعه کاراکتر برخی از عناصر رابط کاربری خط فرمان تأثیر می‌گذارد. <br/>تنظیمات فعلی <strong>%1</strong> است. @@ -1551,7 +1551,7 @@ The installer will quit and all changes will be lost. &OK - + &قبول @@ -1564,17 +1564,17 @@ The installer will quit and all changes will be lost. <h1>License Agreement</h1> - + <h1>توافق پروانه</h1> I accept the terms and conditions above. - + شرایط و ضوابط فوق را می‌پذیرم. Please review the End User License Agreements (EULAs). - + لطفاً توافق پروانهٔ کاربر نهایی (EULAs) را بازبینی کنید. @@ -1602,7 +1602,7 @@ The installer will quit and all changes will be lost. License - + پروانه @@ -1610,13 +1610,13 @@ The installer will quit and all changes will be lost. URL: %1 - + نشانی اینترنتی: %1 <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>راه‌انداز %1</strong><br/>از %2 @@ -1647,22 +1647,22 @@ The installer will quit and all changes will be lost. File: %1 - + پرونده: %1 Hide license text - + نهفتن متن پروانه Show the license text - + نمایش متن پروانه Open license agreement in browser. - + گشودن توافق پروانه در مرورگر. @@ -1670,23 +1670,23 @@ The installer will quit and all changes will be lost. Region: - + ناحیه: Zone: - + منطقه: &Change... - + &تغییر… The system language will be set to %1. - + زبان سامانه به %1 تنظیم خواهد شد. @@ -1696,7 +1696,7 @@ The installer will quit and all changes will be lost. Set timezone to %1/%2.<br/> - + تنظیم منطقهٔ زمانی به %1/%2.<br/> @@ -1704,7 +1704,7 @@ The installer will quit and all changes will be lost. Location - + موقعیت @@ -1712,7 +1712,7 @@ The installer will quit and all changes will be lost. Location - + موقعیت @@ -1720,20 +1720,20 @@ The installer will quit and all changes will be lost. Configuring LUKS key file. - + پیکربندی پروندهٔ کلید LUKS. No partitions are defined. - + هیچ افرازی تعریف نشده Encrypted rootfs setup error - + خطای برپاسازی rootfs رمزشده @@ -1756,12 +1756,12 @@ The installer will quit and all changes will be lost. Generate machine-id. - + تولید شناسهٔ دستگاه Configuration Error - + خطای پیکربندی @@ -1775,97 +1775,97 @@ The installer will quit and all changes will be lost. Package selection - + گزینش بسته‌ها Office software - + نرم‌افزار اداری Office package - + بستهٔ اداری Browser software - + نرم‌افزار مرورگر Browser package - + بستهٔ مرورگر Web browser - + مرورگر وب Kernel - + کرنل Services - + خدمت‌ها Login - + ورود Desktop - + میزکار Applications - + برنامه‌های کاربردی Communication - + ارتباطات Development - + توسعه Office - + اداری Multimedia - + چندرسانه‌ای Internet - + اینترنت Theming - + شخصی‌سازی Gaming - + بازی Utilities - + ابزارها @@ -1873,7 +1873,7 @@ The installer will quit and all changes will be lost. Notes - + یادداشت‌ها @@ -1899,7 +1899,7 @@ The installer will quit and all changes will be lost. OEM Configuration - + پیکربندی سازنده @@ -1912,72 +1912,72 @@ The installer will quit and all changes will be lost. Password is too short - + گذرواژه خیلی کوتاه است Password is too long - + گذرواژه خیلی بلند است Password is too weak - + گذرواژه خیلی ضعیف است Memory allocation error when setting '%1' - + خطای تخصیص حافظه هنگام تنظیم %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 - + گذرواژه کم‌تر از %1 رقم دارد The password contains too few digits - + گذرواژه، رقم‌های خیلی کمی دارد @@ -2012,17 +2012,17 @@ The installer will quit and all changes will be lost. The password is shorter than %1 characters - + گذرواژه کوتاه‌تر از %1 نویسه است The password is too short - + گذرواژه خیلی کوتاه است The password is just rotated old one - + گذرواژه معکوس قبلی است @@ -2067,7 +2067,7 @@ The installer will quit and all changes will be lost. No password supplied - + هیچ‌گذرواژه‌ای فراهم نشده @@ -2092,67 +2092,67 @@ The installer will quit and all changes will be lost. Unknown setting - %1 - + تنظیمات ناشناخته - %1 Unknown setting - + تنظیمات ناشناخته Bad integer value of setting - %1 - + مقدار صحیح بد در تنظیمات - %1 Bad integer value - + مقدار صحیح بد Setting %1 is not of integer type - + تنظیمات %1 از گونهٔ صحیح نیست Setting is not of integer type - + تنظیمات از گونهٔ صحیح نیست Setting %1 is not of string type - + تنظیمات %1 از گونهٔ رشته نیست Setting is not of string type - + تنظیمات از گونهٔ رشته نیست Opening the configuration file failed - + گشودن پروندهٔ پیکربندی شکست خورد The configuration file is malformed - + پروندهٔ پیکربندی بدریخت است Fatal failure - + خطای مهلک Unknown error - + خطای ناشناخته Password is empty - + گذرواژه خالی است @@ -2165,22 +2165,22 @@ The installer will quit and all changes will be lost. Product Name - + نام محصول TextLabel - + TextLabel Long Product Description - + شرح محصول بلند Package Selection - + گزینش بسته‌ها @@ -2193,7 +2193,7 @@ The installer will quit and all changes will be lost. Packages - + بسته‌ها @@ -2206,7 +2206,7 @@ The installer will quit and all changes will be lost. Description - + شرح @@ -2219,12 +2219,12 @@ The installer will quit and all changes will be lost. Keyboard Model: - + مدل صفحه‌کلید: Type here to test your keyboard - + برای آزمودن صفحه‌کلیدتان، این‌جا بنویسید @@ -2237,60 +2237,60 @@ The installer will quit and all changes will be lost. What is your name? - + نامتان چیست؟ Your Full Name - + نام کاملتان What name do you want to use to log in? - + برای ورود می خواهید از چه نامی استفاده کنید؟ login - + ورود 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> - + <small>اگر رایانه‌تان را روی یک شبکه برای دیگران نمایان کنید، از این نام استفاده می‌شود.</small> Computer Name - + نام رایانه 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> - + <small>همان گذرواژه را دوباره وارد کنید تا بتواند برای خطاهای نوشتاری بررسی شود. یک گذرواژهٔ خوب شامل ترکیبی از حروف، ارقام و علامت‌هاست که باید لااقل هست نویسه طول داشته باشد و در دوره‌های منظّم، عوض شود.</small> Password - + گذرواژه Repeat Password - + تکرار TextLabel @@ -2300,28 +2300,28 @@ The installer will quit and all changes will be lost. Require strong passwords. - + نباز به گذرواژهٔ قوی دارد. 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> - + <small>همان گذرواژه را دوباره وارد کنید تا بتواند برای خطاهای نوشتاری بررسی شود.</small> @@ -2374,13 +2374,13 @@ The installer will quit and all changes will be lost. Free Space - فضای خالی + فضای آزاد New partition - پارتیشن جدید + افراز جدید @@ -2390,17 +2390,17 @@ The installer will quit and all changes will be lost. File System - سیستم فایل + سامانهٔ پرونده Mount Point - + نقطهٔ اتّصال Size - + اندازه @@ -2413,67 +2413,67 @@ The installer will quit and all changes will be lost. 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? - + مطمئنید می‌خواهید روی %1 جدول افراز جدیدی بسازید؟ Can not create new partition - + نمی‌توان افراز جدید ساخت @@ -2486,12 +2486,12 @@ The installer will quit and all changes will be lost. Gathering system information... - جمع‌آوری اطلاعات سیستم... + جمع‌آوری اطّلاعات سامانه… Partitions - پارتیشن‌ها + افرازها @@ -2536,7 +2536,7 @@ The installer will quit and all changes will be lost. Disk <strong>%1</strong> (%2) - + دیسک <strong>%1</strong> (%2) @@ -2636,7 +2636,7 @@ The installer will quit and all changes will be lost. Look-and-Feel - + ظاهر و احساس @@ -2644,7 +2644,7 @@ The installer will quit and all changes will be lost. Saving files for later ... - + ذخیرهٔ پرونده‌ها برای بعد @@ -2738,33 +2738,33 @@ Output: unknown - + ناشناخته extended - + گسترده unformatted - + قالب‌بندی نشده swap - + مبادله Default Keyboard Model - + مدل صفحه‌کلید پیش‌گزیده Default - + پیش گزیده @@ -2772,7 +2772,7 @@ Output: File not found - + پرونده پیدا نشد @@ -2787,22 +2787,22 @@ Output: No product - + بدون محصول No description provided. - + هیچ توضیحی وجود ندارد. (no mount point) - + (بدون نقطهٔ اتّصال) Unpartitioned space or unknown partition table - + فضای افرازنشده یا جدول افراز ناشناخته @@ -2810,7 +2810,7 @@ Output: Remove live user from target system - + برداشتن کاربر زنده از سامانهٔ هدف @@ -2912,12 +2912,12 @@ Output: Resize Filesystem Job - + کار تغییر اندازهٔ سامانه‌پرونده Invalid configuration - + پیکربندی نامعتبر @@ -2941,7 +2941,7 @@ Output: Resize Failed - + تغییر اندازه شکست خورد @@ -2981,7 +2981,7 @@ Output: Resize partition %1. - + تغییر اندازهٔ افراز %1. @@ -3004,7 +3004,7 @@ Output: Resize Volume Group - + تغییر اندازهٔ گروه حجمی @@ -3036,7 +3036,7 @@ Output: System requirements - + نیازمندی‌های سامانه @@ -3044,27 +3044,27 @@ Output: This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. This program will ask you some questions and set up %2 on your computer. - + این برنامه تعدادی سوال از شما پرسیده و %2 را روی رایانه‌تان برپا می‌کند. @@ -3072,12 +3072,12 @@ Output: Scanning storage devices... - + در حال پویش افزارهٔ ذخیره‌ساز… Partitioning - + افرازش @@ -3085,23 +3085,23 @@ Output: Set hostname %1 - + تنظیم نام میزبان %1 Set hostname <strong>%1</strong>. - + تنظیم نام میزبان <strong>%1</strong>. Setting hostname %1. - + تنظیم نام میزبان به %1. Internal Error - + خطای داخلی @@ -3228,7 +3228,7 @@ Output: Set password for user %1 - + تنظیم گذرواژه برای کاربر %1 @@ -3243,7 +3243,7 @@ Output: rootMountPoint is %1 - + نقطهٔ اتّصال ریشه %1 است @@ -3258,7 +3258,7 @@ Output: Cannot set password for user %1. - + نمی‌توان برای کاربر %1 گذرواژه تنظیم کرد. @@ -3271,22 +3271,22 @@ Output: Set timezone to %1/%2 - + تنظیم منطقهٔ زمانی به %1/%2 Cannot access selected timezone path. - + نمی‌توان به مسیر منطقهٔ زمانی گزیده دسترسی یافت. Bad path: %1 - + مسیر بد: %1 Cannot set timezone. - + نمی‌توان منطقهٔ زمانی را تنظیم کرد. @@ -3339,7 +3339,7 @@ Output: Summary - + خلاصه @@ -3442,7 +3442,7 @@ Output: Feedback - + بازخورد @@ -3460,7 +3460,7 @@ Output: Your username is too long. - + نام کاربریتان بیش از حد بلند است. @@ -3475,12 +3475,12 @@ Output: Your hostname is too short. - + نام میزبانتان بیش از حد کوتاه است. Your hostname is too long. - + نام میزبانتان بیش از حد بلند است. @@ -3490,7 +3490,7 @@ Output: Your passwords do not match! - + گذرواژه‌هایتان مطابق نیستند! @@ -3498,7 +3498,7 @@ Output: Users - + کاربران @@ -3506,12 +3506,12 @@ Output: Key - + کلید Value - + مقدار @@ -3519,22 +3519,22 @@ Output: Create Volume Group - + ایجاد گروه حجمی List of Physical Volumes - + فهرست حجم‌های فیزیکی Volume Group Name: - + نام گروه حجمی: Volume Group Type: - + گونهٔ گروه حجمی: @@ -3544,27 +3544,27 @@ Output: MiB - + می‌ب Total Size: - + اندازهٔ کل: Used Size: - + اندازهٔ استفاده‌شده: Total Sectors: - + کل شیارها: Quantity of LVs: - + کمیت حجم‌های منطقی: @@ -3583,82 +3583,82 @@ Output: &About - + &درباره Open donations website - + گشودن پایگاه وب اعانه‌ها &Donate - + ا&عانه Open help and support website - + گشودن پایگاه وب راهنمایی و پشتیبانی &Support - + &پشتیبانی Open issues and bug-tracking website - + گشودن پایگاه وب ردیاب مشکل &Known issues - + &مشکلات شناخته‌شده Open release notes website - + گشودن پاگاه وب یادداشت‌های انتشار &Release notes - + &یادداشت‌های انتشار <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>به برنامهٔ برپاسازی کالامارس برای %1 خوش آمدید.</h1> <h1>Welcome to %1 setup.</h1> - + <h1>به برپاسازی %1 خوش آمدید.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>به نصب‌کنندهٔ کالامارس برای %1 خوش آمدید.</h1> <h1>Welcome to the %1 installer.</h1> - + <h1>به نصب‌کنندهٔ %1 خوش آمدید.</h1> %1 support - + پشتیبانی %1 About %1 setup - + دربارهٔ برپاسازی %1 About %1 installer - + دربارهٔ نصب‌کنندهٔ %1 @@ -3671,7 +3671,7 @@ Output: Welcome - + خوش آمدید @@ -3679,7 +3679,7 @@ Output: Welcome - + خوش آمدید @@ -3703,7 +3703,7 @@ Output: Back - + بازگشت @@ -3711,44 +3711,44 @@ Output: Keyboard Model - + مدل صفحه‌کلید Pick your preferred keyboard model or use the default one based on the detected hardware - + برمبنای سخت‌افزار شناخته‌شده، مدل صفحه‌کلید دلخواهتان را برگزیده یا از مدل پیش‌گزیده استفاده کنید. Refresh - + تازه‌سازی Layouts - + چینش‌ها Keyboard Layout - + چینش صفحه‌کلید Models - + مدل‌ها Variants - + دگرگونه‌ها Test your keyboard - + صفحه‌کلیدتان را بیازمایید @@ -3790,7 +3790,7 @@ Output: Back - + بازگشت @@ -3804,27 +3804,27 @@ Output: About - + درباره Support - + پشتیبانی Known issues - + اشکالات شناخته‌شده Release notes - + یادداشت‌های انتشار Donate - + اعانه diff --git a/lang/calamares_zh_TW.ts b/lang/calamares_zh_TW.ts index a665b7068..51f244389 100644 --- a/lang/calamares_zh_TW.ts +++ b/lang/calamares_zh_TW.ts @@ -1838,7 +1838,7 @@ The installer will quit and all changes will be lost. Office - 辦公室 + 辦公 @@ -3619,7 +3619,7 @@ Output: Open release notes website - 開啟發行手記網站 + 開啟發行記事網站 From ff0676b79b20d85ead0df57f061d441095961c65 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 25 May 2020 03:40:18 -0400 Subject: [PATCH 036/335] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/calamares.desktop b/calamares.desktop index 6a5f91db5..68b70b3de 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -61,6 +61,10 @@ Name[eu]=Sistema instalatu Icon[eu]=calamares GenericName[eu]=Sistema instalatzailea Comment[eu]=Calamares - sistema instalatzailea +Name[fa]=نصب سامانه +Icon[fa]=کالامارس +GenericName[fa]=نصب‌کنندهٔ سامانه +Comment[fa]=کالامارس — نصب‌کنندهٔ سامانه Name[es_PR]=Instalar el sistema Name[fr]=Installer le système Icon[fr]=calamares From bc9544bf14cf9c9c71e947b8304a6bff308812f1 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 25 May 2020 03:40:18 -0400 Subject: [PATCH 037/335] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/fa/LC_MESSAGES/dummypythonqt.mo | Bin 379 -> 973 bytes .../lang/fa/LC_MESSAGES/dummypythonqt.po | 18 +++++++++++------- .../lang/id/LC_MESSAGES/dummypythonqt.mo | Bin 899 -> 901 bytes .../lang/id/LC_MESSAGES/dummypythonqt.po | 6 +++--- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo index 248498cd75cb95c034a55cd7c2ad85ff9f5465df..19f444cdd872c3381df5457cd863dd592681908d 100644 GIT binary patch literal 973 zcmZ{i&rcIU6vszJjcdFRe;qtL;sv6!+wGxg79j#H1_3EpIXi8q?c(livomX{#;6Gp z4!!y}V2MdXG)697{TFuI#2EhqPaZt^rU)d8ll{zh-p>2JdApgf!$WTfj`PS3q=;NZ z+K3*XkW0uuGKzdbE+9XUYsfF;Dl&YEkPPY=>PzG?as}gWrwPfT{zScuYMmkECTb4# zI%*wt9`!XUS_T7C35I0oAUvAS;Y#;;R==47!JDwWz)IXRF_Ma@NP^F$WHk=eAcS1x z`z&vuP?_+^zC; zZM4eFV?GPHv=myTl}@EHwpC@;n6Wswm_Pnb+e{fVflypvf2{_7fa2@QYIw{Q<4~@% zP;xc#s5ncr$9ejwDi3L1l!J;ZY7S&et~zSdfhsc!UKBEq&IX~6e_1pJp`1vM!@+W5 zRKO(IW8((tw|kvGw*=yMakt-&yCz9KqwXY|kZi{v<9!Tv`)!Ed#(VJ&E_$7KC*C{0 zIheZ9>-5_u>2;C~T@tN0ZRu(wq}M&DwUumYd;H;FCmK&KNwg!``tOl|w)gR_d6;n6 U3M8BT_V-uqUN_m+T?{VUZ(6-i`v3p{ delta 69 zcmX@h{+r3-o)F7a1|VPrVi_P-0b*t#)&XJ=umEC5prj>`2C0F8$?=S7lbM, YEAR. # +# Translators: +# Danial Behzadi , 2020 +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-05 11:34-0400\n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2016-12-16 12:18+0000\n" +"Last-Translator: Danial Behzadi , 2020\n" "Language-Team: Persian (https://www.transifex.com/calamares/teams/20061/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +23,24 @@ msgstr "" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "کلیکم کنید!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "یک QLabel جدید." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "گام نمایش PythonQt الکی" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "کار PythonQt الکی" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "این کار PythonQt الکی است. کار الکی می‌گوید: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "پیام وضعیتی برای کار PythonQt الکی." diff --git a/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.mo index 75365c3b71bade16e7dde877f4787341830d9ea6..faf378083497e7696cd213b594325fb1e0c1b4e0 100644 GIT binary patch delta 73 zcmZo>Z)KklVp_t;z>omM!VC-ySD6?Xbb<6sAk77&#hHN^NGkzpAs}r9q|Je}@5atR PM&`pSvNzvmT)_wcct8u- delta 71 zcmZo=Z)TqmVp_z=z>omM!VC-ymzfwCbb<79Ak77&MVT2G#DTN|kQM^c7C_n@NPBPW O3}j@?-+Y&G1tS1l5(;Ag diff --git a/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.po index 7bbd86a27..41a0444c0 100644 --- a/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.po @@ -5,16 +5,16 @@ # # Translators: # Kukuh Syafaat , 2016 -# Wantoyo , 2017 +# Wantoyèk , 2017 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-05 11:34-0400\n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2016-12-16 12:18+0000\n" -"Last-Translator: Wantoyo , 2017\n" +"Last-Translator: Wantoyèk , 2017\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" From a318fc8f565651a48d191b40bd186388e5eb70f5 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 25 May 2020 03:40:18 -0400 Subject: [PATCH 038/335] i18n: [python] Automatic merge of Transifex translations --- lang/python/es/LC_MESSAGES/python.mo | Bin 8529 -> 8870 bytes lang/python/es/LC_MESSAGES/python.po | 9 +- lang/python/fa/LC_MESSAGES/python.mo | Bin 379 -> 8471 bytes lang/python/fa/LC_MESSAGES/python.po | 138 +++++++++++++----------- lang/python/id/LC_MESSAGES/python.mo | Bin 2374 -> 2376 bytes lang/python/id/LC_MESSAGES/python.po | 4 +- lang/python/zh_TW/LC_MESSAGES/python.mo | Bin 7526 -> 7526 bytes lang/python/zh_TW/LC_MESSAGES/python.po | 7 +- 8 files changed, 86 insertions(+), 72 deletions(-) diff --git a/lang/python/es/LC_MESSAGES/python.mo b/lang/python/es/LC_MESSAGES/python.mo index 4746eac7821d97f58458c9a41b474a39ac360bdc..d2ab2f33796606a1d1749770709f2e1e2fdecedc 100644 GIT binary patch delta 1679 zcmYk*Uu+ab9Ki9}=1x4Ztp!Vkmg}^I+Dc1XS}L?vYUxp10q7;apn z)Bx^?%%Hr#fIavf)}wk*sa;By)CM|jjHhu6`uI4Wi^gB#dd9c07VqLlOe87`wxJ|4 zf)eL2Hevxc;D`7qE@J~;#b*2oyI5bX(y3#j`bn&iE{rrs@1Z=KyYHe>>5~S-gm^;-4rB z9HvZ3bOHH^I)f7EV;sg?sIi%CdDl>C6s5qg)>RUiWZMQAFQM$njrF{qrW0phB=bWk z0RtSvE0KRk?jZ|F;B9;fFX2vHMG4%;flI~5aW`H@*`c4Y5C6hm>|}BPUv411W;$n> zNa5!wmHdI-*vFOb$D=4m65_M?4Gv*FH&HI*3?Fg{U&C2Eg%a;3%8qW~rQC&sDE~4a z*%WoQL`N>srzi`3fjjWm$R=*yAmeFd6Vy8>m3)K;@mrk4CZfvxJWk;`l)G~aC2lPj zM%;^%$Q#&!r3-Xq>#w0?`b#vfVRAR)ZVWMltff|QKQ^#!vQQf32$xZ|_8&ZrJ(?=< z3Nod-Ik)Y20A-!GkoSXXiH@B4CjM*t@F*HsMH`{X^E6G)i`?!#V_`AYXzU8l$J$!< zFhhv{pLTk(V{&}*jE6U3jdjn^8>T%WQ#`3K5pPULft;k82)pAA)uZ(G(z<9*hR?;@ zjG-_e?=kj;m*f4$Q{^Ayr`FWJ5SU(II~g6gI`8Dn^a))khOborK00q_Eq~DutOY&q zdb+hxY}FlwVyCu!?YM#V^SPYs1=gHCwx}1~yr;*Gp5xl2R?9vjv(l4*nwi{b#Y|GPAu5alHHwa8UV|mt_dL(CC88>H*<~%oWopQ47 zx3$Sh$4=X(Gv{h6tLH4=TF9BN=dHkGrcf*=HV+v4Q(5iXlDf$^wCSaf+b3OL=S?*Z@<{TIv3>l$b!6$RS*geQub^m+sHS$k&G;Al C6a-EH delta 1342 zcmXxkUr19?9Ki8&ZPPZLxtXn6w#`|ZSyt2O<}CkH3zPm378VT=lQcogD9RBO*h7Ed z>We+pgZUy7aS@7ojWBztNN^8^Mub{WQ4i5W^!>GU;rKb{T<`Ck^ZOkgYj{%|d+#s} zE1r7V23j~psVKIZ_`x%8Rw{xENsCjJ%42*1*W(EKaT3?!5|(00TEcRa_gz?m_b~@w zV}(*N^@)y;3HM5+^05vJ@N{x~2eTPZ;wqfNbr?rk@CV99GAxNW1?XbDAJUhUG|VR5xzLG2DS~Q39^8B?1(pY^V`8;>qOv6$~@J zi>)||vT#|ZQq35_CLF=o7CMV`TF^m$PvIGq8ofeZsSj9>-?0({9M^-rcu6CrCmNl-H=cV!V}o!__%x5tPkohSxy2sx~pMmfnm9zX{- za34ld=EpIDb0~MDkkusck)(qt8+nF>xPY=jD>qL{P>Ml}9j2qxxrxM5UfxRJDwLWH zqNH*bZ=i)d_MwiF(lk#ZZ~@BvL6q7)$40bLN3MuUq1Djj3Dcx3EXjWho@#x<HzS@oq#3ufHfheL&W`i#U7n`s#hxxtxV!UQTTgpm Yb%znRe@Qn!=K3|G&AqG{m%T;WUwqA&r~m)} diff --git a/lang/python/es/LC_MESSAGES/python.po b/lang/python/es/LC_MESSAGES/python.po index fe61ddbd1..302238518 100644 --- a/lang/python/es/LC_MESSAGES/python.po +++ b/lang/python/es/LC_MESSAGES/python.po @@ -9,6 +9,7 @@ # Guido Grasso , 2018 # Adolfo Jayme-Barrientos, 2019 # Miguel Mayol , 2020 +# Pier Jose Gotta Perez , 2020 # #, fuzzy msgid "" @@ -17,7 +18,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Miguel Mayol , 2020\n" +"Last-Translator: Pier Jose Gotta Perez , 2020\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" @@ -100,11 +101,11 @@ msgstr "Falló la sincronización mediante rsync con el código de error {}." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "Desempaquetando la imagen {}/{}, archivo {}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "Iniciando el desempaquetado {}" #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 msgid "Failed to unpack image \"{}\"" @@ -137,6 +138,8 @@ msgstr "Configuración de \"unsquash\" no válida" #: src/modules/unpackfs/main.py:423 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" +"El sistema de archivos para \"{}\" ({}) no es compatible con su kernel " +"actual" #: src/modules/unpackfs/main.py:427 msgid "The source filesystem \"{}\" does not exist" diff --git a/lang/python/fa/LC_MESSAGES/python.mo b/lang/python/fa/LC_MESSAGES/python.mo index a25fc7a02b6cd3d9681f8bd50b547f6e0a6e158c..f3e8321355015b5d5efba0b6324c77382da59d2a 100644 GIT binary patch literal 8471 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 B2iO1r diff --git a/lang/python/fa/LC_MESSAGES/python.po b/lang/python/fa/LC_MESSAGES/python.po index 6190c38f2..dcb1a2ebe 100644 --- a/lang/python/fa/LC_MESSAGES/python.po +++ b/lang/python/fa/LC_MESSAGES/python.po @@ -3,6 +3,9 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +# Translators: +# Danial Behzadi , 2020 +# #, fuzzy msgid "" msgstr "" @@ -10,6 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Last-Translator: Danial Behzadi , 2020\n" "Language-Team: Persian (https://www.transifex.com/calamares/teams/20061/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,30 +24,30 @@ msgstr "" #: src/modules/packages/main.py:59 src/modules/packages/main.py:68 #: src/modules/packages/main.py:78 msgid "Install packages." -msgstr "" +msgstr "نصب بسته‌ها." #: src/modules/packages/main.py:66 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "در حال پردازش بسته‌ها (%(count)d/%(total)d)" #: src/modules/packages/main.py:71 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "در حال نصب یک بسته." +msgstr[1] "در حال نصب %(num)d بسته." #: src/modules/packages/main.py:74 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "در حال برداشتن یک بسته." +msgstr[1] "در حال برداشتن %(num)d بسته." #: src/modules/networkcfg/main.py:37 msgid "Saving network configuration." -msgstr "" +msgstr "در حال ذخیرهٔ پیکربندی شبکه." #: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 #: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 @@ -53,142 +57,146 @@ msgstr "" #: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 #: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 msgid "Configuration Error" -msgstr "" +msgstr "خطای پیکربندی" #: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 #: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 #: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 #: src/modules/initramfscfg/main.py:99 msgid "No root mount point is given for
{!s}
to use." -msgstr "" +msgstr "هیچ نقطهٔ اتّصال ریشه‌ای برای استفادهٔ
{!s}
داده نشده." #: src/modules/umount/main.py:40 msgid "Unmount file systems." -msgstr "" +msgstr "پیاده کردن سامانه‌های پرونده." #: src/modules/initcpiocfg/main.py:37 msgid "Configuring mkinitcpio." -msgstr "" +msgstr "پیکربندی mkinitcpio." #: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 #: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 #: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 #: src/modules/rawfs/main.py:172 msgid "No partitions are defined for
{!s}
to use." -msgstr "" +msgstr "هیچ افرازی برای استفادهٔ
{!s}
تعریف نشده." #: src/modules/openrcdmcryptcfg/main.py:34 msgid "Configuring OpenRC dmcrypt service." -msgstr "" +msgstr "در حال پیکربندی خدمت dmcrypt OpenRC." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." -msgstr "" +msgstr "در حال پر کردن سامانه‌پرونده‌ها." #: src/modules/unpackfs/main.py:257 msgid "rsync failed with error code {}." -msgstr "" +msgstr "آرسینک با رمز خطای {} شکست خورد." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "در حال بسته‌گشایی تصویر {}/{}، پروندهٔ {}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "در حال شروع بسته‌گشایی {}" #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "شکست در بسته‌گشایی تصویر {}" #: src/modules/unpackfs/main.py:399 msgid "No mount point for root partition" -msgstr "" +msgstr "هیچ نقطهٔ اتّصالی برای افراز ریشه وجود ندارد" #: src/modules/unpackfs/main.py:400 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" -msgstr "" +msgstr "globalstorage کلید rootMountPoint را ندارد. کاری انجام نمی‌شود" #: src/modules/unpackfs/main.py:405 msgid "Bad mount point for root partition" -msgstr "" +msgstr "نقطهٔ اتّصال بد برای افراز ریشه" #: src/modules/unpackfs/main.py:406 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "نقطهٔ اتّصال ریشه {} است که وجود ندارد. کاری انجام نمی‌شود" #: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 #: src/modules/unpackfs/main.py:446 msgid "Bad unsquash configuration" -msgstr "" +msgstr "پیکربندی بد unsquash" #: src/modules/unpackfs/main.py:423 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "" +msgstr "کرنل کنونیتان از سامانه‌پروندهٔ {} ({}) پشتیبانی نمی‌کند" #: src/modules/unpackfs/main.py:427 msgid "The source filesystem \"{}\" does not exist" -msgstr "" +msgstr "سامانهٔ پروندهٔ مبدأ {} وجود ندارد" #: src/modules/unpackfs/main.py:433 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" -msgstr "" +msgstr "شکست در یافتن unsquashfs. مطمئن شوید بستهٔ squashfs-tools نصب است" #: src/modules/unpackfs/main.py:447 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "" +msgstr "مقصد {} در سامانهٔ هدف، یک شاخه نیست" #: src/modules/services-systemd/main.py:35 msgid "Configure systemd services" -msgstr "" +msgstr "در حال پیکربندی خدمات سیستم‌دی" #: src/modules/services-systemd/main.py:68 #: src/modules/services-openrc/main.py:102 msgid "Cannot modify service" -msgstr "" +msgstr "نمی‌توان خدمت را دستکاری کرد" #: src/modules/services-systemd/main.py:69 msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"فراخوانی systemctl {arg!s} در chroot رمز خطای {num!s} را " +"برگرداند." #: src/modules/services-systemd/main.py:72 #: src/modules/services-systemd/main.py:76 msgid "Cannot enable systemd service {name!s}." -msgstr "" +msgstr "نمی‌توان خدمت سیستم‌دی {name!s} را به کار انداخت." #: src/modules/services-systemd/main.py:74 msgid "Cannot enable systemd target {name!s}." -msgstr "" +msgstr "نمی‌توان هدف سیستم‌دی {name!s} را به کار انداخت." #: src/modules/services-systemd/main.py:78 msgid "Cannot disable systemd target {name!s}." -msgstr "" +msgstr "نمی‌توان خدمت سیستم‌دی {name!s} را از کار انداخت." #: src/modules/services-systemd/main.py:80 msgid "Cannot mask systemd unit {name!s}." -msgstr "" +msgstr "نمی‌توان واحد سیستم‌دی {name!s} را پوشاند." #: src/modules/services-systemd/main.py:82 msgid "" "Unknown systemd commands {command!s} and " "{suffix!s} for unit {name!s}." msgstr "" +"دستورات ناشناختهٔ سیستم‌دی {command!s} و " +"{suffix!s} برای واحد {name!s}." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "کار پایتونی الکی." #: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 #: src/modules/dummypython/main.py:103 msgid "Dummy python step {}" -msgstr "" +msgstr "گام پایتونی الکی {}" #: src/modules/bootloader/main.py:51 msgid "Install bootloader." -msgstr "" +msgstr "نصب بارکنندهٔ راه‌اندازی." #: src/modules/localecfg/main.py:39 msgid "Configuring locales." @@ -196,31 +204,31 @@ msgstr "" #: src/modules/mount/main.py:38 msgid "Mounting partitions." -msgstr "" +msgstr "در حال سوار کردن افرازها." #: src/modules/plymouthcfg/main.py:36 msgid "Configure Plymouth theme" -msgstr "" +msgstr "در حال پیکربندی زمینهٔ پلی‌موث" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." -msgstr "" +msgstr "در حال پیکربندی مبادلهٔ رمزشده." #: src/modules/fstab/main.py:38 msgid "Writing fstab." -msgstr "" +msgstr "در حال نوشتن fstab." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" -msgstr "" +msgstr "پیکربندی خدمات OpenRC" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "" +msgstr "نمی‌توان خدمت {name!s} را به سطح اجرایی {level!s} افزود." #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "" +msgstr "نمی‌توان خدمت {name!s} را از سطح اجرایی {level!s} برداشت." #: src/modules/services-openrc/main.py:70 msgid "" @@ -235,7 +243,7 @@ msgstr "" #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "" +msgstr "سطح اجرایی هدف وجود ندارد." #: src/modules/services-openrc/main.py:111 msgid "" @@ -245,7 +253,7 @@ msgstr "" #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "" +msgstr "خدمت هدف وجود ندارد" #: src/modules/services-openrc/main.py:120 msgid "" @@ -255,82 +263,84 @@ msgstr "" #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." -msgstr "" +msgstr "در حال ایجاد initramfs با dracut." #: src/modules/dracut/main.py:58 msgid "Failed to run dracut on the target" -msgstr "" +msgstr "شکست در اجرای dracut روی هدف" #: src/modules/dracut/main.py:59 msgid "The exit code was {}" -msgstr "" +msgstr "رمز خروج {} بود" #: src/modules/grubcfg/main.py:37 msgid "Configure GRUB." -msgstr "" +msgstr "در حال پیکربندی گراب." #: src/modules/displaymanager/main.py:515 msgid "Cannot write KDM configuration file" -msgstr "" +msgstr "نمی‌توان پروندهٔ پیکربندی KDM را نوشت" #: src/modules/displaymanager/main.py:516 msgid "KDM config file {!s} does not exist" -msgstr "" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" #: src/modules/displaymanager/main.py:577 msgid "Cannot write LXDM configuration file" -msgstr "" +msgstr "نمی‌توان پروندهٔ پیکربندی LXDM را نوشت" #: src/modules/displaymanager/main.py:578 msgid "LXDM config file {!s} does not exist" -msgstr "" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" #: src/modules/displaymanager/main.py:661 msgid "Cannot write LightDM configuration file" -msgstr "" +msgstr "نمی‌توان پروندهٔ پیکربندی LightDM را نوشت" #: src/modules/displaymanager/main.py:662 msgid "LightDM config file {!s} does not exist" -msgstr "" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" #: src/modules/displaymanager/main.py:736 msgid "Cannot configure LightDM" -msgstr "" +msgstr "نمی‌توان LightDM را پیکربندی کرد" #: src/modules/displaymanager/main.py:737 msgid "No LightDM greeter installed." -msgstr "" +msgstr "هیچ خوش‌آمدگوی LightDMای نصب نشده." #: src/modules/displaymanager/main.py:768 msgid "Cannot write SLIM configuration file" -msgstr "" +msgstr "نمی‌توان پروندهٔ پیکربندی LightDM را نوشت" #: src/modules/displaymanager/main.py:769 msgid "SLIM config file {!s} does not exist" -msgstr "" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" #: src/modules/displaymanager/main.py:895 msgid "No display managers selected for the displaymanager module." -msgstr "" +msgstr "هیچ مدیر نمایشی برای پیمانهٔ displaymanager گزیده نشده." #: src/modules/displaymanager/main.py:896 msgid "" "The displaymanagers list is empty or undefined in bothglobalstorage and " "displaymanager.conf." msgstr "" +"فهرست displaymanagers خالی بوده یا در bothglobalstorage و " +"displaymanager.conf تعریف نشده." #: src/modules/displaymanager/main.py:978 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "پیکربندی مدیر نمایش کامل نبود" #: src/modules/initramfscfg/main.py:41 msgid "Configuring initramfs." -msgstr "" +msgstr "در حال پیکربندی initramfs." #: src/modules/hwclock/main.py:35 msgid "Setting hardware clock." -msgstr "" +msgstr "در حال تنظیم ساعت سخت‌افزاری." #: src/modules/rawfs/main.py:35 msgid "Installing data." -msgstr "" +msgstr "داده‌های نصب" diff --git a/lang/python/id/LC_MESSAGES/python.mo b/lang/python/id/LC_MESSAGES/python.mo index b9bbbc6cbec4dbe08c99e9490b7f64baf66c2b9d..2a6c5294182d69ae0a5b8a723e78baa83cd5f2cf 100644 GIT binary patch delta 187 zcmXZVtqy`v0LAgct{>#frY2!-xY2w9yYFByIhj#ABN6ctNNVQ+3^Hc&8R))%!QlUH zq~Fd7=d|`^FHLs#q|ZQ#B<)60j5#jxh6%p={Oxl%mMr}SC%DA`PdLK@=U8Ec4_sh} lZr}LQ8WW!zcXXg|LnVfI#S~kd;;K%)pE1w-vEC0m^9Pkk7-|3j delta 185 zcmXZVAr69I0LAh54Mpfk{t5rZGnF49;#R8T@}6 z>9_a7d#!D3QD;{peFst`>EKH%%rM3$Zt&ITuFtcPWa)P}!99-gf+5~;j(3c(!X>`Z j?VCVKa2;^tj*b*=D8~gpFvS|DxGhuj^US$C4L{x=QXUrB diff --git a/lang/python/id/LC_MESSAGES/python.po b/lang/python/id/LC_MESSAGES/python.po index 48acf979f..41045e74a 100644 --- a/lang/python/id/LC_MESSAGES/python.po +++ b/lang/python/id/LC_MESSAGES/python.po @@ -6,7 +6,7 @@ # Translators: # Choiril Abdul, 2018 # Harry Suryapambagya , 2018 -# Wantoyo , 2018 +# Wantoyèk , 2018 # #, fuzzy msgid "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Wantoyo , 2018\n" +"Last-Translator: Wantoyèk , 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" diff --git a/lang/python/zh_TW/LC_MESSAGES/python.mo b/lang/python/zh_TW/LC_MESSAGES/python.mo index 23e76b0ea5954400ec8d2d58f72c11de12167104..3bf723b474065bf31e3991f5914b10a9a0dd03e7 100644 GIT binary patch delta 328 zcmaE6^~`ER2vdDCBLjnjAOk}<0|UbmAqXua%)lTEcPA0{K7z z9-u%skmdu@Gk`Qu55saGEe53b0BIm%xC|szf%HottpKF?fs!Bx8USgKycduLS(E^z z)q!+1kOo<_7)Xl)=|eyor0y1wb^_8L#5M;pC-I4eC+3u-7AZJqq?TqY*p!!7CWBa; rj|;l7ZWa)~!z}u|chj?`70+j{d)nFid{)cT*5%I@?AXjGoyr6NKUO+~ delta 329 zcmXZWElfgD6u|KVZ#2gE@I8i1Mqw5VPhMcmKtYqmxtR#C(J0PBgNZ?dBWch8V+I`? zV|xW5Fe=GLf#SvmgW2l;D%;)t-E+=8_gs}zxxu-&-tdUzLn0R, 2020 +# Walter Cheuk , 2020 # #, fuzzy msgid "" @@ -13,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: 黃柏諺 , 2020\n" +"Last-Translator: Walter Cheuk , 2020\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/calamares/teams/20061/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -126,7 +127,7 @@ msgstr "錯誤的 unsquash 設定" #: src/modules/unpackfs/main.py:423 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "\"{}\" ({}) 的檔案系統不被您目前的核心所支援" +msgstr "\"{}\" ({}) 的檔案系統不獲您目前的內核所支援" #: src/modules/unpackfs/main.py:427 msgid "The source filesystem \"{}\" does not exist" @@ -136,7 +137,7 @@ msgstr "來源檔案系統 \"{}\" 不存在" msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" -msgstr "找不到 unsquashfs,請確定您已安裝 squashfs-tools 軟體包" +msgstr "找不到 unsquashfs,請確定已安裝 squashfs-tools 軟體包" #: src/modules/unpackfs/main.py:447 msgid "The destination \"{}\" in the target system is not a directory" From 935f443a4db7085e27c44c2c061d4a5cf5881ca5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 May 2020 05:24:20 -0400 Subject: [PATCH 039/335] [tracking] Simplify policy display - Don't need an own slot for this, just connect to signals from Config and the label, neither of which need any state. --- src/modules/tracking/TrackingPage.cpp | 31 ++++++++++++--------------- src/modules/tracking/TrackingPage.h | 3 --- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 82e0d99c5..000ea2002 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -48,7 +48,20 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) group->addButton( ui->userRadio ); ui->noneRadio->setChecked( true ); - connect( config, &Config::generalPolicyChanged, this, &TrackingPage::setGeneralPolicy ); + // TODO: move to .ui file + ui->generalPolicyLabel->setTextInteractionFlags( Qt::TextBrowserInteraction ); + + connect( config, &Config::generalPolicyChanged, [ this ]( const QString& url ) { + this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); + } ); + connect( ui->generalPolicyLabel, &QLabel::linkActivated, [ config ] { + QString url( config->generalPolicy() ); + if ( !url.isEmpty() ) + { + QDesktopServices::openUrl( url ); + } + } ); + retranslate(); } @@ -76,22 +89,6 @@ TrackingPage::retranslate() } -void -TrackingPage::setGeneralPolicy( QString url ) -{ - if ( url.isEmpty() ) - { - ui->generalPolicyLabel->hide(); - } - else - { - ui->generalPolicyLabel->show(); - ui->generalPolicyLabel->setTextInteractionFlags( Qt::TextBrowserInteraction ); - ui->generalPolicyLabel->show(); - connect( ui->generalPolicyLabel, &QLabel::linkActivated, [ url ] { QDesktopServices::openUrl( url ); } ); - } -} - void TrackingPage::setTrackingLevel( TrackingType t ) { diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index ce8b87729..f63f7375c 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -41,9 +41,6 @@ public: void setTrackingLevel( TrackingType t ); public Q_SLOTS: - ///@brief Set URL for the global link - void setGeneralPolicy( QString url ); - void retranslate(); private: From 1d143d95a0ba544ff80c3738398ed29ed09bc8aa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 May 2020 08:30:37 -0400 Subject: [PATCH 040/335] [tracking] Setup UI in the .ui file --- src/modules/tracking/TrackingPage.cpp | 3 --- src/modules/tracking/page_trackingstep.ui | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 000ea2002..02bc94195 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -48,9 +48,6 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) group->addButton( ui->userRadio ); ui->noneRadio->setChecked( true ); - // TODO: move to .ui file - ui->generalPolicyLabel->setTextInteractionFlags( Qt::TextBrowserInteraction ); - connect( config, &Config::generalPolicyChanged, [ this ]( const QString& url ) { this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); } ); diff --git a/src/modules/tracking/page_trackingstep.ui b/src/modules/tracking/page_trackingstep.ui index ae2ed11b8..9612ef2b4 100644 --- a/src/modules/tracking/page_trackingstep.ui +++ b/src/modules/tracking/page_trackingstep.ui @@ -279,6 +279,9 @@ margin-left: 2em; false + + Qt::TextBrowserInteraction + From bed884c9718a4a75bce1356cc33d4bee40c7892e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 May 2020 09:21:47 -0400 Subject: [PATCH 041/335] [tracking] Move setup of initial-tracking states to Config - the *default* level from the config, can be handled inside the Config object as well; remove TrackingPage method that does the same. --- src/modules/tracking/Config.cpp | 59 +++++++++++++++++++++++ src/modules/tracking/Config.h | 3 ++ src/modules/tracking/TrackingType.h | 2 +- src/modules/tracking/TrackingViewStep.cpp | 23 --------- 4 files changed, 63 insertions(+), 24 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 8b5decd76..2dc91c2a9 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -18,11 +18,30 @@ #include "Config.h" +#include "TrackingType.h" + #include "utils/Logger.h" #include "utils/Variant.h" #include +const NamedEnumTable< TrackingType >& +trackingNames() +{ + // *INDENT-OFF* + // clang-format off + static const NamedEnumTable< TrackingType > names { + { QStringLiteral( "none" ), TrackingType::NoTracking }, + { QStringLiteral( "install" ), TrackingType::InstallTracking }, + { QStringLiteral( "machine" ), TrackingType::MachineTracking }, + { QStringLiteral( "user" ), TrackingType::UserTracking } + }; + // clang-format on + // *INDENT-ON* + + return names; +} + TrackingStyleConfig::TrackingStyleConfig( QObject* parent ) : QObject( parent ) { @@ -154,6 +173,26 @@ Config::Config( QObject* parent ) { } +static void +enableLevelsBelow( Config* config, TrackingType level ) +{ + switch( level ) + { + case TrackingType::UserTracking: + config->userTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); + FALLTHRU; + case TrackingType::MachineTracking: + config->machineTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); + FALLTHRU; + case TrackingType::InstallTracking: + config->installTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); + break; + case TrackingType::NoTracking: + config->noTracking( true ); + break; + } +} + void Config::setConfigurationMap( const QVariantMap& configurationMap ) { @@ -183,6 +222,14 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) { m_userTracking->setConfigurationMap( subconfig ); } + + auto level = trackingNames().find( CalamaresUtils::getString( configurationMap, "default" ), success ); + if ( !success ) + { + cWarning() << "Default tracking level unknown:" << CalamaresUtils::getString( configurationMap, "default" ); + level = TrackingType::NoTracking; + } + enableLevelsBelow( this, level ); } QString @@ -190,3 +237,15 @@ Config::generalPolicy() const { return m_generalPolicy; } + +void +Config::noTracking( bool switchOffAllTracking ) +{ + if ( !switchOffAllTracking ) + { + return; + } + m_installTracking->setTracking( TrackingStyleConfig::TrackingState::DisabledByUser ); + m_machineTracking->setTracking( TrackingStyleConfig::TrackingState::DisabledByUser ); + m_userTracking->setTracking( TrackingStyleConfig::TrackingState::DisabledByUser ); +} diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index bd9ba520e..26dcf2f4f 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -173,6 +173,9 @@ public Q_SLOTS: MachineTrackingConfig* machineTracking() const { return m_machineTracking; } UserTrackingConfig* userTracking() const { return m_userTracking; } + /// @brief Call with @c true to turn off all the trackings + void noTracking( bool ); + signals: void generalPolicyChanged( QString ); diff --git a/src/modules/tracking/TrackingType.h b/src/modules/tracking/TrackingType.h index 04e8d2ebe..22e3157d6 100644 --- a/src/modules/tracking/TrackingType.h +++ b/src/modules/tracking/TrackingType.h @@ -29,7 +29,7 @@ enum class TrackingType UserTracking // Track the user, ongoing }; -// Implemented in TrackingViewStep.cpp +// Implemented in Config.cpp const NamedEnumTable< TrackingType >& trackingNames(); #endif //TRACKINGTYPE_H diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 9942c2981..491fef12a 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -127,28 +127,5 @@ void TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { m_config->setConfigurationMap( configurationMap ); - - bool ok; - m_widget->setTrackingLevel( trackingNames().find( CalamaresUtils::getString( configurationMap, "default" ), ok ) ); - if ( !ok ) - { - cWarning() << "Default tracking level unknown:" << CalamaresUtils::getString( configurationMap, "default" ); - } } -const NamedEnumTable< TrackingType >& -trackingNames() -{ - // *INDENT-OFF* - // clang-format off - static const NamedEnumTable< TrackingType > names { - { QStringLiteral( "none" ), TrackingType::NoTracking }, - { QStringLiteral( "install" ), TrackingType::InstallTracking }, - { QStringLiteral( "machine" ), TrackingType::MachineTracking }, - { QStringLiteral( "user" ), TrackingType::UserTracking } - }; - // clang-format on - // *INDENT-ON* - - return names; -} From fab3ff2c41dbec28a0ee307c0c35d06738aff3fb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 May 2020 09:56:32 -0400 Subject: [PATCH 042/335] [tracking] Implement KUserFeedback configuration - write config files to turn on KUserFeedback (for known areas) - TODO: get the right home directory to write in --- src/modules/tracking/TrackingJobs.cpp | 69 +++++++++++++++++++++++++++ src/modules/tracking/TrackingJobs.h | 34 +++++++++++++ 2 files changed, 103 insertions(+) diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 40af355bd..18d01c7ca 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -162,3 +162,72 @@ true tr( "Could not configure machine feedback correctly, Calamares error %1." ).arg( r ) ); } } + +void +TrackingUserJob::addJob( Calamares::JobList& list, UserTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto style = config->userTrackingStyle(); + if ( style == "kuserfeedback" ) + { + list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob() ) ); + } + else + { + cWarning() << "Unsupported user tracking style" << style; + } + } +} + +QString +TrackingKUserFeedbackJob::prettyName() const +{ + return tr( "KDE user feedback" ); +} + +QString +TrackingKUserFeedbackJob::prettyDescription() const +{ + return prettyName(); +} + +QString +TrackingKUserFeedbackJob::prettyStatusMessage() const +{ + return tr( "Configuring KDE user feedback." ); +} + +Calamares::JobResult +TrackingKUserFeedbackJob::exec() +{ + // This is the contents of a config file to turn on some kind + // of KUserFeedback tracking; the level (16) is chosen for minimal + // but not zero tracking. + static const char config[] = R"x([Global] +FeedbackLevel=16 +)x"; + + for ( const QString& area : QStringList { "PlasmaUserFeedback" } ) + { + // TODO: get the configured user name + QString path = QStringLiteral( "/home/%1/.config/%2" ).arg( QString(), area ); + cDebug() << "Configuring KUserFeedback" << path; + + int r = CalamaresUtils::System::instance()->createTargetFile( path, config ); + if ( r > 0 ) + { + return Calamares::JobResult::error( + tr( "Error in KDE user feedback configuration." ), + tr( "Could not configure KDE user feedback correctly, script error %1." ).arg( r ) ); + } + else if ( r < 0 ) + { + return Calamares::JobResult::error( + tr( "Error in KDE user feedback configuration." ), + tr( "Could not configure KDE user feedback correctly, Calamares error %1." ).arg( r ) ); + } + } + + return Calamares::JobResult::ok(); +} diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index c7c2450cb..76e7dbed9 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -23,6 +23,7 @@ class InstallTrackingConfig; class MachineTrackingConfig; +class UserTrackingConfig; class QSemaphore; @@ -75,6 +76,12 @@ public: static void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); }; +/** @brief Tracking machines, KDE neon style + * + * The machine has a machine-id, and this is sed(1)'ed into the + * update-manager configuration, to report the machine-id back + * to KDE neon servers. + */ class TrackingMachineNeonJob : public TrackingMachineJob { Q_OBJECT @@ -85,5 +92,32 @@ public: Calamares::JobResult exec() override; }; +/** @brief Base class for user-tracking jobs + * + * User-tracking configuration depends on the distro / style of user + * tracking being implemented, so there are subclasses to switch on the + * relevant kind of tracking. Users are tracked persistently (the user + * can of course configure the tracking again once the system is restarted). + */ +class TrackingUserJob : public Calamares::Job +{ +public: + static void addJob( Calamares::JobList& list, UserTrackingConfig* config ); +}; + +/** @brief Turn on KUserFeedback in target system + * + * This writes suitable files for turning on KUserFeedback for the + * normal user configured in Calamares. The feedback can be reconfigured + * by the user through Plasma's user-feedback dialog. + */ +class TrackingKUserFeedbackJob : public Calamares::Job +{ +public: + QString prettyName() const override; + QString prettyDescription() const override; + QString prettyStatusMessage() const override; + Calamares::JobResult exec() override; +}; #endif From 60e12174fd117e78d6984f28aafe6aa2a7a69fd9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 25 May 2020 10:32:56 -0400 Subject: [PATCH 043/335] [tracking] Switch out Radio for CheckBox - The Radio's are replaced by CheckBoxes and some logic, so that different tracking styles can be enabled independently. None of the settings end up in the Config yet, though. --- src/modules/tracking/TrackingPage.cpp | 61 +++++++++++++---------- src/modules/tracking/TrackingPage.h | 17 +++++-- src/modules/tracking/page_trackingstep.ui | 8 +-- 3 files changed, 52 insertions(+), 34 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 02bc94195..e42ae2312 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -40,13 +40,15 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) ui->setupUi( this ); CALAMARES_RETRANSLATE_SLOT( &TrackingPage::retranslate ); - QButtonGroup* group = new QButtonGroup( this ); - group->setExclusive( true ); - group->addButton( ui->noneRadio ); - group->addButton( ui->installRadio ); - group->addButton( ui->machineRadio ); - group->addButton( ui->userRadio ); - ui->noneRadio->setChecked( true ); + ui->noneCheckBox->setChecked( true ); + connect( ui->noneCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::noneChecked ); + connect( ui->installCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::otherChecked ); + connect( ui->machineCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::otherChecked ); + connect( ui->userCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::otherChecked ); + + connect( ui->installCheckBox, &QCheckBox::stateChanged, [ this ]( int s ) { cDebug() << "Checkbox install changed" << s; } ); + connect( config->installTracking(), &TrackingStyleConfig::trackingChanged, [ config ]() { cDebug() << + "Install tracking changed" << config->installTracking()->isEnabled(); } ) ; connect( config, &Config::generalPolicyChanged, [ this ]( const QString& url ) { this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); @@ -85,30 +87,35 @@ TrackingPage::retranslate() .arg( product ) ); } - -void -TrackingPage::setTrackingLevel( TrackingType t ) +void TrackingPage::noneChecked(int state) { - QRadioButton* button = nullptr; - - switch ( t ) + if ( state ) { - case TrackingType::NoTracking: - button = ui->noneRadio; - break; - case TrackingType::InstallTracking: - button = ui->installRadio; - break; - case TrackingType::MachineTracking: - button = ui->machineRadio; - break; - case TrackingType::UserTracking: - button = ui->userRadio; - break; + cDebug() << "Unchecking all due to none box"; + ui->installCheckBox->setChecked( false ); + ui->machineCheckBox->setChecked( false ); + ui->userCheckBox->setChecked( false ); } +} - if ( button != nullptr ) +void TrackingPage::otherChecked(int state) +{ + cDebug() << "Other checked" << state; + if ( state ) { - button->setChecked( true ); + // Can't have none checked, if another one is + ui->noneCheckBox->setChecked( false ); + } + else + { + if ( ui->installCheckBox->isChecked() || ui->machineCheckBox->isChecked() || ui->userCheckBox->isChecked() ) + { + // One of them is still checked, leave *none* alone + ; + } + else + { + ui->noneCheckBox->setChecked( true ); + } } } diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index f63f7375c..e4c465fbc 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -37,12 +37,23 @@ class TrackingPage : public QWidget public: explicit TrackingPage( Config* config, QWidget* parent = nullptr ); - ///@brief Select one of the four levels by name - void setTrackingLevel( TrackingType t ); - public Q_SLOTS: void retranslate(); + /** @brief When the *no tracking* checkbox is changed + * + * @p state will be non-zero when the box is checked; this + * **unchecks** all the other boxes. + */ + void noneChecked( int state ); + + /** @brief Some other checkbox changed + * + * This may check the *none* button if all the others are + * now unchecked. + */ + void otherChecked( int state ); + private: Ui::TrackingPage* ui; }; diff --git a/src/modules/tracking/page_trackingstep.ui b/src/modules/tracking/page_trackingstep.ui index 9612ef2b4..4383d312d 100644 --- a/src/modules/tracking/page_trackingstep.ui +++ b/src/modules/tracking/page_trackingstep.ui @@ -32,7 +32,7 @@ margin-left: 2em; - + @@ -83,7 +83,7 @@ margin-left: 2em; - + @@ -145,7 +145,7 @@ margin-left: 2em; - + @@ -207,7 +207,7 @@ margin-left: 2em; - + From c6174b027ca1c9e11336bdee61885d1ab338830a Mon Sep 17 00:00:00 2001 From: AI Lion Date: Sun, 31 May 2020 00:31:05 +0800 Subject: [PATCH 044/335] remove unnecessary period mark since it's a title --- src/modules/welcome/Config.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/welcome/Config.cpp b/src/modules/welcome/Config.cpp index 71d6de9bb..c842e2451 100644 --- a/src/modules/welcome/Config.cpp +++ b/src/modules/welcome/Config.cpp @@ -229,14 +229,14 @@ Config::genericWelcomeMessage() const if ( Calamares::Settings::instance()->isSetupMode() ) { message = Calamares::Branding::instance()->welcomeStyleCalamares() - ? tr( "

Welcome to the Calamares setup program for %1.

" ) - : tr( "

Welcome to %1 setup.

" ); + ? tr( "

Welcome to the Calamares setup program for %1

" ) + : tr( "

Welcome to %1 setup

" ); } else { message = Calamares::Branding::instance()->welcomeStyleCalamares() - ? tr( "

Welcome to the Calamares installer for %1.

" ) - : tr( "

Welcome to the %1 installer.

" ); + ? tr( "

Welcome to the Calamares installer for %1

" ) + : tr( "

Welcome to the %1 installer

" ); } return message; From c6d147bde65a1a6af14accf9d2c6e1f809370190 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 01:38:11 -0700 Subject: [PATCH 045/335] [keyboard] Give Canadian English the US keyboard layout, eh --- src/modules/keyboard/KeyboardPage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 21e55d5d0..43d116146 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -324,7 +324,7 @@ KeyboardPage::onActivate() { "ar_YE", arabic }, { "ca_ES", "cat_ES" }, /* Catalan */ { "as_ES", "ast_ES" }, /* Asturian */ - { "en_CA", "eng_CA" }, /* Canadian English */ + { "en_CA", "us" }, /* Canadian English */ { "el_CY", "gr" }, /* Greek in Cyprus */ { "el_GR", "gr" }, /* Greek in Greeze */ { "ig_NG", "igbo_NG" }, /* Igbo in Nigeria */ From eee9dee87f1b4a7e5d5f5b1206c0c67aa7f4d8f7 Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Thu, 28 May 2020 21:43:43 +0100 Subject: [PATCH 046/335] [lang] Update SPDX identifiers. --- lang/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 37ea8356c..efc6d6188 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### From 280e367c8638997e4c211ab7fcefc5414504722b Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Thu, 28 May 2020 21:44:27 +0100 Subject: [PATCH 047/335] [/] Update SPDX identifiers. Update CMakeLists.txt --- CMakeLists.txt | 2 +- io.calamares.calamares.appdata.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 519ee1abc..a22c8f587 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/io.calamares.calamares.appdata.xml b/io.calamares.calamares.appdata.xml index 355f485c2..d49a33b0f 100644 --- a/io.calamares.calamares.appdata.xml +++ b/io.calamares.calamares.appdata.xml @@ -2,7 +2,7 @@ io.calamares.calamares.desktop CC0-1.0 - GPL-3.0+ + GPL-3.0-or-later Calamares Calamares Calamares From 0d4642ca6a94f05ea279b5cdbb738a483c5baa2e Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Thu, 28 May 2020 21:46:47 +0100 Subject: [PATCH 048/335] [CMakeModules] Update SPDX identifiers. Update CalamaresAddTest.cmake Update CalamaresAddLibrary.cmake Update CalamaresAddBrandingSubdirectory.cmake Update CalamaresAddTranslations.cmake Update CalamaresAddPlugin.cmake Update CalamaresAddModuleSubdirectory.cmake --- CMakeModules/CalamaresAddBrandingSubdirectory.cmake | 2 +- CMakeModules/CalamaresAddLibrary.cmake | 2 +- CMakeModules/CalamaresAddModuleSubdirectory.cmake | 2 +- CMakeModules/CalamaresAddPlugin.cmake | 2 +- CMakeModules/CalamaresAddTest.cmake | 2 +- CMakeModules/CalamaresAddTranslations.cmake | 2 +- CMakeModules/CalamaresAutomoc.cmake | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index 80cf86f38..9283b48a7 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index 0829d919e..6155293d7 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index 981ec4a01..fe4f34f94 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index c8f81e684..66536eda7 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/CMakeModules/CalamaresAddTest.cmake b/CMakeModules/CalamaresAddTest.cmake index 65f9389e8..4dd673745 100644 --- a/CMakeModules/CalamaresAddTest.cmake +++ b/CMakeModules/CalamaresAddTest.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index d74e4bdfb..bb15fb122 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### diff --git a/CMakeModules/CalamaresAutomoc.cmake b/CMakeModules/CalamaresAutomoc.cmake index f8aa7faef..3de586ad2 100644 --- a/CMakeModules/CalamaresAutomoc.cmake +++ b/CMakeModules/CalamaresAutomoc.cmake @@ -13,7 +13,7 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0+ +# SPDX-License-Identifier: GPL-3.0-or-later # License-Filename: LICENSE # ### From 741b6805135235c0ed563bbcc90a9e6ba8930cb6 Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Fri, 29 May 2020 22:09:39 +0100 Subject: [PATCH 049/335] [qml] Update SPDX identifiers. Update Presentation.qml --- src/qml/calamares/slideshow/Presentation.qml | 2 +- src/qml/calamares/slideshow/Slide.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/calamares/slideshow/Presentation.qml b/src/qml/calamares/slideshow/Presentation.qml index 1d2fd9c85..405055b56 100644 --- a/src/qml/calamares/slideshow/Presentation.qml +++ b/src/qml/calamares/slideshow/Presentation.qml @@ -12,7 +12,7 @@ * - Support "V2" loading * - Disable shortcuts until the content is visible in Calamares * - * SPDX-License-Identifier: LGPL-2.1 + * SPDX-License-Identifier: LGPL-2.1-only * License-Filename: LICENSES/LGPLv2.1-Presentation */ diff --git a/src/qml/calamares/slideshow/Slide.qml b/src/qml/calamares/slideshow/Slide.qml index 6b32ddfbf..dc3e24480 100644 --- a/src/qml/calamares/slideshow/Slide.qml +++ b/src/qml/calamares/slideshow/Slide.qml @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * SPDX-License-Identifier: LGPL-2.1 + * SPDX-License-Identifier: LGPL-2.1-only * License-Filename: LICENSES/LGPLv2.1-Presentation */ From 210ce97bf65eec13cde73c4b6741a3d8471fd95f Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Fri, 29 May 2020 22:11:24 +0100 Subject: [PATCH 050/335] [libcalamaresui] Update SPDX identifiers. Update ImageRegistry.cpp --- src/libcalamaresui/utils/ImageRegistry.cpp | 2 +- src/libcalamaresui/utils/ImageRegistry.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamaresui/utils/ImageRegistry.cpp b/src/libcalamaresui/utils/ImageRegistry.cpp index 1778de745..ebe6858dd 100644 --- a/src/libcalamaresui/utils/ImageRegistry.cpp +++ b/src/libcalamaresui/utils/ImageRegistry.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * SPDX-License-Identifier: GPLv3+ + * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSES/GPLv3+-ImageRegistry * * Copyright 2019, Adriaan de Groot diff --git a/src/libcalamaresui/utils/ImageRegistry.h b/src/libcalamaresui/utils/ImageRegistry.h index f73ee36e6..5378d71e7 100644 --- a/src/libcalamaresui/utils/ImageRegistry.h +++ b/src/libcalamaresui/utils/ImageRegistry.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * SPDX-License-Identifier: GPLv3+ + * SPDX-License-Identifier: GPL-3.0-or-later * License-Filename: LICENSES/GPLv3+-ImageRegistry * * Copyright 2019, Adriaan de Groot From 141842dfd26bd641d5d8ff006fa3d2c4e59a1091 Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Sun, 31 May 2020 14:07:49 +0100 Subject: [PATCH 051/335] [LICENSES] Add BSD2 --- LICENSES/BSD2 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 LICENSES/BSD2 diff --git a/LICENSES/BSD2 b/LICENSES/BSD2 new file mode 100644 index 000000000..919d22d1c --- /dev/null +++ b/LICENSES/BSD2 @@ -0,0 +1,24 @@ + + Copyright 2019 Adriaan de Groot + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. From 24653c1cc6b117b2147c72edde3295da83dd85d4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 13:42:15 +0200 Subject: [PATCH 052/335] [locale] C&P code with repeated bugs from QML branches --- src/modules/keyboard/Config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 8b651d05d..06f7b3e81 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -456,7 +456,7 @@ Config::onActivate() { "ar_YE", arabic }, { "ca_ES", "cat_ES" }, /* Catalan */ { "as_ES", "ast_ES" }, /* Asturian */ - { "en_CA", "eng_CA" }, /* Canadian English */ + { "en_CA", "us" }, /* Canadian English */ { "el_CY", "gr" }, /* Greek in Cyprus */ { "el_GR", "gr" }, /* Greek in Greeze */ { "ig_NG", "igbo_NG" }, /* Igbo in Nigeria */ From 0c4dc71d5c4e4c05ad6b2c668f5045652772af1e Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Sat, 30 May 2020 15:15:03 +0100 Subject: [PATCH 053/335] [libcalamares] Update SPDX identifiers. Update CppJob.h Update CalamaresConfig.h.in Update DllMacro.h Update GlobalStorage.cpp Update GlobalStorage.h Update Job.cpp Update Job.h Update JobExample.cpp Update JobExample.h Update JobQueue.cpp Update CalamaresConfig.h.in Update CppJob.cpp Update CppJob.h Update DllMacro.h Update GlobalStorage.cpp Update GlobalStorage.h Update Job.cpp Update Job.h Update JobExample.cpp Update JobExample.h Update JobQueue.h Update ProcessJob.cpp Update ProcessJob.h Update PythonHelper.cpp Update PythonJob.cpp Update PythonJob.h Update PythonHelper.h Update PythonJobApi.cpp Update PythonJobApi.h Update Settings.cpp Update Settings.h Update GeoIPJSON.cpp Update GeoIPJSON.h Update GeoIPTests.cpp Update GeoIPTests.h Update GeoIPXML.cpp Update GeoIPXML.h Update Handler.cpp Update Handler.h Update Interface.cpp Update Interface.h Update test_geoip.cpp Update CountryData_p.cpp Update Label.cpp Update Label.h Update LabelModel.cpp Update LabelModel.h Update CountryData_p.cpp Update CountryData_p.cpp Update Lookup.cpp Update Lookup.h Update Tests.cpp Update Tests.h Update TimeZone.cpp Update TimeZone.h Update TranslatableConfiguration.cpp Update TranslatableConfiguration.h Update ZoneData_p.cxxtr Update cldr-extractor.py Update zone-extractor.py Update Actions.h Update Actions.h Update Descriptor.h Update InstanceKey.cpp Update Module.cpp Update Module.h Update Requirement.cpp Update RequirementsChecker.h Update RequirementsModel.cpp Update RequirementsModel.h Update Tests.cpp Update Manager.cpp Update Manager.h Update Tests.cpp Update FileSystem.cpp Update FileSystem.h Update KPMManager.cpp Update KPMManager.h Update KPMTests.cpp Update FileSystem.cpp Update FileSystem.cpp Update FileSystem.h Update KPMManager.cpp Update KPMManager.h Update Mount.cpp Update Mount.h Update PartitionIterator.cpp Update PartitionIterator.h Update PartitionIterator.h Update PartitionQuery.cpp Update PartitionQuery.h Update PartitionSize.cpp Update PartitionSize.h Update Sync.cpp Update Sync.h Update Tests.cpp Update Tests.h Update BoostPython.h Update CalamaresUtilsSystem.cpp Update CalamaresUtilsSystem.h Update CommandList.cpp Update CommandList.h Update Dirs.cpp Update Dirs.h Update Entropy.cpp Update Entropy.h Update Entropy.cpp Update Logger.cpp Update Logger.h Update NamedEnum.h Update NamedSuffix.h Update PluginFactory.cpp Update PluginFactory.h Update RAII.h Update RAII.h Update Retranslator.cpp Update Retranslator.h Update String.cpp Update String.h Update TestPaths.cpp Update Tests.cpp Update Tests.h Update UMask.cpp Update UMask.h Update Units.h Update Variant.cpp Update Variant.h Update Yaml.cpp Update Yaml.h Update moc-warnings.h --- src/libcalamares/CMakeLists.txt | 21 ++++++++++++++++++ src/libcalamares/CalamaresConfig.h.in | 21 ++++++++++++++++++ src/libcalamares/CppJob.cpp | 10 ++++++--- src/libcalamares/CppJob.h | 12 ++++++---- src/libcalamares/DllMacro.h | 10 ++++++--- src/libcalamares/GlobalStorage.cpp | 10 ++++++--- src/libcalamares/GlobalStorage.h | 10 ++++++--- src/libcalamares/Job.cpp | 8 +++++-- src/libcalamares/Job.h | 9 +++++--- src/libcalamares/JobExample.cpp | 9 +++++--- src/libcalamares/JobExample.h | 8 +++++-- src/libcalamares/JobQueue.cpp | 10 ++++++--- src/libcalamares/JobQueue.h | 8 +++++-- src/libcalamares/ProcessJob.cpp | 10 ++++++--- src/libcalamares/ProcessJob.h | 10 ++++++--- src/libcalamares/PythonHelper.cpp | 10 ++++++--- src/libcalamares/PythonHelper.h | 10 ++++++--- src/libcalamares/PythonJob.cpp | 11 ++++++---- src/libcalamares/PythonJob.h | 10 ++++++--- src/libcalamares/PythonJobApi.cpp | 10 ++++++--- src/libcalamares/PythonJobApi.h | 10 ++++++--- src/libcalamares/Settings.cpp | 14 +++++++----- src/libcalamares/Settings.h | 14 +++++++----- src/libcalamares/geoip/GeoIPJSON.cpp | 12 ++++++---- src/libcalamares/geoip/GeoIPJSON.h | 10 ++++++--- src/libcalamares/geoip/GeoIPTests.cpp | 10 ++++++--- src/libcalamares/geoip/GeoIPTests.h | 10 ++++++--- src/libcalamares/geoip/GeoIPXML.cpp | 10 ++++++--- src/libcalamares/geoip/GeoIPXML.h | 10 ++++++--- src/libcalamares/geoip/Handler.cpp | 10 ++++++--- src/libcalamares/geoip/Handler.h | 10 ++++++--- src/libcalamares/geoip/Interface.cpp | 10 ++++++--- src/libcalamares/geoip/Interface.h | 10 ++++++--- src/libcalamares/geoip/test_geoip.cpp | 10 ++++++--- src/libcalamares/locale/Label.cpp | 10 ++++++--- src/libcalamares/locale/Label.h | 10 ++++++--- src/libcalamares/locale/LabelModel.cpp | 10 ++++++--- src/libcalamares/locale/LabelModel.h | 10 ++++++--- src/libcalamares/locale/Lookup.cpp | 8 +++++-- src/libcalamares/locale/Lookup.h | 8 +++++-- src/libcalamares/locale/Tests.cpp | 8 +++++-- src/libcalamares/locale/Tests.h | 8 +++++-- src/libcalamares/locale/TimeZone.cpp | 8 +++++-- src/libcalamares/locale/TimeZone.h | 8 +++++-- .../locale/TranslatableConfiguration.cpp | 8 +++++-- .../locale/TranslatableConfiguration.h | 8 +++++-- src/libcalamares/locale/ZoneData_p.cxxtr | 20 +++++++++++++++++ src/libcalamares/locale/cldr-extractor.py | 7 ++++++ src/libcalamares/locale/zone-extractor.py | 6 +++++ src/libcalamares/modulesystem/Actions.h | 10 ++++++--- src/libcalamares/modulesystem/Descriptor.h | 8 +++++-- src/libcalamares/modulesystem/InstanceKey.cpp | 10 ++++++--- src/libcalamares/modulesystem/InstanceKey.h | 10 ++++++--- src/libcalamares/modulesystem/Module.cpp | 10 ++++++--- src/libcalamares/modulesystem/Module.h | 10 ++++++--- src/libcalamares/modulesystem/Requirement.cpp | 10 ++++++--- src/libcalamares/modulesystem/Requirement.h | 10 ++++++--- .../modulesystem/RequirementsChecker.cpp | 10 ++++++--- .../modulesystem/RequirementsChecker.h | 10 ++++++--- .../modulesystem/RequirementsModel.cpp | 8 +++++-- .../modulesystem/RequirementsModel.h | 8 +++++-- src/libcalamares/modulesystem/Tests.cpp | 8 +++++-- src/libcalamares/network/Manager.cpp | 8 +++++-- src/libcalamares/network/Manager.h | 8 +++++-- src/libcalamares/network/Tests.cpp | 8 +++++-- src/libcalamares/network/Tests.h | 8 +++++-- src/libcalamares/partition/FileSystem.cpp | 12 ++++++---- src/libcalamares/partition/FileSystem.h | 12 ++++++---- src/libcalamares/partition/KPMManager.cpp | 8 +++++-- src/libcalamares/partition/KPMManager.h | 8 +++++-- src/libcalamares/partition/KPMTests.cpp | 8 +++++-- src/libcalamares/partition/Mount.cpp | 10 ++++++--- src/libcalamares/partition/Mount.h | 10 ++++++--- .../partition/PartitionIterator.cpp | 12 ++++++---- .../partition/PartitionIterator.h | 13 +++++++---- src/libcalamares/partition/PartitionQuery.cpp | 12 ++++++---- src/libcalamares/partition/PartitionQuery.h | 12 ++++++---- src/libcalamares/partition/PartitionSize.cpp | 11 +++++++--- src/libcalamares/partition/PartitionSize.h | 10 ++++++--- src/libcalamares/partition/Sync.cpp | 8 +++++-- src/libcalamares/partition/Sync.h | 8 +++++-- src/libcalamares/partition/Tests.cpp | 8 +++++-- src/libcalamares/partition/Tests.h | 8 +++++-- src/libcalamares/utils/BoostPython.h | 8 +++++-- .../utils/CalamaresUtilsSystem.cpp | 10 ++++++--- src/libcalamares/utils/CalamaresUtilsSystem.h | 10 ++++++--- src/libcalamares/utils/CommandList.cpp | 8 +++++-- src/libcalamares/utils/CommandList.h | 8 +++++-- src/libcalamares/utils/Dirs.cpp | 16 +++++++++----- src/libcalamares/utils/Dirs.h | 16 +++++++++----- src/libcalamares/utils/Entropy.cpp | 7 +++++- src/libcalamares/utils/Entropy.h | 7 +++++- src/libcalamares/utils/Logger.cpp | 13 +++++++---- src/libcalamares/utils/Logger.h | 14 +++++++----- src/libcalamares/utils/NamedEnum.h | 10 ++++++--- src/libcalamares/utils/NamedSuffix.h | 8 +++++-- src/libcalamares/utils/PluginFactory.cpp | 18 ++++++++++++++- src/libcalamares/utils/PluginFactory.h | 16 +++++++++----- src/libcalamares/utils/RAII.h | 8 +++++-- src/libcalamares/utils/Retranslator.cpp | 8 +++++-- src/libcalamares/utils/Retranslator.h | 8 +++++-- src/libcalamares/utils/String.cpp | 16 +++++++++----- src/libcalamares/utils/String.h | 16 +++++++++----- src/libcalamares/utils/TestPaths.cpp | 7 +++++- src/libcalamares/utils/Tests.cpp | 7 +++++- src/libcalamares/utils/Tests.h | 7 +++++- src/libcalamares/utils/UMask.cpp | 7 +++++- src/libcalamares/utils/UMask.h | 8 +++++-- src/libcalamares/utils/Units.h | 9 ++++++-- src/libcalamares/utils/Variant.cpp | 16 +++++++++----- src/libcalamares/utils/Variant.h | 9 ++++++-- src/libcalamares/utils/Yaml.cpp | 9 ++++++-- src/libcalamares/utils/Yaml.h | 9 ++++++-- src/libcalamares/utils/moc-warnings.h | 22 +++++++++++++++++++ 114 files changed, 857 insertions(+), 306 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index fa4265d6e..560ea597e 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -1,3 +1,24 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0-or-later +# License-Filename: LICENSE +# +# # libcalamares is the non-GUI part of Calamares, which includes handling # translations, configurations, logging, utilities, global storage, and (non-GUI) jobs. diff --git a/src/libcalamares/CalamaresConfig.h.in b/src/libcalamares/CalamaresConfig.h.in index b31de95b5..98efa8c26 100644 --- a/src/libcalamares/CalamaresConfig.h.in +++ b/src/libcalamares/CalamaresConfig.h.in @@ -1,3 +1,24 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * + */ #ifndef CALAMARESCONFIG_H #define CALAMARESCONFIG_H diff --git a/src/libcalamares/CppJob.cpp b/src/libcalamares/CppJob.cpp index b6b18b1b7..a2647463a 100644 --- a/src/libcalamares/CppJob.cpp +++ b/src/libcalamares/CppJob.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2016, Kevin Kofler + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Kevin Kofler * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "CppJob.h" diff --git a/src/libcalamares/CppJob.h b/src/libcalamares/CppJob.h index e4997733e..ee093675a 100644 --- a/src/libcalamares/CppJob.h +++ b/src/libcalamares/CppJob.h @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2016, Kevin Kofler - * Copyright 2020, Adriaan de Groor + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_CPPJOB_H diff --git a/src/libcalamares/DllMacro.h b/src/libcalamares/DllMacro.h index 528a70c2d..2eeea331e 100644 --- a/src/libcalamares/DllMacro.h +++ b/src/libcalamares/DllMacro.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef DLLMACRO_H diff --git a/src/libcalamares/GlobalStorage.cpp b/src/libcalamares/GlobalStorage.cpp index 428b01103..d58a3b0c6 100644 --- a/src/libcalamares/GlobalStorage.cpp +++ b/src/libcalamares/GlobalStorage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "GlobalStorage.h" diff --git a/src/libcalamares/GlobalStorage.h b/src/libcalamares/GlobalStorage.h index 2a59009f7..e9ba1da8a 100644 --- a/src/libcalamares/GlobalStorage.h +++ b/src/libcalamares/GlobalStorage.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_GLOBALSTORAGE_H diff --git a/src/libcalamares/Job.cpp b/src/libcalamares/Job.cpp index d074a18cb..95339f349 100644 --- a/src/libcalamares/Job.cpp +++ b/src/libcalamares/Job.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Job.h" diff --git a/src/libcalamares/Job.h b/src/libcalamares/Job.h index d93e97cf7..18f11158f 100644 --- a/src/libcalamares/Job.h +++ b/src/libcalamares/Job.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,8 +14,11 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ - #ifndef CALAMARES_JOB_H #define CALAMARES_JOB_H diff --git a/src/libcalamares/JobExample.cpp b/src/libcalamares/JobExample.cpp index 83da2b1e1..ba085be6e 100644 --- a/src/libcalamares/JobExample.cpp +++ b/src/libcalamares/JobExample.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,8 +14,11 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ - #include "JobExample.h" namespace Calamares diff --git a/src/libcalamares/JobExample.h b/src/libcalamares/JobExample.h index 92f8f8fb6..e0307f64a 100644 --- a/src/libcalamares/JobExample.h +++ b/src/libcalamares/JobExample.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_JOB_EXAMPLE_H diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index 6a2aa4cba..adff9464b 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "JobQueue.h" diff --git a/src/libcalamares/JobQueue.h b/src/libcalamares/JobQueue.h index 88a2bb0c3..ff2694d8f 100644 --- a/src/libcalamares/JobQueue.h +++ b/src/libcalamares/JobQueue.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_JOBQUEUE_H diff --git a/src/libcalamares/ProcessJob.cpp b/src/libcalamares/ProcessJob.cpp index 744f5f9bf..c6cb94359 100644 --- a/src/libcalamares/ProcessJob.cpp +++ b/src/libcalamares/ProcessJob.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "ProcessJob.h" diff --git a/src/libcalamares/ProcessJob.h b/src/libcalamares/ProcessJob.h index e826acb1d..75ef6f6e3 100644 --- a/src/libcalamares/ProcessJob.h +++ b/src/libcalamares/ProcessJob.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_PROCESSJOB_H diff --git a/src/libcalamares/PythonHelper.cpp b/src/libcalamares/PythonHelper.cpp index 0b5d77ac1..2f5418888 100644 --- a/src/libcalamares/PythonHelper.cpp +++ b/src/libcalamares/PythonHelper.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2018, 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "PythonHelper.h" diff --git a/src/libcalamares/PythonHelper.h b/src/libcalamares/PythonHelper.h index 7528732a0..7acea5832 100644 --- a/src/libcalamares/PythonHelper.h +++ b/src/libcalamares/PythonHelper.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2018, 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_PYTHONJOBHELPER_H diff --git a/src/libcalamares/PythonJob.cpp b/src/libcalamares/PythonJob.cpp index 9069c49dc..50828e896 100644 --- a/src/libcalamares/PythonJob.cpp +++ b/src/libcalamares/PythonJob.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018, 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,8 +15,11 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ - #include "PythonJob.h" #include "CalamaresVersion.h" diff --git a/src/libcalamares/PythonJob.h b/src/libcalamares/PythonJob.h index eb9d8fff1..498eac44f 100644 --- a/src/libcalamares/PythonJob.h +++ b/src/libcalamares/PythonJob.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_PYTHONJOB_H diff --git a/src/libcalamares/PythonJobApi.cpp b/src/libcalamares/PythonJobApi.cpp index ecca466fe..2f8818738 100644 --- a/src/libcalamares/PythonJobApi.cpp +++ b/src/libcalamares/PythonJobApi.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017-2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "PythonJobApi.h" diff --git a/src/libcalamares/PythonJobApi.h b/src/libcalamares/PythonJobApi.h index f91572b3d..6fd162912 100644 --- a/src/libcalamares/PythonJobApi.h +++ b/src/libcalamares/PythonJobApi.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017-2018, 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef PYTHONJOBAPI_H diff --git a/src/libcalamares/Settings.cpp b/src/libcalamares/Settings.cpp index da388ea32..3c45c2e43 100644 --- a/src/libcalamares/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -1,9 +1,9 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Dominic Hayes - * Copyright 2019, Gabriel Craciunescu - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Gabriel Craciunescu + * SPDX-FileCopyrightText: 2019 Dominic Hayes + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +17,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Settings.h" diff --git a/src/libcalamares/Settings.h b/src/libcalamares/Settings.h index 3cedd6e2b..098e010e5 100644 --- a/src/libcalamares/Settings.h +++ b/src/libcalamares/Settings.h @@ -1,9 +1,9 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Dominic Hayes - * Copyright 2019, Gabriel Craciunescu - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Gabriel Craciunescu + * SPDX-FileCopyrightText: 2019 Dominic Hayes + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +17,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef SETTINGS_H diff --git a/src/libcalamares/geoip/GeoIPJSON.cpp b/src/libcalamares/geoip/GeoIPJSON.cpp index 85dc79619..6522ca085 100644 --- a/src/libcalamares/geoip/GeoIPJSON.cpp +++ b/src/libcalamares/geoip/GeoIPJSON.cpp @@ -1,7 +1,7 @@ -/* === This file is part of Calamares - === - * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "GeoIPJSON.h" diff --git a/src/libcalamares/geoip/GeoIPJSON.h b/src/libcalamares/geoip/GeoIPJSON.h index 3f7756dd8..246556c74 100644 --- a/src/libcalamares/geoip/GeoIPJSON.h +++ b/src/libcalamares/geoip/GeoIPJSON.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018-2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef GEOIP_GEOIPJSON_H diff --git a/src/libcalamares/geoip/GeoIPTests.cpp b/src/libcalamares/geoip/GeoIPTests.cpp index 4b1f8f8e1..1ef03196e 100644 --- a/src/libcalamares/geoip/GeoIPTests.cpp +++ b/src/libcalamares/geoip/GeoIPTests.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "GeoIPTests.h" diff --git a/src/libcalamares/geoip/GeoIPTests.h b/src/libcalamares/geoip/GeoIPTests.h index a320e3263..795dbfe89 100644 --- a/src/libcalamares/geoip/GeoIPTests.h +++ b/src/libcalamares/geoip/GeoIPTests.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef GEOIPTESTS_H diff --git a/src/libcalamares/geoip/GeoIPXML.cpp b/src/libcalamares/geoip/GeoIPXML.cpp index 2a97c5546..125614032 100644 --- a/src/libcalamares/geoip/GeoIPXML.cpp +++ b/src/libcalamares/geoip/GeoIPXML.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "GeoIPXML.h" diff --git a/src/libcalamares/geoip/GeoIPXML.h b/src/libcalamares/geoip/GeoIPXML.h index 73147ff91..d686928db 100644 --- a/src/libcalamares/geoip/GeoIPXML.h +++ b/src/libcalamares/geoip/GeoIPXML.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018-2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef GEOIP_GEOIPXML_H diff --git a/src/libcalamares/geoip/Handler.cpp b/src/libcalamares/geoip/Handler.cpp index 99e55e926..107c4d1ea 100644 --- a/src/libcalamares/geoip/Handler.cpp +++ b/src/libcalamares/geoip/Handler.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Handler.h" diff --git a/src/libcalamares/geoip/Handler.h b/src/libcalamares/geoip/Handler.h index 518964caf..6e4f590c7 100644 --- a/src/libcalamares/geoip/Handler.h +++ b/src/libcalamares/geoip/Handler.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef GEOIP_HANDLER_H diff --git a/src/libcalamares/geoip/Interface.cpp b/src/libcalamares/geoip/Interface.cpp index 2cecb63c5..82acb7950 100644 --- a/src/libcalamares/geoip/Interface.cpp +++ b/src/libcalamares/geoip/Interface.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Interface.h" diff --git a/src/libcalamares/geoip/Interface.h b/src/libcalamares/geoip/Interface.h index 1a9beaa41..d22f07788 100644 --- a/src/libcalamares/geoip/Interface.h +++ b/src/libcalamares/geoip/Interface.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018-2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef GEOIP_INTERFACE_H diff --git a/src/libcalamares/geoip/test_geoip.cpp b/src/libcalamares/geoip/test_geoip.cpp index 32c6f4e24..d5f386d02 100644 --- a/src/libcalamares/geoip/test_geoip.cpp +++ b/src/libcalamares/geoip/test_geoip.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /** diff --git a/src/libcalamares/locale/Label.cpp b/src/libcalamares/locale/Label.cpp index 02583df8b..0be82a380 100644 --- a/src/libcalamares/locale/Label.cpp +++ b/src/libcalamares/locale/Label.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Label.h" diff --git a/src/libcalamares/locale/Label.h b/src/libcalamares/locale/Label.h index bd596f53d..fa07e3361 100644 --- a/src/libcalamares/locale/Label.h +++ b/src/libcalamares/locale/Label.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LOCALE_LABEL_H diff --git a/src/libcalamares/locale/LabelModel.cpp b/src/libcalamares/locale/LabelModel.cpp index da4e1a9f7..a7f14bf50 100644 --- a/src/libcalamares/locale/LabelModel.cpp +++ b/src/libcalamares/locale/LabelModel.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2019-2020 Adriaan de Groot - * Copyright 2019, Camilo Higuita + * + * SPDX-FileCopyrightText: 2019 Camilo Higuita + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "LabelModel.h" diff --git a/src/libcalamares/locale/LabelModel.h b/src/libcalamares/locale/LabelModel.h index 7bd1fad67..000bf4da7 100644 --- a/src/libcalamares/locale/LabelModel.h +++ b/src/libcalamares/locale/LabelModel.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2019-2020, Adriaan de Groot - * Copyright 2019, Camilo Higuita + * + * SPDX-FileCopyrightText: 2019 Camilo Higuita + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LOCALE_LABELMODEL_H diff --git a/src/libcalamares/locale/Lookup.cpp b/src/libcalamares/locale/Lookup.cpp index baa3ce5b1..615783a87 100644 --- a/src/libcalamares/locale/Lookup.cpp +++ b/src/libcalamares/locale/Lookup.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Lookup.h" diff --git a/src/libcalamares/locale/Lookup.h b/src/libcalamares/locale/Lookup.h index abcee0ed3..daa9c2987 100644 --- a/src/libcalamares/locale/Lookup.h +++ b/src/libcalamares/locale/Lookup.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LOCALE_LOOKUP_H diff --git a/src/libcalamares/locale/Tests.cpp b/src/libcalamares/locale/Tests.cpp index 6cbe980be..6c5a508d7 100644 --- a/src/libcalamares/locale/Tests.cpp +++ b/src/libcalamares/locale/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Tests.h" diff --git a/src/libcalamares/locale/Tests.h b/src/libcalamares/locale/Tests.h index 96ee48b0b..dfe85a865 100644 --- a/src/libcalamares/locale/Tests.h +++ b/src/libcalamares/locale/Tests.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LIBCALAMARES_LOCALE_TESTS_H diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index e25cf2144..0c13a8c77 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "TimeZone.h" diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 5f1e19801..60900ef21 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LOCALE_TIMEZONE_H diff --git a/src/libcalamares/locale/TranslatableConfiguration.cpp b/src/libcalamares/locale/TranslatableConfiguration.cpp index 83199a4cc..fb9800d64 100644 --- a/src/libcalamares/locale/TranslatableConfiguration.cpp +++ b/src/libcalamares/locale/TranslatableConfiguration.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "TranslatableConfiguration.h" diff --git a/src/libcalamares/locale/TranslatableConfiguration.h b/src/libcalamares/locale/TranslatableConfiguration.h index d845569bc..fa6016731 100644 --- a/src/libcalamares/locale/TranslatableConfiguration.h +++ b/src/libcalamares/locale/TranslatableConfiguration.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LOCALE_TRANSLATABLECONFIGURATION_H diff --git a/src/libcalamares/locale/ZoneData_p.cxxtr b/src/libcalamares/locale/ZoneData_p.cxxtr index b73d17ad3..4bfef3c0c 100644 --- a/src/libcalamares/locale/ZoneData_p.cxxtr +++ b/src/libcalamares/locale/ZoneData_p.cxxtr @@ -1,6 +1,26 @@ /* GENERATED FILE DO NOT EDIT * * === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * + * * * This file is derived from zone.tab, which has its own copyright statement: * diff --git a/src/libcalamares/locale/cldr-extractor.py b/src/libcalamares/locale/cldr-extractor.py index aae71ed1d..f69407257 100644 --- a/src/libcalamares/locale/cldr-extractor.py +++ b/src/libcalamares/locale/cldr-extractor.py @@ -1,6 +1,13 @@ #! /usr/bin/env python3 # # === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# +# SPDX-License-Identifier: BSD-2-Clause +# License-Filename: LICENSES/BSD2 +# +# # # Python3 script to scrape some data out of ICU CLDR supplemental data. # diff --git a/src/libcalamares/locale/zone-extractor.py b/src/libcalamares/locale/zone-extractor.py index 92165d824..8ff1b5ef7 100644 --- a/src/libcalamares/locale/zone-extractor.py +++ b/src/libcalamares/locale/zone-extractor.py @@ -1,6 +1,12 @@ #! /usr/bin/env python3 # # === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# +# SPDX-License-Identifier: BSD-2-Clause +# License-Filename: LICENSES/BSD2 +# # # Python3 script to scrape some data out of zoneinfo/zone.tab. # diff --git a/src/libcalamares/modulesystem/Actions.h b/src/libcalamares/modulesystem/Actions.h index e1be0b867..0b7133f78 100644 --- a/src/libcalamares/modulesystem/Actions.h +++ b/src/libcalamares/modulesystem/Actions.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef MODULESYSTEM_ACTIONS_H diff --git a/src/libcalamares/modulesystem/Descriptor.h b/src/libcalamares/modulesystem/Descriptor.h index 77d69caf3..b34f163ad 100644 --- a/src/libcalamares/modulesystem/Descriptor.h +++ b/src/libcalamares/modulesystem/Descriptor.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef MODULESYSTEM_DESCRIPTOR_H diff --git a/src/libcalamares/modulesystem/InstanceKey.cpp b/src/libcalamares/modulesystem/InstanceKey.cpp index cde921b40..82ccf7800 100644 --- a/src/libcalamares/modulesystem/InstanceKey.cpp +++ b/src/libcalamares/modulesystem/InstanceKey.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "InstanceKey.h" diff --git a/src/libcalamares/modulesystem/InstanceKey.h b/src/libcalamares/modulesystem/InstanceKey.h index 724827330..c81d83a75 100644 --- a/src/libcalamares/modulesystem/InstanceKey.h +++ b/src/libcalamares/modulesystem/InstanceKey.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef MODULESYSTEM_INSTANCEKEY_H #define MODULESYSTEM_INSTANCEKEY_H diff --git a/src/libcalamares/modulesystem/Module.cpp b/src/libcalamares/modulesystem/Module.cpp index 9620299ec..407a10205 100644 --- a/src/libcalamares/modulesystem/Module.cpp +++ b/src/libcalamares/modulesystem/Module.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Module.h" diff --git a/src/libcalamares/modulesystem/Module.h b/src/libcalamares/modulesystem/Module.h index ba4533fae..81737cf8f 100644 --- a/src/libcalamares/modulesystem/Module.h +++ b/src/libcalamares/modulesystem/Module.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_MODULE_H diff --git a/src/libcalamares/modulesystem/Requirement.cpp b/src/libcalamares/modulesystem/Requirement.cpp index e4525e8d6..d5ba23282 100644 --- a/src/libcalamares/modulesystem/Requirement.cpp +++ b/src/libcalamares/modulesystem/Requirement.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2017, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2017 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,5 +14,9 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Requirement.h" diff --git a/src/libcalamares/modulesystem/Requirement.h b/src/libcalamares/modulesystem/Requirement.h index da3cf29dd..eb664d2a9 100644 --- a/src/libcalamares/modulesystem/Requirement.h +++ b/src/libcalamares/modulesystem/Requirement.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2017, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2017 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_REQUIREMENT_H #define CALAMARES_REQUIREMENT_H diff --git a/src/libcalamares/modulesystem/RequirementsChecker.cpp b/src/libcalamares/modulesystem/RequirementsChecker.cpp index d59ccb602..2dbaea8cf 100644 --- a/src/libcalamares/modulesystem/RequirementsChecker.cpp +++ b/src/libcalamares/modulesystem/RequirementsChecker.cpp @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "RequirementsChecker.h" diff --git a/src/libcalamares/modulesystem/RequirementsChecker.h b/src/libcalamares/modulesystem/RequirementsChecker.h index 21c86f0a6..910e34dfc 100644 --- a/src/libcalamares/modulesystem/RequirementsChecker.h +++ b/src/libcalamares/modulesystem/RequirementsChecker.h @@ -1,6 +1,6 @@ -/* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_REQUIREMENTSCHECKER_H #define CALAMARES_REQUIREMENTSCHECKER_H diff --git a/src/libcalamares/modulesystem/RequirementsModel.cpp b/src/libcalamares/modulesystem/RequirementsModel.cpp index eed3b8b3b..6f9fc1e7b 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.cpp +++ b/src/libcalamares/modulesystem/RequirementsModel.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019-2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "RequirementsModel.h" diff --git a/src/libcalamares/modulesystem/RequirementsModel.h b/src/libcalamares/modulesystem/RequirementsModel.h index 2318421c4..df56ccd7b 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.h +++ b/src/libcalamares/modulesystem/RequirementsModel.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019-2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef CALAMARES_REQUIREMENTSMODEL_H diff --git a/src/libcalamares/modulesystem/Tests.cpp b/src/libcalamares/modulesystem/Tests.cpp index b1fab7ffc..7973cc0ad 100644 --- a/src/libcalamares/modulesystem/Tests.cpp +++ b/src/libcalamares/modulesystem/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "modulesystem/InstanceKey.h" diff --git a/src/libcalamares/network/Manager.cpp b/src/libcalamares/network/Manager.cpp index 9e76d5ff0..d70988a0a 100644 --- a/src/libcalamares/network/Manager.cpp +++ b/src/libcalamares/network/Manager.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Manager.h" diff --git a/src/libcalamares/network/Manager.h b/src/libcalamares/network/Manager.h index 0837bdc13..1ba3eb411 100644 --- a/src/libcalamares/network/Manager.h +++ b/src/libcalamares/network/Manager.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LIBCALAMARES_NETWORK_MANAGER_H diff --git a/src/libcalamares/network/Tests.cpp b/src/libcalamares/network/Tests.cpp index e21a03bab..6841a3061 100644 --- a/src/libcalamares/network/Tests.cpp +++ b/src/libcalamares/network/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Tests.h" diff --git a/src/libcalamares/network/Tests.h b/src/libcalamares/network/Tests.h index b63f7eff0..2d785672e 100644 --- a/src/libcalamares/network/Tests.h +++ b/src/libcalamares/network/Tests.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LIBCALAMARES_NETWORK_TESTS_H diff --git a/src/libcalamares/partition/FileSystem.cpp b/src/libcalamares/partition/FileSystem.cpp index fbbe48581..965a1a8af 100644 --- a/src/libcalamares/partition/FileSystem.cpp +++ b/src/libcalamares/partition/FileSystem.cpp @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2018-2019 Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "FileSystem.h" diff --git a/src/libcalamares/partition/FileSystem.h b/src/libcalamares/partition/FileSystem.h index 258515d3c..a683aab47 100644 --- a/src/libcalamares/partition/FileSystem.h +++ b/src/libcalamares/partition/FileSystem.h @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /* diff --git a/src/libcalamares/partition/KPMManager.cpp b/src/libcalamares/partition/KPMManager.cpp index efc5f0003..964b87859 100644 --- a/src/libcalamares/partition/KPMManager.cpp +++ b/src/libcalamares/partition/KPMManager.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "KPMManager.h" diff --git a/src/libcalamares/partition/KPMManager.h b/src/libcalamares/partition/KPMManager.h index 5f7039221..be5ae00c0 100644 --- a/src/libcalamares/partition/KPMManager.h +++ b/src/libcalamares/partition/KPMManager.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /* diff --git a/src/libcalamares/partition/KPMTests.cpp b/src/libcalamares/partition/KPMTests.cpp index 7468d3938..0bdb29a15 100644 --- a/src/libcalamares/partition/KPMTests.cpp +++ b/src/libcalamares/partition/KPMTests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "utils/Logger.h" diff --git a/src/libcalamares/partition/Mount.cpp b/src/libcalamares/partition/Mount.cpp index 2bb49b0cb..f9a45fafd 100644 --- a/src/libcalamares/partition/Mount.cpp +++ b/src/libcalamares/partition/Mount.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Mount.h" diff --git a/src/libcalamares/partition/Mount.h b/src/libcalamares/partition/Mount.h index 041e7e757..c08d5ac75 100644 --- a/src/libcalamares/partition/Mount.h +++ b/src/libcalamares/partition/Mount.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef PARTITION_MOUNT_H diff --git a/src/libcalamares/partition/PartitionIterator.cpp b/src/libcalamares/partition/PartitionIterator.cpp index 642752163..f4e57fbad 100644 --- a/src/libcalamares/partition/PartitionIterator.cpp +++ b/src/libcalamares/partition/PartitionIterator.cpp @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, 2019 Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "PartitionIterator.h" diff --git a/src/libcalamares/partition/PartitionIterator.h b/src/libcalamares/partition/PartitionIterator.h index 78d930cf4..03a03faba 100644 --- a/src/libcalamares/partition/PartitionIterator.h +++ b/src/libcalamares/partition/PartitionIterator.h @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,8 +16,13 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ + /* * NOTE: this functionality is only available when Calamares is compiled * with KPMcore support. diff --git a/src/libcalamares/partition/PartitionQuery.cpp b/src/libcalamares/partition/PartitionQuery.cpp index 6693f7e6c..0aba728b3 100644 --- a/src/libcalamares/partition/PartitionQuery.cpp +++ b/src/libcalamares/partition/PartitionQuery.cpp @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2018-2019 Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "PartitionQuery.h" diff --git a/src/libcalamares/partition/PartitionQuery.h b/src/libcalamares/partition/PartitionQuery.h index 18eb7edd2..595d82c0f 100644 --- a/src/libcalamares/partition/PartitionQuery.h +++ b/src/libcalamares/partition/PartitionQuery.h @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /* diff --git a/src/libcalamares/partition/PartitionSize.cpp b/src/libcalamares/partition/PartitionSize.cpp index fc8d72582..d84fd81c6 100644 --- a/src/libcalamares/partition/PartitionSize.cpp +++ b/src/libcalamares/partition/PartitionSize.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Collabora Ltd - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,8 +15,13 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ + #include "partition/PartitionSize.h" #include "utils/Logger.h" #include "utils/Units.h" diff --git a/src/libcalamares/partition/PartitionSize.h b/src/libcalamares/partition/PartitionSize.h index b22698e55..f70aa3c89 100644 --- a/src/libcalamares/partition/PartitionSize.h +++ b/src/libcalamares/partition/PartitionSize.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Collabora Ltd - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef PARTITION_PARTITIONSIZE_H diff --git a/src/libcalamares/partition/Sync.cpp b/src/libcalamares/partition/Sync.cpp index c71c6a172..d1f6378cd 100644 --- a/src/libcalamares/partition/Sync.cpp +++ b/src/libcalamares/partition/Sync.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019-2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Sync.h" diff --git a/src/libcalamares/partition/Sync.h b/src/libcalamares/partition/Sync.h index 510858500..a291058e7 100644 --- a/src/libcalamares/partition/Sync.h +++ b/src/libcalamares/partition/Sync.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef PARTITION_SYNC_H diff --git a/src/libcalamares/partition/Tests.cpp b/src/libcalamares/partition/Tests.cpp index 0800fa455..7719f2e84 100644 --- a/src/libcalamares/partition/Tests.cpp +++ b/src/libcalamares/partition/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Tests.h" diff --git a/src/libcalamares/partition/Tests.h b/src/libcalamares/partition/Tests.h index 799f50c04..c495fa0fd 100644 --- a/src/libcalamares/partition/Tests.h +++ b/src/libcalamares/partition/Tests.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef LIBCALAMARES_PARTITION_TESTS_H diff --git a/src/libcalamares/utils/BoostPython.h b/src/libcalamares/utils/BoostPython.h index 7bd8865da..a1986a7c2 100644 --- a/src/libcalamares/utils/BoostPython.h +++ b/src/libcalamares/utils/BoostPython.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019-2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /* diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index 327bece92..955358774 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2018, 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "CalamaresUtilsSystem.h" diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.h b/src/libcalamares/utils/CalamaresUtilsSystem.h index c4db9dc00..d6adead60 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.h +++ b/src/libcalamares/utils/CalamaresUtilsSystem.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2018, 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_CALAMARESUTILSSYSTEM_H #define UTILS_CALAMARESUTILSSYSTEM_H diff --git a/src/libcalamares/utils/CommandList.cpp b/src/libcalamares/utils/CommandList.cpp index 8a2f3835b..331d10e34 100644 --- a/src/libcalamares/utils/CommandList.cpp +++ b/src/libcalamares/utils/CommandList.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "CommandList.h" diff --git a/src/libcalamares/utils/CommandList.h b/src/libcalamares/utils/CommandList.h index 71a5a483c..657570563 100644 --- a/src/libcalamares/utils/CommandList.h +++ b/src/libcalamares/utils/CommandList.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_COMMANDLIST_H diff --git a/src/libcalamares/utils/Dirs.cpp b/src/libcalamares/utils/Dirs.cpp index bb48477da..290966180 100644 --- a/src/libcalamares/utils/Dirs.cpp +++ b/src/libcalamares/utils/Dirs.cpp @@ -1,12 +1,12 @@ /* === This file is part of Calamares - === - * - * Copyright 2013-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Originally from Tomahawk, portions: - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2010-2011, Leo Franchi - * Copyright 2010-2012, Jeff Mitchell + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2010-2011 Leo Franchi + * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Dirs.h" diff --git a/src/libcalamares/utils/Dirs.h b/src/libcalamares/utils/Dirs.h index 79c07a957..5a3d48732 100644 --- a/src/libcalamares/utils/Dirs.h +++ b/src/libcalamares/utils/Dirs.h @@ -1,12 +1,12 @@ /* === This file is part of Calamares - === - * - * Copyright 2013-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Originally from Tomahawk, portions: - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2010-2011, Leo Franchi - * Copyright 2010-2012, Jeff Mitchell + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2010-2011 Leo Franchi + * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_DIRS_H diff --git a/src/libcalamares/utils/Entropy.cpp b/src/libcalamares/utils/Entropy.cpp index ce1f6ba9d..c54b2cf3e 100644 --- a/src/libcalamares/utils/Entropy.cpp +++ b/src/libcalamares/utils/Entropy.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * - * Copyright 2019-2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Entropy.h" diff --git a/src/libcalamares/utils/Entropy.h b/src/libcalamares/utils/Entropy.h index 2ab7a609d..3489045ab 100644 --- a/src/libcalamares/utils/Entropy.h +++ b/src/libcalamares/utils/Entropy.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * - * Copyright 2019-2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_ENTROPY_H diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index ceca20b7a..494b88659 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot * - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -11,11 +12,15 @@ * * Calamares is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Logger.h" diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index 24198e256..69674bc68 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -1,8 +1,8 @@ /* === This file is part of Calamares - === - * - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -11,11 +11,15 @@ * * Calamares is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_LOGGER_H diff --git a/src/libcalamares/utils/NamedEnum.h b/src/libcalamares/utils/NamedEnum.h index 76c8ed3bb..1242fc841 100644 --- a/src/libcalamares/utils/NamedEnum.h +++ b/src/libcalamares/utils/NamedEnum.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /** @brief Support for "named" enumerations diff --git a/src/libcalamares/utils/NamedSuffix.h b/src/libcalamares/utils/NamedSuffix.h index 8ad52edea..9efc417e4 100644 --- a/src/libcalamares/utils/NamedSuffix.h +++ b/src/libcalamares/utils/NamedSuffix.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2019, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ /** @brief Support for unit-suffixed values. diff --git a/src/libcalamares/utils/PluginFactory.cpp b/src/libcalamares/utils/PluginFactory.cpp index 50b88ebfd..9f1ab5ae3 100644 --- a/src/libcalamares/utils/PluginFactory.cpp +++ b/src/libcalamares/utils/PluginFactory.cpp @@ -1,6 +1,22 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * - * Copyright 2019, Adriaan de Groot + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * */ diff --git a/src/libcalamares/utils/PluginFactory.h b/src/libcalamares/utils/PluginFactory.h index 65ee6eee9..68b1b624f 100644 --- a/src/libcalamares/utils/PluginFactory.h +++ b/src/libcalamares/utils/PluginFactory.h @@ -1,11 +1,11 @@ /* === This file is part of Calamares - === - * - * Copyright 2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * + * + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * * Based on KPluginFactory from KCoreAddons, KDE project - * Copyright 2007, Matthias Kretz - * Copyright 2007, Bernhard Loos + * SPDX-FileCopyrightText: 2007 Matthias Kretz + * SPDX-FileCopyrightText: 2007 Bernhard Loos * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,6 +19,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_PLUGINFACTORY_H diff --git a/src/libcalamares/utils/RAII.h b/src/libcalamares/utils/RAII.h index 4d8210a25..dae85e84a 100644 --- a/src/libcalamares/utils/RAII.h +++ b/src/libcalamares/utils/RAII.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2020, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_RAII_H diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index 4cd618d97..03e8a6b4c 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2014, Teo Mrnjavac + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Retranslator.h" diff --git a/src/libcalamares/utils/Retranslator.h b/src/libcalamares/utils/Retranslator.h index d62a3b751..8b3719642 100644 --- a/src/libcalamares/utils/Retranslator.h +++ b/src/libcalamares/utils/Retranslator.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === - * - * Copyright 2014-2015, Teo Mrnjavac + * + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_RETRANSLATOR_H diff --git a/src/libcalamares/utils/String.cpp b/src/libcalamares/utils/String.cpp index e39132328..35fc692d3 100644 --- a/src/libcalamares/utils/String.cpp +++ b/src/libcalamares/utils/String.cpp @@ -1,12 +1,12 @@ /* === This file is part of Calamares - === - * - * Copyright 2013-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Originally from Tomahawk, portions: - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2010-2011, Leo Franchi - * Copyright 2010-2012, Jeff Mitchell + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2010-2011 Leo Franchi + * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "String.h" diff --git a/src/libcalamares/utils/String.h b/src/libcalamares/utils/String.h index cdf7d0b41..d4bd33357 100644 --- a/src/libcalamares/utils/String.h +++ b/src/libcalamares/utils/String.h @@ -1,12 +1,12 @@ /* === This file is part of Calamares - === - * - * Copyright 2013-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Originally from Tomahawk, portions: - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2010-2011, Leo Franchi - * Copyright 2010-2012, Jeff Mitchell + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2010-2011 Leo Franchi + * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_STRING_H diff --git a/src/libcalamares/utils/TestPaths.cpp b/src/libcalamares/utils/TestPaths.cpp index 382305ad5..233872324 100644 --- a/src/libcalamares/utils/TestPaths.cpp +++ b/src/libcalamares/utils/TestPaths.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot * - * Copyright 2018, 2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "CalamaresUtilsSystem.h" diff --git a/src/libcalamares/utils/Tests.cpp b/src/libcalamares/utils/Tests.cpp index b529e7149..a1bfcd0ed 100644 --- a/src/libcalamares/utils/Tests.cpp +++ b/src/libcalamares/utils/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * - * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Tests.h" diff --git a/src/libcalamares/utils/Tests.h b/src/libcalamares/utils/Tests.h index 49df8ed74..2e1cba016 100644 --- a/src/libcalamares/utils/Tests.h +++ b/src/libcalamares/utils/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * - * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef TESTS_H diff --git a/src/libcalamares/utils/UMask.cpp b/src/libcalamares/utils/UMask.cpp index 358a52887..a97084215 100644 --- a/src/libcalamares/utils/UMask.cpp +++ b/src/libcalamares/utils/UMask.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * - * Copyright 2019, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,6 +15,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "UMask.h" diff --git a/src/libcalamares/utils/UMask.h b/src/libcalamares/utils/UMask.h index 752c8b066..fe7d2ccb9 100644 --- a/src/libcalamares/utils/UMask.h +++ b/src/libcalamares/utils/UMask.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * - * Copyright 2019, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,8 +15,11 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ - #ifndef UTILS_UMASK_H #define UTILS_UMASK_H diff --git a/src/libcalamares/utils/Units.h b/src/libcalamares/utils/Units.h index b869d7dde..899ceca51 100644 --- a/src/libcalamares/utils/Units.h +++ b/src/libcalamares/utils/Units.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd * - * Copyright 2017, Adriaan de Groot - * Copyright 2019, Collabora Ltd * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_UNITS_H diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index c56f9301a..cf6ff91fe 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -1,12 +1,12 @@ /* === This file is part of Calamares - === - * - * Copyright 2013-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * + * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Originally from Tomahawk, portions: - * Copyright 2010-2011, Christian Muehlhaeuser - * Copyright 2010-2011, Leo Franchi - * Copyright 2010-2012, Jeff Mitchell + * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2010-2011 Leo Franchi + * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Variant.h" diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index 15f791b74..a05d281c3 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot * - * Copyright 2013-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_VARIANT_H diff --git a/src/libcalamares/utils/Yaml.cpp b/src/libcalamares/utils/Yaml.cpp index b33ca3137..0c7b6787f 100644 --- a/src/libcalamares/utils/Yaml.cpp +++ b/src/libcalamares/utils/Yaml.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #include "Yaml.h" diff --git a/src/libcalamares/utils/Yaml.h b/src/libcalamares/utils/Yaml.h index a976136e1..c14639447 100644 --- a/src/libcalamares/utils/Yaml.h +++ b/src/libcalamares/utils/Yaml.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +16,10 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * */ #ifndef UTILS_YAML_H diff --git a/src/libcalamares/utils/moc-warnings.h b/src/libcalamares/utils/moc-warnings.h index b773c176b..adcdeb873 100644 --- a/src/libcalamares/utils/moc-warnings.h +++ b/src/libcalamares/utils/moc-warnings.h @@ -1,3 +1,25 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * + */ #ifdef __clang__ #pragma clang diagnostic ignored "-Wextra-semi-stmt" #pragma clang diagnostic ignored "-Wredundant-parens" From d37ec35592ff54ef8e209dcc195e68b53100a47d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 14:26:14 +0200 Subject: [PATCH 054/335] [libcalamares] GeoIP that always returns a fixed value - Value is configurable (through the "selector" which is passed to GeoIP lookups). This is convenient for tests so you can "fix" the value that the lookup will return. --- src/libcalamares/geoip/GeoIPFixed.cpp | 47 +++++++++++++++++++++++ src/libcalamares/geoip/GeoIPFixed.h | 55 +++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 src/libcalamares/geoip/GeoIPFixed.cpp create mode 100644 src/libcalamares/geoip/GeoIPFixed.h diff --git a/src/libcalamares/geoip/GeoIPFixed.cpp b/src/libcalamares/geoip/GeoIPFixed.cpp new file mode 100644 index 000000000..69d5d3a4e --- /dev/null +++ b/src/libcalamares/geoip/GeoIPFixed.cpp @@ -0,0 +1,47 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + */ + +#include "GeoIPFixed.h" + +namespace CalamaresUtils +{ +namespace GeoIP +{ + +GeoIPFixed::GeoIPFixed( const QString& attribute ) + : Interface( attribute.isEmpty() ? QStringLiteral( "Europe/Amsterdam" ) : attribute ) +{ +} + +QString +GeoIPFixed::rawReply( const QByteArray& ) +{ + return m_element; +} + +GeoIP::RegionZonePair +GeoIPFixed::processReply( const QByteArray& data ) +{ + return splitTZString( rawReply( data ) ); +} + +} // namespace GeoIP +} // namespace CalamaresUtils diff --git a/src/libcalamares/geoip/GeoIPFixed.h b/src/libcalamares/geoip/GeoIPFixed.h new file mode 100644 index 000000000..5d6fca266 --- /dev/null +++ b/src/libcalamares/geoip/GeoIPFixed.h @@ -0,0 +1,55 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + * + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + */ + +#ifndef GEOIP_GEOIPFIXED_H +#define GEOIP_GEOIPFIXED_H + +#include "Interface.h" + +namespace CalamaresUtils +{ +namespace GeoIP +{ +/** @brief GeoIP with a fixed return value + * + * The data is ignored entirely and the attribute value is returned unchanged. + * Note that you still need to provide a usable URL for a successful GeoIP + * lookup -- the URL's data is just ignored. + * + * @note This class is an implementation detail. + */ +class GeoIPFixed : public Interface +{ +public: + /** @brief Configure the value to return from rawReply() + * + * An empty string, which would not be a valid zone name, is + * translated to "Europe/Amsterdam". + */ + explicit GeoIPFixed( const QString& value = QString() ); + + virtual RegionZonePair processReply( const QByteArray& ) override; + virtual QString rawReply( const QByteArray& ) override; +}; + +} // namespace GeoIP +} // namespace CalamaresUtils +#endif From d9effb4ba7bab54cd63b2518cbc3ef0a624cb2bc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 14:34:45 +0200 Subject: [PATCH 055/335] [libcalamares] Add GeoIPFixed to the test-tool for GeoIP lookup - Allow format "fixed" - Allow specifying the selector in the test-tool --- src/libcalamares/geoip/test_geoip.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/libcalamares/geoip/test_geoip.cpp b/src/libcalamares/geoip/test_geoip.cpp index 32c6f4e24..0587dda02 100644 --- a/src/libcalamares/geoip/test_geoip.cpp +++ b/src/libcalamares/geoip/test_geoip.cpp @@ -22,6 +22,7 @@ #include +#include "GeoIPFixed.h" #include "GeoIPJSON.h" #ifdef QT_XML_LIB #include "GeoIPXML.h" @@ -33,27 +34,34 @@ using namespace CalamaresUtils::GeoIP; int main( int argc, char** argv ) { - if ( argc != 2 ) + if ( ( argc != 2 ) && ( argc != 3 ) ) { - cerr << "Usage: curl url | test_geoip \n"; + cerr << "Usage: curl url | test_geoip [selector]\n"; return 1; } + QString format( argv[ 1 ] ); + QString selector = argc == 3 ? QString( argv[ 2 ] ) : QString(); + Interface* handler = nullptr; - if ( QStringLiteral( "json" ) == argv[ 1 ] ) + if ( QStringLiteral( "json" ) == format ) { - handler = new GeoIPJSON; + handler = new GeoIPJSON( selector ); } #ifdef QT_XML_LIB - else if ( QStringLiteral( "xml" ) == argv[ 1 ] ) + else if ( QStringLiteral( "xml" ) == format ) { - handler = new GeoIPXML; + handler = new GeoIPXML( selector ); } #endif + else if ( QStringLiteral( "fixed" ) == format ) + { + handler = new GeoIPFixed( selector ); + } if ( !handler ) { - cerr << "Unknown format '" << argv[ 1 ] << "'\n"; + cerr << "Unknown format '" << format.toLatin1().constData() << "'\n"; return 1; } From 672f506e722df6250e23092fa1dd255439947c14 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 14:55:01 +0200 Subject: [PATCH 056/335] [libcalamares] Add unittests for GeoIPFixed - Ignores the data, just returns selector --- src/libcalamares/geoip/GeoIPTests.cpp | 33 +++++++++++++++++++++++++++ src/libcalamares/geoip/GeoIPTests.h | 1 + 2 files changed, 34 insertions(+) diff --git a/src/libcalamares/geoip/GeoIPTests.cpp b/src/libcalamares/geoip/GeoIPTests.cpp index 4b1f8f8e1..7dd8c92b0 100644 --- a/src/libcalamares/geoip/GeoIPTests.cpp +++ b/src/libcalamares/geoip/GeoIPTests.cpp @@ -18,6 +18,7 @@ #include "GeoIPTests.h" +#include "GeoIPFixed.h" #include "GeoIPJSON.h" #ifdef QT_XML_LIB #include "GeoIPXML.h" @@ -240,3 +241,35 @@ GeoIPTests::testGet() CHECK_GET( XML, QString(), "https://geoip.kde.org/v1/ubiquity" ) // Temporary KDE service #endif } + +void +GeoIPTests::testFixed() +{ + { + GeoIPFixed f; + auto tz = f.processReply( QByteArray() ); + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) ); + + QCOMPARE( f.processReply( xml_data_ubiquity ), tz ); + QCOMPARE( f.processReply( QByteArray( "derp" ) ), tz ); + } + { + GeoIPFixed f( QStringLiteral( "America/Vancouver" ) ); + auto tz = f.processReply( QByteArray() ); + QCOMPARE( tz.first, QStringLiteral( "America" ) ); + QCOMPARE( tz.second, QStringLiteral( "Vancouver" ) ); + + QCOMPARE( f.processReply( xml_data_ubiquity ), tz ); + QCOMPARE( f.processReply( QByteArray( "derp" ) ), tz ); + } + { + GeoIPFixed f( QStringLiteral( "America/North Dakota/Beulah" ) ); + auto tz = f.processReply( QByteArray() ); + QCOMPARE( tz.first, QStringLiteral( "America" ) ); + QCOMPARE( tz.second, QStringLiteral( "North_Dakota/Beulah" ) ); + + QCOMPARE( f.processReply( xml_data_ubiquity ), tz ); + QCOMPARE( f.processReply( QByteArray( "derp" ) ), tz ); + } +} diff --git a/src/libcalamares/geoip/GeoIPTests.h b/src/libcalamares/geoip/GeoIPTests.h index a320e3263..45aae23e7 100644 --- a/src/libcalamares/geoip/GeoIPTests.h +++ b/src/libcalamares/geoip/GeoIPTests.h @@ -30,6 +30,7 @@ public: private Q_SLOTS: void initTestCase(); + void testFixed(); void testJSON(); void testJSONalt(); void testJSONbad(); From ac2a9c569e3057fc0a022defee892017c53543b1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 15:03:19 +0200 Subject: [PATCH 057/335] [libcalamares] Allow "fixed" as a GeoIP lookup type --- src/libcalamares/CMakeLists.txt | 1 + src/libcalamares/geoip/Handler.cpp | 11 ++++++++++- src/libcalamares/geoip/Handler.h | 7 ++++--- src/libcalamares/geoip/Interface.h | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index fa4265d6e..f7e249a54 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -23,6 +23,7 @@ set( libSources # GeoIP services geoip/Interface.cpp + geoip/GeoIPFixed.cpp geoip/GeoIPJSON.cpp geoip/Handler.cpp diff --git a/src/libcalamares/geoip/Handler.cpp b/src/libcalamares/geoip/Handler.cpp index 99e55e926..ab7eea999 100644 --- a/src/libcalamares/geoip/Handler.cpp +++ b/src/libcalamares/geoip/Handler.cpp @@ -18,11 +18,13 @@ #include "Handler.h" +#include "GeoIPFixed.h" #include "GeoIPJSON.h" #if defined( QT_XML_LIB ) #include "GeoIPXML.h" #endif +#include "Settings.h" #include "network/Manager.h" #include "utils/Logger.h" #include "utils/NamedEnum.h" @@ -40,7 +42,8 @@ handlerTypes() static const NamedEnumTable names{ { QStringLiteral( "none" ), Type::None }, { QStringLiteral( "json" ), Type::JSON }, - { QStringLiteral( "xml" ), Type::XML } + { QStringLiteral( "xml" ), Type::XML }, + { QStringLiteral( "fixed" ), Type::Fixed } }; // *INDENT-ON* // clang-format on @@ -73,6 +76,10 @@ Handler::Handler( const QString& implementation, const QString& url, const QStri { cWarning() << "GeoIP style *none* does not do anything."; } + else if ( m_type == Type::Fixed && Calamares::Settings::instance() && !Calamares::Settings::instance()->debugMode() ) + { + cWarning() << "GeoIP style *fixed* is not recommended for production."; + } #if !defined( QT_XML_LIB ) else if ( m_type == Type::XML ) { @@ -99,6 +106,8 @@ create_interface( Handler::Type t, const QString& selector ) #else return nullptr; #endif + case Handler::Type::Fixed: + return std::make_unique< GeoIPFixed >( selector ); } NOTREACHED return nullptr; } diff --git a/src/libcalamares/geoip/Handler.h b/src/libcalamares/geoip/Handler.h index 518964caf..d15f7c710 100644 --- a/src/libcalamares/geoip/Handler.h +++ b/src/libcalamares/geoip/Handler.h @@ -43,9 +43,10 @@ class DLLEXPORT Handler public: enum class Type { - None, - JSON, - XML + None, // No lookup, returns empty string + JSON, // JSON-formatted data, returns extracted field + XML, // XML-formatted data, returns extracted field + Fixed // Returns selector string verbatim }; /** @brief An unconfigured handler; this always returns errors. */ diff --git a/src/libcalamares/geoip/Interface.h b/src/libcalamares/geoip/Interface.h index 1a9beaa41..78cc2392c 100644 --- a/src/libcalamares/geoip/Interface.h +++ b/src/libcalamares/geoip/Interface.h @@ -98,7 +98,7 @@ public: virtual QString rawReply( const QByteArray& ) = 0; protected: - Interface( const QString& e = QString() ); + Interface( const QString& element = QString() ); QString m_element; // string for selecting from data }; From 67d7c700fd4c6ed845ba611edc1b83967a313b24 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 15:11:19 +0200 Subject: [PATCH 058/335] [locale] Update documentation to mention *fixed* style --- src/modules/locale/locale.conf | 44 ++++++++++++++++++++------------ src/modules/welcome/welcome.conf | 3 ++- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/modules/locale/locale.conf b/src/modules/locale/locale.conf index 4beb4fe85..dc68a050f 100644 --- a/src/modules/locale/locale.conf +++ b/src/modules/locale/locale.conf @@ -30,14 +30,18 @@ zone: "New_York" # # GeoIP needs a working Internet connection. # This can be managed from `welcome.conf` by adding -# internet to the list of required conditions. -# -# The configuration -# is in three parts: a *style*, which can be "json" or "xml" -# depending on the kind of data returned by the service, and -# a *url* where the data is retrieved, and an optional *selector* -# to pick the right field out of the returned data (e.g. field -# name in JSON or element name in XML). +# internet to the list of required conditions. (The welcome +# module can also do its own GeoIP lookups, independently +# of the lookup done here. The lookup in the welcome module +# is used to establish language; this one is for timezone). +# +# The configuration is in three parts: +# - a *style*, which can be "json" or "xml" depending on the +# kind of data returned by the service, and +# - a *url* where the data is retrieved, and +# - an optional *selector* +# to pick the right field out of the returned data (e.g. field +# name in JSON or element name in XML). # # The default selector (when the setting is blank) is picked to # work with existing JSON providers (which use "time_zone") and @@ -45,8 +49,8 @@ zone: "New_York" # # If the service configured via *url* uses # a different attribute name (e.g. "timezone") in JSON or a -# different element tag (e.g. "") in XML, set this -# string to the name or tag to be used. +# different element tag (e.g. "") in XML, set the +# selector to the name or tag to be used. # # In JSON: # - if the string contains "." characters, this is used as a @@ -58,7 +62,10 @@ zone: "New_York" # - all elements with the named tag (e.g. all TimeZone) elements # from the document are checked; the first one with non-empty # text value is used. -# +# Special case: +# - the *style* "fixed" is also supported. This ignores the data +# returned from the URL (but the URL must still be valid!) +# and just returns the value of the *selector*. # # An HTTP(S) request is made to *url*. The request should return # valid data in a suitable format, depending on *style*; @@ -67,9 +74,6 @@ zone: "New_York" # does not follow the conventions of "suitable data" described # below, *selector* may be used to pick different data. # -# Note that this example URL works, but the service is shutting -# down in June 2018. -# # Suitable JSON data looks like # ``` # {"time_zone":"America/New_York"} @@ -84,9 +88,6 @@ zone: "New_York" # - backslashes are removed # - spaces are replaced with _ # -# Legacy settings "geoipStyle", "geoipUrl" and "geoipSelector" -# in the top-level are still supported, but I'd advise against. -# # To disable GeoIP checking, either comment-out the entire geoip section, # or set the *style* key to an unsupported format (e.g. `none`). # Also, note the analogous feature in src/modules/welcome/welcome.conf. @@ -95,3 +96,12 @@ geoip: style: "json" url: "https://geoip.kde.org/v1/calamares" selector: "" # leave blank for the default + +# For testing purposes, you could use *fixed* style, to see how Calamares +# behaves in a particular zone: +# +# geoip: +# style: "fixed" +# url: "https://geoip.kde.org/v1/calamares" # Still needs to be valid! +# selector: "America/Vancouver" # this is the selected zone +# diff --git a/src/modules/welcome/welcome.conf b/src/modules/welcome/welcome.conf index 224bc6ded..d8da60d19 100644 --- a/src/modules/welcome/welcome.conf +++ b/src/modules/welcome/welcome.conf @@ -64,7 +64,8 @@ requirements: # # To disable GeoIP checking, either comment-out the entire geoip section, # or set the *style* key to an unsupported format (e.g. `none`). -# Also, note the analogous feature in src/modules/locale/locale.conf. +# Also, note the analogous feature in `src/modules/locale/locale.conf`, +# which is where you will find complete documentation. # geoip: style: "none" From e074cc29c9e9e4323430ba863125d78b8ccff571 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 15:36:05 +0200 Subject: [PATCH 059/335] Changes: mention some new stuff, thanks Callum --- CHANGES | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGES b/CHANGES index 2bf44c8a9..efc338879 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ website will have to do for older versions. This release contains contributions from (alphabetically by first name): - Anke Boersma + - Callum Farmer - FLVAL - Gaël PORTAY @@ -20,6 +21,8 @@ This release contains contributions from (alphabetically by first name): 200kB in Calamares itself). - Tests have been extended and now support a tests/CMakeTests.txt file for fine-tuning tests for Python modules. + - SPDX identifiers are used much more widely and consistently in Calamares. + (thanks Callum) ## Modules ## - The QML based *welcomeq* module is now a viable alternative to the @@ -28,6 +31,11 @@ This release contains contributions from (alphabetically by first name): all loads in the Calamares window itself. Additional features include the option to customize the *About* info and load files like Release Notes direct into Calamares, QML files added to the branding directory can be used. + - The *welcome* and *locale* modules that do GeoIP lookup can now also + use "fixed" style; this just negates the GeoIP lookup and substitutes a + constant (fixed) value; useful for testing specific locales. + - The *keyboard* module no longer uses *ca_eng* keyboards in Canada by + default, but sticks to the *us* keyboard. #1419 # 3.2.24 (2020-05-11) # From 25d36a8943ad41b9af0c12bed540fff413587df9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 16:02:43 +0200 Subject: [PATCH 060/335] [netinstall] Improve documentation of translation framework - Not country-code, but language-code FIXES #1411 --- src/modules/netinstall/netinstall.conf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/modules/netinstall/netinstall.conf b/src/modules/netinstall/netinstall.conf index 7de577877..db4d65da0 100644 --- a/src/modules/netinstall/netinstall.conf +++ b/src/modules/netinstall/netinstall.conf @@ -83,11 +83,12 @@ required: false # and existing translations. If no *title* values are provided, no string # is displayed. # -# Translations are handled through [cc] notation, much like in -# `.desktop` files. The string `key[cc]` is used for *key* when -# when the language *cc* (country-code, like *nl* or *en_GB*) is used. +# Translations are handled through `[ll]` notation, much like in +# `.desktop` files. The string associated with `key[ll]` is used for +# *key* when when the language *ll* (language-code, like *nl* or *en_GB* +# or *ja*) is used. # -# The following strings are already known to Calamares and can be +# The following strings are **already** known to Calamares and can be # listed here in *untranslated* form (e.g. as value of *sidebar*) # without bothering with the translations: they are picked up from # the regular translation framework: @@ -110,9 +111,12 @@ required: false # - "Theming" # - "Gaming" # - "Utilities" +# Other strings should follow the translations format. label: sidebar: "Package selection" # sidebar[nl]: "Pakketkeuze" + # sidebar[en_GB]: "Package choice" + # sidebar[ja]: "知りません" # "I don't know" # title: "Office Package" # title[nl]: "Kantoorsoftware" From 1c598d769b1a6f11f2acc2910b5cc8aa4a939bab Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 16:42:42 +0200 Subject: [PATCH 061/335] [partition] Apply coding style (to just this one file) --- .../partition/gui/PartitionSplitterWidget.cpp | 225 +++++++++--------- 1 file changed, 116 insertions(+), 109 deletions(-) diff --git a/src/modules/partition/gui/PartitionSplitterWidget.cpp b/src/modules/partition/gui/PartitionSplitterWidget.cpp index 5d2803b76..25468b710 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.cpp +++ b/src/modules/partition/gui/PartitionSplitterWidget.cpp @@ -31,14 +31,15 @@ #include #include -#include #include +#include #include using CalamaresUtils::Partition::PartitionIterator; -static const int VIEW_HEIGHT = qMax( CalamaresUtils::defaultFontHeight() + 8, // wins out with big fonts - int( CalamaresUtils::defaultFontHeight() * 0.6 ) + 22 ); // wins out with small fonts +static const int VIEW_HEIGHT + = qMax( CalamaresUtils::defaultFontHeight() + 8, // wins out with big fonts + int( CalamaresUtils::defaultFontHeight() * 0.6 ) + 22 ); // wins out with small fonts static const int CORNER_RADIUS = 3; static const int EXTENDED_PARTITION_MARGIN = qMax( 4, VIEW_HEIGHT / 6 ); @@ -64,35 +65,38 @@ PartitionSplitterWidget::init( Device* dev, bool drawNestedPartitions ) m_drawNestedPartitions = drawNestedPartitions; QVector< PartitionSplitterItem > allPartitionItems; PartitionSplitterItem* extendedPartitionItem = nullptr; - for ( auto it = PartitionIterator::begin( dev ); - it != PartitionIterator::end( dev ); ++it ) + for ( auto it = PartitionIterator::begin( dev ); it != PartitionIterator::end( dev ); ++it ) { - PartitionSplitterItem newItem = { - ( *it )->partitionPath(), - ColorUtils::colorForPartition( *it ), - CalamaresUtils::Partition::isPartitionFreeSpace( *it ), - ( *it )->capacity(), - PartitionSplitterItem::Normal, - {} - }; + PartitionSplitterItem newItem = { ( *it )->partitionPath(), + ColorUtils::colorForPartition( *it ), + CalamaresUtils::Partition::isPartitionFreeSpace( *it ), + ( *it )->capacity(), + PartitionSplitterItem::Normal, + {} }; // If we don't draw child partitions of a partitions as child partitions, we // need to flatten the items tree into an items list if ( drawNestedPartitions ) { if ( ( *it )->roles().has( PartitionRole::Logical ) && extendedPartitionItem ) + { extendedPartitionItem->children.append( newItem ); + } else { allPartitionItems.append( newItem ); if ( ( *it )->roles().has( PartitionRole::Extended ) ) + { extendedPartitionItem = &allPartitionItems.last(); + } } } else { if ( !( *it )->roles().has( PartitionRole::Extended ) ) + { allPartitionItems.append( newItem ); + } } } @@ -100,7 +104,7 @@ PartitionSplitterWidget::init( Device* dev, bool drawNestedPartitions ) } void -PartitionSplitterWidget::setupItems( const QVector& items ) +PartitionSplitterWidget::setupItems( const QVector< PartitionSplitterItem >& items ) { m_itemToResize = PartitionSplitterItem::null(); m_itemToResizeNext = PartitionSplitterItem::null(); @@ -110,20 +114,17 @@ PartitionSplitterWidget::setupItems( const QVector& items m_items = items; repaint(); for ( const PartitionSplitterItem& item : items ) + { cDebug() << "PSI added item" << item.itemPath << "size" << item.size; + } } void -PartitionSplitterWidget::setSplitPartition( const QString& path, - qint64 minSize, - qint64 maxSize, - qint64 preferredSize ) +PartitionSplitterWidget::setSplitPartition( const QString& path, qint64 minSize, qint64 maxSize, qint64 preferredSize ) { - cDebug() << "path:" << path - << Logger::Continuation << "minSize:" << minSize - << Logger::Continuation << "maxSize:" << maxSize - << Logger::Continuation << "prfSize:" << preferredSize; + cDebug() << "path:" << path << Logger::Continuation << "minSize:" << minSize << Logger::Continuation + << "maxSize:" << maxSize << Logger::Continuation << "prfSize:" << preferredSize; if ( m_itemToResize && m_itemToResizeNext ) { @@ -132,9 +133,8 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, // We need to remove the itemToResizeNext from wherever it is for ( int i = 0; i < m_items.count(); ++i ) { - if ( m_items[ i ].itemPath == m_itemToResize.itemPath && - m_items[ i ].status == PartitionSplitterItem::Resizing && - i + 1 < m_items.count() ) + if ( m_items[ i ].itemPath == m_itemToResize.itemPath + && m_items[ i ].status == PartitionSplitterItem::Resizing && i + 1 < m_items.count() ) { m_items[ i ].size = m_items[ i ].size + m_itemToResizeNext.size; m_items[ i ].status = PartitionSplitterItem::Normal; @@ -146,11 +146,10 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, { for ( int j = 0; j < m_items[ i ].children.count(); ++j ) { - if ( m_items[ i ].children[ j ].itemPath == m_itemToResize.itemPath && - j + 1 < m_items[ i ].children.count() ) + if ( m_items[ i ].children[ j ].itemPath == m_itemToResize.itemPath + && j + 1 < m_items[ i ].children.count() ) { - m_items[ i ].children[ j ].size = - m_items[ i ].children[ j ].size + m_itemToResizeNext.size; + m_items[ i ].children[ j ].size = m_items[ i ].children[ j ].size + m_itemToResizeNext.size; m_items[ i ].children[ j ].status = PartitionSplitterItem::Normal; m_items[ i ].children.removeAt( j + 1 ); m_itemToResizeNext = PartitionSplitterItem::null(); @@ -158,7 +157,9 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, } } if ( m_itemToResizeNext.isNull() ) + { break; + } } } @@ -166,9 +167,7 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, m_itemToResizePath.clear(); } - PartitionSplitterItem itemToResize = _findItem( m_items, - [ path ]( PartitionSplitterItem& item ) -> bool - { + PartitionSplitterItem itemToResize = _findItem( m_items, [path]( PartitionSplitterItem& item ) -> bool { if ( path == item.itemPath ) { item.status = PartitionSplitterItem::Resizing; @@ -178,20 +177,22 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, } ); if ( itemToResize.isNull() ) + { return; + } cDebug() << "itemToResize:" << itemToResize.itemPath; m_itemToResize = itemToResize; m_itemToResizePath = path; if ( preferredSize > maxSize ) + { preferredSize = maxSize; + } qint64 newSize = m_itemToResize.size - preferredSize; m_itemToResize.size = preferredSize; - int opCount = _eachItem( m_items, - [ preferredSize ]( PartitionSplitterItem& item ) -> bool - { + int opCount = _eachItem( m_items, [preferredSize]( PartitionSplitterItem& item ) -> bool { if ( item.status == PartitionSplitterItem::Resizing ) { item.size = preferredSize; @@ -208,14 +209,9 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, { if ( m_items[ i ].itemPath == itemToResize.itemPath ) { - m_items.insert( i+1, - { "", - QColor( "#c0392b" ), - false, - newSize, - PartitionSplitterItem::ResizingNext, - {} } ); - m_itemToResizeNext = m_items[ i+1 ]; + m_items.insert( i + 1, + { "", QColor( "#c0392b" ), false, newSize, PartitionSplitterItem::ResizingNext, {} } ); + m_itemToResizeNext = m_items[ i + 1 ]; break; } else if ( !m_items[ i ].children.isEmpty() ) @@ -224,29 +220,26 @@ PartitionSplitterWidget::setSplitPartition( const QString& path, { if ( m_items[ i ].children[ j ].itemPath == itemToResize.itemPath ) { - m_items[ i ].children.insert( j+1, - { "", - QColor( "#c0392b" ), - false, - newSize, - PartitionSplitterItem::ResizingNext, - {} } ); - m_itemToResizeNext = m_items[ i ].children[ j+1 ]; + m_items[ i ].children.insert( + j + 1, { "", QColor( "#c0392b" ), false, newSize, PartitionSplitterItem::ResizingNext, {} } ); + m_itemToResizeNext = m_items[ i ].children[ j + 1 ]; break; } } if ( !m_itemToResizeNext.isNull() ) + { break; + } } } - emit partitionResized( m_itemToResize.itemPath, - m_itemToResize.size, - m_itemToResizeNext.size ); + emit partitionResized( m_itemToResize.itemPath, m_itemToResize.size, m_itemToResizeNext.size ); cDebug() << "Items updated. Status:"; foreach ( const PartitionSplitterItem& item, m_items ) + { cDebug() << "item" << item.itemPath << "size" << item.size << "status:" << item.status; + } cDebug() << "m_itemToResize: " << !m_itemToResize.isNull() << m_itemToResize.itemPath; cDebug() << "m_itemToResizeNext:" << !m_itemToResizeNext.isNull() << m_itemToResizeNext.itemPath; @@ -259,7 +252,9 @@ qint64 PartitionSplitterWidget::splitPartitionSize() const { if ( !m_itemToResize ) + { return -1; + } return m_itemToResize.size; } @@ -268,7 +263,9 @@ qint64 PartitionSplitterWidget::newPartitionSize() const { if ( !m_itemToResizeNext ) + { return -1; + } return m_itemToResizeNext.size; } @@ -303,12 +300,12 @@ PartitionSplitterWidget::paintEvent( QPaintEvent* event ) void PartitionSplitterWidget::mousePressEvent( QMouseEvent* event ) { - if ( m_itemToResize && - m_itemToResizeNext && - event->button() == Qt::LeftButton ) + if ( m_itemToResize && m_itemToResizeNext && event->button() == Qt::LeftButton ) { if ( qAbs( event->x() - m_resizeHandleX ) < HANDLE_SNAP ) + { m_resizing = true; + } } } @@ -320,16 +317,16 @@ PartitionSplitterWidget::mouseMoveEvent( QMouseEvent* event ) { qint64 start = 0; QString itemPath = m_itemToResize.itemPath; - for ( auto it = m_items.constBegin(); - it != m_items.constEnd(); ++it ) + for ( auto it = m_items.constBegin(); it != m_items.constEnd(); ++it ) { if ( it->itemPath == itemPath ) + { break; + } else if ( !it->children.isEmpty() ) { bool done = false; - for ( auto jt = it->children.constBegin(); - jt != it->children.constEnd(); ++jt ) + for ( auto jt = it->children.constBegin(); jt != it->children.constEnd(); ++jt ) { if ( jt->itemPath == itemPath ) { @@ -339,10 +336,14 @@ PartitionSplitterWidget::mouseMoveEvent( QMouseEvent* event ) start += jt->size; } if ( done ) + { break; + } } else + { start += it->size; + } } qint64 total = 0; @@ -351,15 +352,13 @@ PartitionSplitterWidget::mouseMoveEvent( QMouseEvent* event ) total += it->size; } - int ew = rect().width(); //effective width + int ew = rect().width(); //effective width qreal bpp = total / static_cast< qreal >( ew ); //bytes per pixel qreal mx = event->x() * bpp - start; // make sure we are within resize range - mx = qBound( static_cast< qreal >( m_itemMinSize ), - mx, - static_cast< qreal >( m_itemMaxSize ) ); + mx = qBound( static_cast< qreal >( m_itemMinSize ), mx, static_cast< qreal >( m_itemMaxSize ) ); qint64 span = m_itemPrefSize; qreal percent = mx / span; @@ -367,9 +366,7 @@ PartitionSplitterWidget::mouseMoveEvent( QMouseEvent* event ) m_itemToResize.size = qRound64( span * percent ); m_itemToResizeNext.size -= m_itemToResize.size - oldsize; - _eachItem( m_items, - [ this ]( PartitionSplitterItem& item ) -> bool - { + _eachItem( m_items, [this]( PartitionSplitterItem& item ) -> bool { if ( item.status == PartitionSplitterItem::Resizing ) { item.size = m_itemToResize.size; @@ -385,18 +382,20 @@ PartitionSplitterWidget::mouseMoveEvent( QMouseEvent* event ) repaint(); - emit partitionResized( itemPath, - m_itemToResize.size, - m_itemToResizeNext.size ); + emit partitionResized( itemPath, m_itemToResize.size, m_itemToResizeNext.size ); } else { if ( m_itemToResize && m_itemToResizeNext ) { if ( qAbs( event->x() - m_resizeHandleX ) < HANDLE_SNAP ) + { setCursor( Qt::SplitHCursor ); + } else if ( cursor().shape() != Qt::ArrowCursor ) + { setCursor( Qt::ArrowCursor ); + } } } } @@ -412,7 +411,10 @@ PartitionSplitterWidget::mouseReleaseEvent( QMouseEvent* event ) void -PartitionSplitterWidget::drawSection( QPainter* painter, const QRect& rect_, int x, int width, +PartitionSplitterWidget::drawSection( QPainter* painter, + const QRect& rect_, + int x, + int width, const PartitionSplitterItem& item ) { QColor color = item.color; @@ -433,7 +435,9 @@ PartitionSplitterWidget::drawSection( QPainter* painter, const QRect& rect_, int // Draw shade if ( !isFreeSpace ) + { rect.adjust( 2, 2, -2, -2 ); + } QLinearGradient gradient( 0, 0, 0, rectHeight / 2 ); @@ -449,12 +453,12 @@ PartitionSplitterWidget::drawSection( QPainter* painter, const QRect& rect_, int } void -PartitionSplitterWidget::drawResizeHandle( QPainter* painter, - const QRect& rect_, - int x ) +PartitionSplitterWidget::drawResizeHandle( QPainter* painter, const QRect& rect_, int x ) { if ( !m_itemToResize ) + { return; + } painter->setPen( Qt::NoPen ); painter->setBrush( Qt::black ); @@ -462,21 +466,15 @@ PartitionSplitterWidget::drawResizeHandle( QPainter* painter, painter->setRenderHint( QPainter::Antialiasing, true ); - qreal h = VIEW_HEIGHT; // Put the arrow in the center regardless of inner box height + qreal h = VIEW_HEIGHT; // Put the arrow in the center regardless of inner box height int scaleFactor = qRound( height() / static_cast< qreal >( VIEW_HEIGHT ) ); - QList< QPair< qreal, qreal > > arrow_offsets = { - qMakePair( 0, h / 2 - 1 ), - qMakePair( 4, h / 2 - 1 ), - qMakePair( 4, h / 2 - 3 ), - qMakePair( 8, h / 2 ), - qMakePair( 4, h / 2 + 3 ), - qMakePair( 4, h / 2 + 1 ), - qMakePair( 0, h / 2 + 1 ) - }; + QList< QPair< qreal, qreal > > arrow_offsets + = { qMakePair( 0, h / 2 - 1 ), qMakePair( 4, h / 2 - 1 ), qMakePair( 4, h / 2 - 3 ), qMakePair( 8, h / 2 ), + qMakePair( 4, h / 2 + 3 ), qMakePair( 4, h / 2 + 1 ), qMakePair( 0, h / 2 + 1 ) }; for ( int i = 0; i < arrow_offsets.count(); ++i ) { arrow_offsets[ i ] = qMakePair( arrow_offsets[ i ].first * scaleFactor, - ( arrow_offsets[ i ].second - h/2 ) * scaleFactor + h/2 ); + ( arrow_offsets[ i ].second - h / 2 ) * scaleFactor + h / 2 ); } auto p1 = arrow_offsets[ 0 ]; @@ -484,7 +482,9 @@ PartitionSplitterWidget::drawResizeHandle( QPainter* painter, { auto arrow = QPainterPath( QPointF( x + -1 * p1.first, p1.second ) ); for ( auto p : arrow_offsets ) + { arrow.lineTo( x + -1 * p.first + 1, p.second ); + } painter->drawPath( arrow ); } @@ -492,13 +492,15 @@ PartitionSplitterWidget::drawResizeHandle( QPainter* painter, { auto arrow = QPainterPath( QPointF( x + p1.first, p1.second ) ); for ( auto p : arrow_offsets ) + { arrow.lineTo( x + p.first, p.second ); + } painter->drawPath( arrow ); } painter->setRenderHint( QPainter::Antialiasing, false ); painter->setPen( Qt::black ); - painter->drawLine( x, 0, x, int(h) - 1 ); + painter->drawLine( x, 0, x, int( h ) - 1 ); } @@ -520,32 +522,30 @@ PartitionSplitterWidget::drawPartitions( QPainter* painter, const PartitionSplitterItem& item = items[ row ]; qreal width; if ( row < count - 1 ) + { width = totalWidth * ( item.size / total ); + } else - // Make sure we fill the last pixel column + // Make sure we fill the last pixel column + { width = rect.right() - x + 1; + } - drawSection( painter, rect, x, int(width), item ); + drawSection( painter, rect, x, int( width ), item ); if ( !item.children.isEmpty() ) { - QRect subRect( - x + EXTENDED_PARTITION_MARGIN, - rect.y() + EXTENDED_PARTITION_MARGIN, - int(width) - 2 * EXTENDED_PARTITION_MARGIN, - rect.height() - 2 * EXTENDED_PARTITION_MARGIN - ); + QRect subRect( x + EXTENDED_PARTITION_MARGIN, + rect.y() + EXTENDED_PARTITION_MARGIN, + int( width ) - 2 * EXTENDED_PARTITION_MARGIN, + rect.height() - 2 * EXTENDED_PARTITION_MARGIN ); drawPartitions( painter, subRect, item.children ); } // If an item to resize and the following new item both exist, // and this is not the very first partition, // and the partition preceding this one is the item to resize... - if ( m_itemToResize && - m_itemToResizeNext && - row > 0 && - !items[ row - 1 ].isFreeSpace && - !items[ row - 1 ].itemPath.isEmpty() && - items[ row - 1 ].itemPath == m_itemToResize.itemPath ) + if ( m_itemToResize && m_itemToResizeNext && row > 0 && !items[ row - 1 ].isFreeSpace + && !items[ row - 1 ].itemPath.isEmpty() && items[ row - 1 ].itemPath == m_itemToResize.itemPath ) { m_resizeHandleX = x; drawResizeHandle( painter, rect, m_resizeHandleX ); @@ -558,16 +558,20 @@ PartitionSplitterWidget::drawPartitions( QPainter* painter, PartitionSplitterItem PartitionSplitterWidget::_findItem( QVector< PartitionSplitterItem >& items, - std::function< bool ( PartitionSplitterItem& ) > condition ) const + std::function< bool( PartitionSplitterItem& ) > condition ) const { - for ( auto it = items.begin(); it != items.end(); ++it) + for ( auto it = items.begin(); it != items.end(); ++it ) { if ( condition( *it ) ) + { return *it; + } PartitionSplitterItem candidate = _findItem( it->children, condition ); if ( !candidate.isNull() ) + { return candidate; + } } return PartitionSplitterItem::null(); } @@ -575,13 +579,15 @@ PartitionSplitterWidget::_findItem( QVector< PartitionSplitterItem >& items, int PartitionSplitterWidget::_eachItem( QVector< PartitionSplitterItem >& items, - std::function< bool ( PartitionSplitterItem& ) > operation ) const + std::function< bool( PartitionSplitterItem& ) > operation ) const { int opCount = 0; - for ( auto it = items.begin(); it != items.end(); ++it) + for ( auto it = items.begin(); it != items.end(); ++it ) { if ( operation( *it ) ) + { opCount++; + } opCount += _eachItem( it->children, operation ); } @@ -607,7 +613,7 @@ PartitionSplitterWidget::computeItemsVector( const QVector< PartitionSplitterIte PartitionSplitterItem thisItem = originalItems[ row ]; QPair< QVector< PartitionSplitterItem >, qreal > pair = computeItemsVector( thisItem.children ); thisItem.children = pair.first; - thisItem.size = qint64(pair.second); + thisItem.size = qint64( pair.second ); items += thisItem; total += thisItem.size; } @@ -618,10 +624,11 @@ PartitionSplitterWidget::computeItemsVector( const QVector< PartitionSplitterIte qreal adjustedTotal = total; for ( int row = 0; row < items.count(); ++row ) { - if ( items[ row ].size < 0.01 * total ) // If this item is smaller than 1% of everything, - { // force its width to 1%. + if ( items[ row ].size < 0.01 * total ) // If this item is smaller than 1% of everything, + { + // force its width to 1%. adjustedTotal -= items[ row ].size; - items[ row ].size = qint64(0.01 * total); + items[ row ].size = qint64( 0.01 * total ); adjustedTotal += items[ row ].size; } } From 0e7c984854bcf9b25655e36998606fcbc116d00f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 3 Jun 2020 16:43:31 +0200 Subject: [PATCH 062/335] [partition] Add missing includes for Qt 5.15 compatibility --- src/modules/partition/gui/PartitionSplitterWidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/partition/gui/PartitionSplitterWidget.cpp b/src/modules/partition/gui/PartitionSplitterWidget.cpp index 25468b710..b8a8017ab 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.cpp +++ b/src/modules/partition/gui/PartitionSplitterWidget.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include using CalamaresUtils::Partition::PartitionIterator; From 5dce8d4423b0e789d95ee752c612e152a9c58edc Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sat, 6 Jun 2020 17:06:58 +0200 Subject: [PATCH 063/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_da.ts | 4 +- lang/calamares_de.ts | 87 ++++++++++++++++++++++++++++------------- lang/calamares_it_IT.ts | 7 ++-- lang/calamares_sq.ts | 28 ++++++------- 4 files changed, 79 insertions(+), 47 deletions(-) diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 72c7f798f..2caa87006 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -232,7 +232,7 @@ Waiting for %n module(s). Venter på %n modul. - Venter på %n moduler. + Venter på %n modul(er).
@@ -240,7 +240,7 @@ (%n second(s)) (%n sekund) - (%n sekunder) + (%n sekund(er)) diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index d1a705775..d4eccbf95 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -525,7 +525,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - + <strong>Manuelle Partitionierung</strong><br/>Sie können selbst Partitionen erstellen oder in der Größe verändern. Eine GPT-Partitionstabelle und eine <strong>fat32 512Mb /boot-Partition ist ein Muss für UEFI-Installationen</strong>, entweder eine vorhandene ohne Formatierung verwenden oder eine Neue erstellen. @@ -737,7 +737,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Network Installation. (Disabled: internal error) - + Netzwerk-Installation. (Deaktiviert: Interner Fehler) @@ -1830,42 +1830,42 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Communication - + Kommunikation Development - + Entwicklung Office - + Büro Multimedia - + Multimedia Internet - + Internet Theming - + Thema Gaming - + Spielen Utilities - + Dienstprogramme @@ -2556,12 +2556,12 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. 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>%3</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. - + Eine EFI Systempartition wird benötigt, um %1 zu starten.<br/><br/>Um eine EFI Systempartition einzurichten, gehen Sie zurück und wählen oder erstellen Sie ein FAT32-Dateisystem mit einer aktivierten <strong>%3</strong> Markierung sowie <strong>%2</strong> als Einhängepunkt .<br/><br/>Sie können ohne die Einrichtung einer EFI-Systempartition fortfahren, aber ihr System wird unter Umständen nicht starten können. An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + Eine EFI Systempartition wird benötigt, um %1 zu starten.<br/><br/>Eine Partition mit dem Einhängepunkt <strong>%2</strong> wurde eingerichtet, jedoch wurde dort keine <strong>%3</strong> Markierung gesetzt.<br/>Um diese Markierung zu setzen, gehen Sie zurück und bearbeiten Sie die Partition.<br/><br/>Sie können ohne diese Markierung fortfahren, aber ihr System wird unter Umständen nicht starten können. @@ -2571,12 +2571,12 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Option to use GPT on BIOS - + Option zur Verwendung von GPT im BIOS A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Eine GPT-Partitionstabelle ist die beste Option für alle Systeme. Dieses Installationsprogramm unterstützt ein solches Setup auch für BIOS-Systeme.<br/><br/>Um eine GPT-Partitionstabelle im BIOS zu konfigurieren, gehen Sie (falls noch nicht geschehen) zurück und setzen Sie die Partitionstabelle auf GPT, als nächstes erstellen Sie eine 8 MB große unformatierte Partition mit aktiviertem <strong>bios_grub</strong>-Markierung.<br/><br/>Eine unformatierte 8 MB große Partition ist erforderlich, um %1 auf einem BIOS-System mit GPT zu starten. @@ -3666,7 +3666,7 @@ Ausgabe: <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Danke an <a href="https://calamares.io/team/">das Calamares Team</a> und das <a href="https://www.transifex.com/calamares/calamares/">Calamares Übersetzerteam</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> Entwicklung wird gesponsert von <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3701,12 +3701,23 @@ Ausgabe: development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/> +<strong>%2<br/> +for %3</strong><br/><br/> +Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> +Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> +Danke an das <a href='https://calamares.io/team/'>Calamares Team</a> +und an das <a href='https://www.transifex.com/calamares/calamares/'>Calamares +Übersetzerteam</a>.<br/><br/> +<a href='https://calamares.io/'>Calamares</a> +Entwicklung wird gesponsert von <br/> +<a href='http://www.blue-systems.com/'>Blue Systems</a> - +Liberating Software. Back - + Zurück @@ -3714,44 +3725,44 @@ Ausgabe: Keyboard Model - + Tastaturmodell Pick your preferred keyboard model or use the default one based on the detected hardware - + Wählen Sie Ihr bevorzugtes Tastaturmodell oder verwenden Sie das Standardmodell auf Grundlage der erkannten Hardware Refresh - + Aktualisieren Layouts - + Layouts Keyboard Layout - + Tastaturlayout Models - + Modelle Variants - + Varianten Test your keyboard - + Testen Sie Ihre Tastatur @@ -3789,12 +3800,32 @@ Ausgabe: </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> +<p>Dies ist eine Beispiel-QML-Datei, die Optionen in RichText mit Flickable-Inhalt zeigt.</p> + +<p>QML mit RichText kann HTML-Tags verwenden, Flickable Inhalt ist nützlich für Touchscreens.</p> + +<p><b>Dies ist fetter Text.</b></p> +<p><i>Das ist kursiver Text.</i></p> +<p><u>Das ist unterstrichener Text.</u></p> +<p><center>Dieser Text ist mittig ausgerichtet.</center></p> +<p><s>Das ist durchgestrichen.</s></p> + +<p>Code Beispiel: +<code>ls -l /home</code></p> + +<p><b>Listen:</b></p> +<ul> +<li>Intel CPU Systeme</li> +<li>AMD CPU Systeme</li> +</ul> + +<p>Die vertikale Bildlaufleiste ist einstellbar, die aktuelle Breite ist auf 10 eingestellt.</p> Back - + Zurück @@ -3803,7 +3834,7 @@ Ausgabe: <h3>Welcome to the %1 <quote>%2</quote> installer</h3> <p>This program will ask you some questions and set up %1 on your computer.</p> - + <h3>Willkommen zum %1 <quote>%2</quote> Installationsprogramm</h3><p>Dieses Programm wird Ihnen einige Fragen stellen und %1 auf Ihrem Computer einrichten.</p> diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index fb92b4dd7..2599b2e37 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -2555,12 +2555,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse 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>%3</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. - + Una partizione EFI è necessaria per avviare %1.<br/><br/> Per configurare una partizione EFI, tornare indietro e selezionare o creare un filesystem FAT32 con il parametro<strong>%3</strong>abilitato e punto di montaggio <strong>%2</strong>. <br/><br/>Si può continuare senza impostare una partizione EFI ma il sistema potrebbe non avviarsi correttamente. An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Una partizione EFI è necessaria per avviare %1.<br/><br/> Una partizione è stata configurata con punto di montaggio <strong>%2</strong> ma il suo parametro <strong>%3</strong> non è impostato.<br/>Per impostare il flag, tornare indietro e modificare la partizione.<br/><br/>Si può continuare senza impostare il parametro ma il sistema potrebbe non avviarsi correttamente. @@ -3813,7 +3813,8 @@ Output: <h3>Welcome to the %1 <quote>%2</quote> installer</h3> <p>This program will ask you some questions and set up %1 on your computer.</p> - + <h3>Benvenuti al programma d'installazione %1 <quote>%2</quote></h3> +<p> diff --git a/lang/calamares_sq.ts b/lang/calamares_sq.ts index 166c62781..869a1f18c 100644 --- a/lang/calamares_sq.ts +++ b/lang/calamares_sq.ts @@ -11,12 +11,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. - Ky sistem qe nisur me një mjedis nisjesh <strong>EFI</strong>.<br><br>Që të formësojë nisjen nga një mjedis EFI, ky instalues duhet të vërë në punë një aplikacion ngarkuesi nisësi, të tillë si <strong>GRUB</strong> ose <strong>systemd-boot</strong> në një <strong>Pjesë EFI Sistemi</strong>. Kjo bëhet vetvetiu, hiq rastin kur zgjidhni pjesëzim dorazi, rast në të cilin duhet ta zgjidhni apo krijoni ju vetë. + Ky sistem qe nisur me një mjedis nisjesh <strong>EFI</strong>.<br><br>Që të formësojë nisjen nga një mjedis EFI, ky instalues duhet të vërë në punë një aplikacion ngarkuesi nisësi, të tillë si <strong>GRUB</strong> ose <strong>systemd-boot</strong> në një <strong>Pjesë EFI Sistemi</strong>. Kjo bëhet vetvetiu, hiq rastin kur zgjidhni pjesëtim dorazi, rast në të cilin duhet ta zgjidhni apo krijoni ju vetë. 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. - Ky sistem qe nisur me një mjedis nisjesh <strong>BIOS</strong>.<br><br>Që të formësojë nisjen nga një mjedis BIOS, ky instalues duhet të instalojë një ngarkues nisjesh, të tillë si <strong>GRUB</strong>, ose në krye të një pjese, ose te <strong>Master Boot Record</strong> pranë fillimit të tabelës së pjesëve (e parapëlqyer). Kjo bëhet vetvetiu, veç në zgjedhshi pjesëzim dorazi, rast në të cilin duhet ta rregulloni ju vetë. + Ky sistem qe nisur me një mjedis nisjesh <strong>BIOS</strong>.<br><br>Që të formësojë nisjen nga një mjedis BIOS, ky instalues duhet të instalojë një ngarkues nisjesh, të tillë si <strong>GRUB</strong>, ose në krye të një pjese, ose te <strong>Master Boot Record</strong> pranë fillimit të tabelës së pjesëve (e parapëlqyer). Kjo bëhet vetvetiu, veç në zgjedhshi pjesëtim dorazi, rast në të cilin duhet ta rregulloni ju vetë. @@ -525,7 +525,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - <strong>Pjesëzim dorazi</strong><br/>Mund të krijoni ose ripërmasoni pjesë ju vetë. Pasja e një tabele GPT pjesësh dhe <strong>512Mb fat32 /pjesë nisjeje është domosdoshmëri për instalime UEFI</strong>, ose përdorni një të tillë pa e formatuar, ose krijoni një të tillë. + <strong>Pjesëtim dorazi</strong><br/>Mund të krijoni ose ripërmasoni pjesë ju vetë. Pasja e një tabele GPT pjesësh dhe <strong>512Mb fat32 /pjesë nisjeje është domosdoshmëri për instalime UEFI</strong>, ose përdorni një të tillë pa e formatuar, ose krijoni një të tillë. @@ -555,7 +555,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - Në këtë sistem s’gjendet gjëkundi një pjesë EFI sistemi. Ju lutemi, kthehuni mbrapsht dhe përdorni pjesëzimin dorazi që të rregulloni %1. + Në këtë sistem s’gjendet gjëkundi një pjesë EFI sistemi. Ju lutemi, kthehuni mbrapsht dhe përdorni pjesëtimin dorazi që të rregulloni %1. @@ -642,12 +642,12 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Clear mounts for partitioning operations on %1 - Hiqi montimet për veprime pjesëzimi te %1 + Hiqi montimet për veprime pjesëtimi te %1 Clearing mounts for partitioning operations on %1. - Po hiqen montimet për veprime pjesëzimi te %1. + Po hiqen montimet për veprime pjesëtimi te %1. @@ -1076,7 +1076,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. 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. - Ky instalues <strong>s’pikas dot tabelë pjesësh</strong> te pajisja e depozitimit e përzgjedhur.<br><br>Ose pajisja s’ka tabelë pjesësh, ose tabela e pjesëve është e dëmtuar ose e një lloji të panjohur.<br>Ky instalues mund të krijojë për ju një tabelë të re pjesësh, ose vetvetiu, ose përmes faqes së pjesëzimit dorazi. + Ky instalues <strong>s’pikas dot tabelë pjesësh</strong> te pajisja e depozitimit e përzgjedhur.<br><br>Ose pajisja s’ka tabelë pjesësh, ose tabela e pjesëve është e dëmtuar ose e një lloji të panjohur.<br>Ky instalues mund të krijojë për ju një tabelë të re pjesësh, ose vetvetiu, ose përmes faqes së pjesëtimit dorazi. @@ -2478,7 +2478,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. 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. - Tabela e pjesëzimit te %1 ka tashmë %2 pjesë parësore, dhe s’mund të shtohen të tjera. Ju lutemi, në vend të kësaj, hiqni një pjesë parësore dhe shtoni një pjesë të zgjeruar. + Tabela e pjesëtimit te %1 ka tashmë %2 pjesë parësore, dhe s’mund të shtohen të tjera. Ju lutemi, në vend të kësaj, hiqni një pjesë parësore dhe shtoni një pjesë të zgjeruar. @@ -2511,7 +2511,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. <strong>Manual</strong> partitioning. - Pjesëzim <strong>dorazi</strong>. + Pjesëtim <strong>dorazi</strong>. @@ -2531,7 +2531,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - Pjesëzim <strong>dorazi</strong> në diskun <strong>%1</strong> (%2). + Pjesëtim <strong>dorazi</strong> në diskun <strong>%1</strong> (%2). @@ -2805,7 +2805,7 @@ Përfundim: Unpartitioned space or unknown partition table - Hapësirë e papjesëzuar ose tabelë e panjohur pjesësh + Hapësirë e papjesëtuar ose tabelë e panjohur pjesësh @@ -2860,7 +2860,7 @@ Përfundim: %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - %1 s’mund të instalohet në një pjesë të llojit extended. Ju lutemi, përzgjidhni një pjesë parësore ose logjike ekzistuese. + %1 s’mund të instalohet në një pjesë të llojit “extended”. Ju lutemi, përzgjidhni një pjesë parësore ose logjike ekzistuese. @@ -2890,7 +2890,7 @@ Përfundim: <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>%2</strong><br/><br/>Në këtë sistem s’gjendet dot ndonjë pjesë sistemi EFI. Ju lutemi, që të rregulloni %1, kthehuni mbrapsht dhe përdorni procesin e pjesëzimit dorazi. + <strong>%2</strong><br/><br/>Në këtë sistem s’gjendet dot ndonjë pjesë sistemi EFI. Ju lutemi, që të rregulloni %1, kthehuni mbrapsht dhe përdorni procesin e pjesëtimit dorazi. @@ -2902,7 +2902,7 @@ Përfundim: The EFI system partition at %1 will be used for starting %2. - Për nisjen e %2 do të përdoret ndarja EFI e sistemit te %1. + Për nisjen e %2 do të përdoret pjesa EFI e sistemit te %1. From f8f879153c0f917292c717f79a96b19b8fc87aa5 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sat, 6 Jun 2020 17:06:58 +0200 Subject: [PATCH 064/335] i18n: [python] Automatic merge of Transifex translations --- lang/python/de/LC_MESSAGES/python.mo | Bin 7883 -> 8223 bytes lang/python/de/LC_MESSAGES/python.po | 10 ++++++---- lang/python/nb/LC_MESSAGES/python.mo | Bin 519 -> 556 bytes lang/python/nb/LC_MESSAGES/python.po | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lang/python/de/LC_MESSAGES/python.mo b/lang/python/de/LC_MESSAGES/python.mo index 64a77a3924b7e0fa026c9b9806e6fb02ab0caf86..64f71d6aaa9ce142ed1d17db48427716ecd97787 100644 GIT binary patch delta 1667 zcmYM!U1%It6u|Mjb=P#OX-sSL(XGi%Vr#0Kk9N}5|TY-;@=#ztDO1-IFo-7%Zl zFgqKG%d+_3L%}bciWW=@VyRCR+y|lNp}P2@Ao^fHL?LLw4-kA&ictKYoed7m{O+0A zIrrQ%H~H%5<#_q09l^I1$8pX*oU>b$O5&?QE*$sVsnp}xT=xui6JN#M_$9{hCbnUF zgHl6yux=XV`Fl8k-{3A(Ta_ACs;pWV^bk+u{g}rG@ZEZR19uYN#3sCj?HCUG6ZW7K zGK!Mt6h^R!E%*-Ji`TFftJsM@V3hgQzYLnW(Yww6;Sqd>cp7D;@1rFA0wuu)N0_* zV<-tuqZG7^($d$l13#!gui_~22A;u=?S278oFsk|%hL?LWAGI2rN8?zkEd}JpU1yZ zCOE}1rO-v>74-&6qDwe}KcmJ@+VXNhsW{FOf4;-Fm9`xu&Z6YGyp#TqGx&@fQM`lx zByh0qGCoSYR*$6$Y2_5g(Z(VC2oK>eD4pBQhnM&y@~S$I^2site9DjOe%(UO?~HQL0(*pF9H3SLK<=Qi?+ijYhS ziIev32M#xmtozJT)l0!qFc zsPRvfg33)?DN03gFD7swE}%^O7G|)DQgM`a$X~}e&fFVD z{x=^%wv#%GPbzg-EixG8#&wid{e$cs#s8t&eNbbZL!8V}J0`qRFcKK{E(UwLj&Vme z)8-+?ALf+R$}#Ev7>qQ_E*s%|P;PM~yl^NIeuR+}ciig>wKm2X$!?SWKkUtfdICqh zLTDf`GizV-D<6rT4D{JyAdDkrJ`JAJ> zi=}SeTP*F@R$kjVSLX{$OF73iDSd85ujC4jo+~(xv0c4j9NT0oC$?V%+P9&Bbxte~e{^%fKb|Mp@J z7TE|QD27DzR6T?k5kcgjn-P%^q!bZdpzqJE1OI)_<^MnDcYf!vsg}8B|698`Ae1(q z9G<2a5f2WS`JueGh;-pX)UsHS0@^2WEly%3&R`ZUVim^3MXW^~KZ@me71QxK)`|G# z6O}?bobe(>=*ANCM%$M#jrI(t;4Efi78O0l2zAJU=r*hRKt z5Orf=Y{lPLhRvj}9gn1uf34i1!;L?p0}X_$DLaiVcoVB|5j8`3M5h_*M{Qp~hU78o z(afVB*_WvCTm-$`MW`8V#Y!B@Ape@eYjo(D+(*4!uTWFEjJlAGm)N9qqP~BCpKi9F%`F^1bOG$(7yc3IY7}w!>)b;!!DqbodQ6ufqi14?vatB~#ybAf0e+x>Baog-L)f%(r!u)31 zdTIU_jaG~9YNZ%fiz8KY(!jGJ(kDBNdW$2Wj+O@1W(-;~t=pnwn&=wijHS?2Z``ny zo7~1rOJ#gxbkulgcZDiqhvJNB>ryDZ`m!l>(N=6qaeI9u$4`uS#$A2KJf88;>(o7o RMtjcRP#`yGG6tQG{sGR4l)(T1 diff --git a/lang/python/de/LC_MESSAGES/python.po b/lang/python/de/LC_MESSAGES/python.po index 1fa3ce41e..19bd1c911 100644 --- a/lang/python/de/LC_MESSAGES/python.po +++ b/lang/python/de/LC_MESSAGES/python.po @@ -5,8 +5,8 @@ # # Translators: # Adriaan de Groot , 2019 -# Andreas Eitel , 2019 # Christian Spaan, 2020 +# Andreas Eitel , 2020 # #, fuzzy msgid "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Christian Spaan, 2020\n" +"Last-Translator: Andreas Eitel , 2020\n" "Language-Team: German (https://www.transifex.com/calamares/teams/20061/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -99,11 +99,11 @@ msgstr "rsync fehlgeschlagen mit Fehlercode {}." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "Bild Entpacken {}/{}, Datei {}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "Beginn des Entpackens {}" #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 msgid "Failed to unpack image \"{}\"" @@ -134,6 +134,8 @@ msgstr "Ungültige unsquash-Konfiguration" #: src/modules/unpackfs/main.py:423 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" +"Das Dateisystem für \"{}\". ({}) wird von Ihrem aktuellen Kernel nicht " +"unterstützt" #: src/modules/unpackfs/main.py:427 msgid "The source filesystem \"{}\" does not exist" diff --git a/lang/python/nb/LC_MESSAGES/python.mo b/lang/python/nb/LC_MESSAGES/python.mo index c5d4d2fb149e0c426c79e385d03053da09dbe1ab..93379d3b80e09373ba473bd31cd6bb0a454bfbdf 100644 GIT binary patch delta 111 zcmWN=u?+$-3;;j}QX|n){Qwkp5<3oJ2_|?YPO=K^GXNXVAu%6+(mnmhZ`ae$0T=+B z_m{)#_I{{vHN@0QwHa8ng^^m+G7vFaUT3SB*_L}`5;G0Gq^X%S_euk!44zm<3agM1 Jh40aM_Xp;b8#e#| delta 74 zcmZ3((#|qLhi@Vy14A+c1A`zCe`TC#HCHF3GAFf2!8gCSSivSUFEP0!vn*9RC$TEE cC@Hlh(V?U$F|Rl?Eww@~IX`!^1|th204RtTUH||9 diff --git a/lang/python/nb/LC_MESSAGES/python.po b/lang/python/nb/LC_MESSAGES/python.po index 9358dfb59..dd88e8fad 100644 --- a/lang/python/nb/LC_MESSAGES/python.po +++ b/lang/python/nb/LC_MESSAGES/python.po @@ -4,7 +4,7 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Tyler Moss , 2017 +# 865ac004d9acf2568b2e4b389e0007c7_fba755c <3516cc82d94f87187da1e036e5f09e42_616112>, 2017 # #, fuzzy msgid "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Tyler Moss , 2017\n" +"Last-Translator: 865ac004d9acf2568b2e4b389e0007c7_fba755c <3516cc82d94f87187da1e036e5f09e42_616112>, 2017\n" "Language-Team: Norwegian Bokmål (https://www.transifex.com/calamares/teams/20061/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" From 1a48fa26dfc61098d265c98f18c368b2e3a7ec93 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 6 Jun 2020 17:07:53 +0200 Subject: [PATCH 065/335] Changes: pre-release housekeeping --- CHANGES | 2 +- CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index efc338879..34c61c40c 100644 --- a/CHANGES +++ b/CHANGES @@ -3,7 +3,7 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. -# 3.2.25 (unreleased) # +# 3.2.25 (2020-06-06) # This release contains contributions from (alphabetically by first name): - Anke Boersma diff --git a/CMakeLists.txt b/CMakeLists.txt index a22c8f587..d01cdf7f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,7 @@ project( CALAMARES VERSION 3.2.25 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From fb3bc12aac5a3702f5d3669905b4cd7bd9057eb5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 6 Jun 2020 17:21:14 +0200 Subject: [PATCH 066/335] Post-release housekeeping --- CHANGES | 13 +++++++++++++ CMakeLists.txt | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 34c61c40c..64102fae8 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,18 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. +# 3.2.26 (unreleased) # + +This release contains contributions from (alphabetically by first name): + - No external contributors yet + +## Core ## + - No core changes yet + +## Modules ## + - No module changes yet + + # 3.2.25 (2020-06-06) # This release contains contributions from (alphabetically by first name): @@ -37,6 +49,7 @@ This release contains contributions from (alphabetically by first name): - The *keyboard* module no longer uses *ca_eng* keyboards in Canada by default, but sticks to the *us* keyboard. #1419 + # 3.2.24 (2020-05-11) # This release contains contributions from (alphabetically by first name): diff --git a/CMakeLists.txt b/CMakeLists.txt index d01cdf7f3..020b83e80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,10 +40,10 @@ cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.25 + VERSION 3.2.26 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From 73eb718c08395cdac05ecfeabcbf01e441ded6da Mon Sep 17 00:00:00 2001 From: demmm Date: Mon, 8 Jun 2020 13:25:47 +0200 Subject: [PATCH 067/335] adding needed geoip section to welcomeq.conf see https://github.com/calamares/calamares/issues/1427#issuecomment-640531710 --- src/modules/welcomeq/welcomeq.conf | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/modules/welcomeq/welcomeq.conf b/src/modules/welcomeq/welcomeq.conf index 2553e157a..6c2cf9557 100644 --- a/src/modules/welcomeq/welcomeq.conf +++ b/src/modules/welcomeq/welcomeq.conf @@ -62,3 +62,21 @@ requirements: # - storage - ram # - root + +# GeoIP checking +# +# This can be used to pre-select a language based on the country +# the user is currently in. It *assumes* that there's internet +# connectivity, though. Configuration is like in the locale module, +# but remember to use a URL that returns full data **and** to +# use a selector that will pick the country, not the timezone. +# +# To disable GeoIP checking, either comment-out the entire geoip section, +# or set the *style* key to an unsupported format (e.g. `none`). +# Also, note the analogous feature in `src/modules/locale/locale.conf`, +# which is where you will find complete documentation. +# +geoip: + style: "none" + url: "https://geoip.kde.org/v1/ubiquity" # extended XML format + selector: "CountryCode" # blank uses default, which is wrong From 8255bc3fc129b46fec577b3501d061b6056fa2ce Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 8 Jun 2020 07:06:03 -0400 Subject: [PATCH 068/335] [welcome] Sanitize example configurations - remove all duplicated documentation from ; it's the same as `welcome.conf` in all respects except for *qmlSearch*. --- src/modules/welcome/welcome.conf | 8 ++++ src/modules/welcomeq/welcomeq.conf | 66 ++++-------------------------- 2 files changed, 17 insertions(+), 57 deletions(-) diff --git a/src/modules/welcome/welcome.conf b/src/modules/welcome/welcome.conf index d8da60d19..45cb654a2 100644 --- a/src/modules/welcome/welcome.conf +++ b/src/modules/welcome/welcome.conf @@ -67,6 +67,14 @@ requirements: # Also, note the analogous feature in `src/modules/locale/locale.conf`, # which is where you will find complete documentation. # +# For testing, the *style* may be set to `fixed`, any URL that +# returns data (e.g. `http://example.com`) and then *selector* +# sets the data that is actually returned (e.g. "DE" to simulate +# the machine being in Germany). +# +# NOTE: the *selector* must pick the country code from the GeoIP +# data. Timezone, city, or other data will not be recognized. +# geoip: style: "none" url: "https://geoip.kde.org/v1/ubiquity" # extended XML format diff --git a/src/modules/welcomeq/welcomeq.conf b/src/modules/welcomeq/welcomeq.conf index 6c2cf9557..6c131742e 100644 --- a/src/modules/welcomeq/welcomeq.conf +++ b/src/modules/welcomeq/welcomeq.conf @@ -1,52 +1,23 @@ -# Configuration for the welcome module. The welcome page -# displays some information from the branding file. -# Which parts it displays can be configured through -# the show* variables. +# Configuration for the welcomeq module. # -# In addition to displaying the welcome page, this module -# can check requirements for installation. +# The configuration for welcomeq is exactly the same +# as the welcome module, with the one exception of +# *qmlSearch* which governs QML loading. +# +# No documentation is given here: look in the welcome module. --- -# Setting for QML loading +# Setting for QML loading: use QRC, branding, or both sources of files qmlSearch: both -# Display settings for various buttons on the welcome page. -# The URLs themselves come from branding.desc is the setting -# here is "true". If the setting is false, the button is hidden. -# The setting can also be a full URL which will then be used -# instead of the one from the branding file, or empty or not-set -# which will hide the button. + +# Everythin below here is documented in `welcome.conf` showSupportUrl: true showKnownIssuesUrl: true showReleaseNotesUrl: true -# If this Url is set to something non-empty, a "donate" -# button is added to the welcome page alongside the -# others (see settings, above). Clicking the button opens -# the corresponding link. (This button has no corresponding -# branding.desc string) -# -# showDonateUrl: https://kde.org/community/donations/ - -# Requirements checking. These are general, generic, things -# that are checked. They may not match with the actual requirements -# imposed by other modules in the system. requirements: - # Amount of available disk, in GiB. Floating-point is allowed here. - # Note that this does not account for *usable* disk, so it is possible - # to pass this requirement, yet have no space to install to. requiredStorage: 5.5 - - # Amount of available RAM, in GiB. Floating-point is allowed here. requiredRam: 1.0 - - # To check for internet connectivity, Calamares does a HTTP GET - # on this URL; on success (e.g. HTTP code 200) internet is OK. internetCheckUrl: http://google.com - - # List conditions to check. Each listed condition will be - # probed in some way, and yields true or false according to - # the host system satisfying the condition. - # - # This sample file lists all the conditions that are known. check: - storage - ram @@ -54,28 +25,9 @@ requirements: - internet - root - screen - # List conditions that **must** be satisfied (from the list - # of conditions, above) for installation to proceed. - # If any of these conditions are not met, the user cannot - # continue past the welcome page. required: - # - storage - ram - # - root -# GeoIP checking -# -# This can be used to pre-select a language based on the country -# the user is currently in. It *assumes* that there's internet -# connectivity, though. Configuration is like in the locale module, -# but remember to use a URL that returns full data **and** to -# use a selector that will pick the country, not the timezone. -# -# To disable GeoIP checking, either comment-out the entire geoip section, -# or set the *style* key to an unsupported format (e.g. `none`). -# Also, note the analogous feature in `src/modules/locale/locale.conf`, -# which is where you will find complete documentation. -# geoip: style: "none" url: "https://geoip.kde.org/v1/ubiquity" # extended XML format From f35fab24ac310cec92d79e837e826bbf5f40259a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 8 Jun 2020 08:05:46 -0400 Subject: [PATCH 069/335] [welcome] Remove name-tangle - use useful, not-single-letter, variable names - don't rename inconsistently in the lambda capture --- src/modules/welcome/Config.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/welcome/Config.cpp b/src/modules/welcome/Config.cpp index c842e2451..20e049186 100644 --- a/src/modules/welcome/Config.cpp +++ b/src/modules/welcome/Config.cpp @@ -336,7 +336,7 @@ setCountry( Config* config, const QString& countryCode, CalamaresUtils::GeoIP::H } static inline void -setGeoIP( Config* c, const QVariantMap& configurationMap ) +setGeoIP( Config* config, const QVariantMap& configurationMap ) { bool ok = false; QVariantMap geoip = CalamaresUtils::getSubMap( configurationMap, "geoip", ok ); @@ -350,12 +350,12 @@ setGeoIP( Config* c, const QVariantMap& configurationMap ) if ( handler->type() != CalamaresUtils::GeoIP::Handler::Type::None ) { auto* future = new FWString(); - QObject::connect( future, &FWString::finished, [config = c, f = future, h = handler]() { - QString countryResult = f->future().result(); + QObject::connect( future, &FWString::finished, [config, future, handler]() { + QString countryResult = future->future().result(); cDebug() << "GeoIP result for welcome=" << countryResult; - ::setCountry( config, countryResult, h ); - f->deleteLater(); - delete h; + ::setCountry( config, countryResult, handler ); + future->deleteLater(); + delete handler; } ); future->setFuture( handler->queryRaw() ); } From abe558f12707fdc84c72644105cd68e16572cdce Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 8 Jun 2020 08:27:06 -0400 Subject: [PATCH 070/335] [libcalamares] Be more verbose when the requirements check is done --- src/libcalamares/modulesystem/RequirementsModel.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/modulesystem/RequirementsModel.cpp b/src/libcalamares/modulesystem/RequirementsModel.cpp index 6f9fc1e7b..41a5616c1 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.cpp +++ b/src/libcalamares/modulesystem/RequirementsModel.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -96,13 +96,16 @@ RequirementsModel::roleNames() const void RequirementsModel::describe() const { + cDebug() << "Requirements model has" << m_requirements.count() << "items"; bool acceptable = true; int count = 0; for ( const auto& r : m_requirements ) { + cDebug() << Logger::SubEntry << "requirement" << count << r.name + << "satisfied?" << r.satisfied + << "mandatory?" << r.mandatory; if ( r.mandatory && !r.satisfied ) { - cDebug() << Logger::SubEntry << "requirement" << count << r.name << "is not satisfied."; acceptable = false; } ++count; From 5b1e5a9e037f11de4d964486f9e98704584cd78e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 8 Jun 2020 09:45:19 -0400 Subject: [PATCH 071/335] [welcome] Some API docs --- src/modules/welcome/Config.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/modules/welcome/Config.h b/src/modules/welcome/Config.h index 7fe6fa04e..4ce3999c0 100644 --- a/src/modules/welcome/Config.h +++ b/src/modules/welcome/Config.h @@ -28,7 +28,20 @@ class Config : public QObject { Q_OBJECT + /** @brief The languages available in Calamares. + * + * This is a list-model, with names and descriptions for the translations + * available to Calamares. + */ Q_PROPERTY( CalamaresUtils::Locale::LabelModel* languagesModel READ languagesModel CONSTANT FINAL ) + /** @brief The requirements (from modules) and their checked-status + * + * The model grows rows over time as each module is checked and its + * requirements are taken into account. The model **as a whole** + * has properties *satisfiedRequirements* and *satisfiedMandatory* + * to say if all of the requirements held in the model have been + * satisfied. See the model documentation for details. + */ Q_PROPERTY( Calamares::RequirementsModel* requirementsModel READ requirementsModel CONSTANT FINAL ) Q_PROPERTY( QString languageIcon READ languageIcon CONSTANT FINAL ) From d1165bea56c33ddc375099215b3fef706c0d7663 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 8 Jun 2020 10:22:03 -0400 Subject: [PATCH 072/335] [welcomeq] Use just one component to display requirements - Do all the status indication in one component, but vary the top-level message based on whether the mandatory requirements are satisfied. - Vary color and icon based on each requirement's *mandatory* setting. --- src/modules/welcomeq/Recommended.qml | 2 ++ src/modules/welcomeq/Requirements.qml | 27 ++++++++++++++++++++------- src/modules/welcomeq/welcomeq.qml | 6 +----- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/modules/welcomeq/Recommended.qml b/src/modules/welcomeq/Recommended.qml index 636311b11..5a6c1316d 100644 --- a/src/modules/welcomeq/Recommended.qml +++ b/src/modules/welcomeq/Recommended.qml @@ -17,6 +17,8 @@ * along with Calamares. If not, see . */ +/* THIS COMPONENT IS UNUSED -- from the default welcomeq.qml at least */ + import io.calamares.core 1.0 import io.calamares.ui 1.0 diff --git a/src/modules/welcomeq/Requirements.qml b/src/modules/welcomeq/Requirements.qml index e81d0a2e6..a376c6010 100644 --- a/src/modules/welcomeq/Requirements.qml +++ b/src/modules/welcomeq/Requirements.qml @@ -44,8 +44,12 @@ Rectangle { activeFocusOnPress: false wrapMode: Text.WordWrap - text: qsTr("

This computer does not satisfy the minimum requirements for installing %1.
+ property var requirementsText: qsTr("

This computer does not satisfy the minimum requirements for installing %1.
Installation cannot continue.

").arg(Branding.string(Branding.VersionedName)) + property var recommendationsText: qsTr("

This computer does not satisfy some of the recommended requirements for setting up %1.
+ Setup can continue, but some features might be disabled.

").arg(Branding.string(Branding.VersionedName)) + + text: config.requirementsModel.satisfiedMandatory ? recommendationsText : requirementsText } Rectangle { @@ -60,26 +64,34 @@ Rectangle { Item { width: 640 - height: 35 + // Hide the satisfied requirements; we could do that with + // a filtering model, but here we'll just hide it, but also + // need to compensate for the spacing between items. + height: !satisfied ? 35 : -requirementsList.spacing + visible: !satisfied Column { anchors.centerIn: parent Rectangle { implicitWidth: 640 - implicitHeight: 35 - border.color: mandatory ? "#228b22" : "#ff0000" - color: mandatory ? "#f0fff0" : "#ffc0cb" + implicitHeight: !satisfied ? 35 : 0 + // Colors and images based on the two satisfied-bools: + // - if satisfied, then green / ok + // - otherwise if mandatory, then red / stop + // - otherwise, then yellow / warning + border.color: satisfied ? "#228b22" : (mandatory ? "#ff0000" : "#ffa411") + color: satisfied ? "#f0fff0" : (mandatory ? "#ffc0cb" : "#ffefd5") Image { anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.margins: 20 - source: mandatory ? "qrc:/data/images/yes.svgz" : "qrc:/data/images/no.svgz" + source: satisfied ? "qrc:/data/images/yes.svgz" : (mandatory ? "qrc:/data/images/no.svgz" : "qrc:/data/images/information.svgz") } Text { - text: mandatory ? details : negatedText + text: satisfied ? details : negatedText anchors.centerIn: parent font.pointSize: 11 } @@ -89,6 +101,7 @@ Rectangle { } ListView { + id: requirementsList anchors.fill: parent spacing: 5 model: config.requirementsModel diff --git a/src/modules/welcomeq/welcomeq.qml b/src/modules/welcomeq/welcomeq.qml index b92ff9628..ffa480f4a 100644 --- a/src/modules/welcomeq/welcomeq.qml +++ b/src/modules/welcomeq/welcomeq.qml @@ -56,12 +56,8 @@ Page fillMode: Image.PreserveAspectFit } - Recommended { - visible: !config.requirementsModel.satisfiedRequirements - } - Requirements { - visible: !config.requirementsModel.satisfiedMandatory + visible: !config.requirementsModel.satisfiedRequirements } RowLayout { From f68d0f0628c6343d87fae8364b165bb8472f0588 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 12:05:40 +0200 Subject: [PATCH 073/335] [welcome] Add a filtered model for unsatisfied requirements --- src/modules/welcome/Config.cpp | 13 +++++++++++++ src/modules/welcome/Config.h | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/modules/welcome/Config.cpp b/src/modules/welcome/Config.cpp index 20e049186..2bf418ff1 100644 --- a/src/modules/welcome/Config.cpp +++ b/src/modules/welcome/Config.cpp @@ -32,6 +32,7 @@ Config::Config( QObject* parent ) : QObject( parent ) , m_languages( CalamaresUtils::Locale::availableTranslations() ) + , m_filtermodel( std::make_unique< QSortFilterProxyModel >() ) { initLanguages(); @@ -97,6 +98,18 @@ Config::requirementsModel() const return Calamares::ModuleManager::instance()->requirementsModel(); } +QAbstractItemModel* +Config::unsatisfiedRequirements() const +{ + if ( !m_filtermodel->sourceModel() ) + { + m_filtermodel->setFilterRole( Calamares::RequirementsModel::Roles::Satisfied ); + m_filtermodel->setFilterFixedString( QStringLiteral( "false" ) ); + m_filtermodel->setSourceModel( requirementsModel() ); + } + return m_filtermodel.get(); +} + QString Config::languageIcon() const diff --git a/src/modules/welcome/Config.h b/src/modules/welcome/Config.h index 4ce3999c0..6d14097c5 100644 --- a/src/modules/welcome/Config.h +++ b/src/modules/welcome/Config.h @@ -23,8 +23,11 @@ #include "modulesystem/RequirementsModel.h" #include +#include #include +#include + class Config : public QObject { Q_OBJECT @@ -43,6 +46,14 @@ class Config : public QObject * satisfied. See the model documentation for details. */ Q_PROPERTY( Calamares::RequirementsModel* requirementsModel READ requirementsModel CONSTANT FINAL ) + /** @brief The requirements (from modules) that are **unsatisfied** + * + * This is the same as requirementsModel(), except filtered so + * that only those requirements that are not satisfied are exposed. + * Note that the type is different, so you should still use the + * requirementsModel() for overall status like *satisfiedMandatory*. + */ + Q_PROPERTY( QAbstractItemModel* unsatisfiedRequirements READ unsatisfiedRequirements CONSTANT FINAL ) Q_PROPERTY( QString languageIcon READ languageIcon CONSTANT FINAL ) @@ -96,6 +107,8 @@ public slots: ///@brief The **global** requirements model, from ModuleManager Calamares::RequirementsModel* requirementsModel() const; + QAbstractItemModel* unsatisfiedRequirements() const; + signals: void countryCodeChanged( QString countryCode ); void localeIndexChanged( int localeIndex ); @@ -112,7 +125,8 @@ signals: private: void initLanguages(); - CalamaresUtils::Locale::LabelModel* m_languages; + CalamaresUtils::Locale::LabelModel* m_languages = nullptr; + std::unique_ptr< QSortFilterProxyModel > m_filtermodel; QString m_languageIcon; QString m_countryCode; From d22178ca5e91bfdbf74bd92e6cc1baceebdcdc23 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 12:13:44 +0200 Subject: [PATCH 074/335] [welcomeq] Show filtered list of requirements - only the unsatisfied ones are shown; no need to filter and fiddle about in QML --- src/modules/welcomeq/Requirements.qml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/modules/welcomeq/Requirements.qml b/src/modules/welcomeq/Requirements.qml index a376c6010..e7835d868 100644 --- a/src/modules/welcomeq/Requirements.qml +++ b/src/modules/welcomeq/Requirements.qml @@ -64,18 +64,15 @@ Rectangle { Item { width: 640 - // Hide the satisfied requirements; we could do that with - // a filtering model, but here we'll just hide it, but also - // need to compensate for the spacing between items. - height: !satisfied ? 35 : -requirementsList.spacing - visible: !satisfied + height: 35 + visible: true Column { anchors.centerIn: parent Rectangle { implicitWidth: 640 - implicitHeight: !satisfied ? 35 : 0 + implicitHeight: 35 // Colors and images based on the two satisfied-bools: // - if satisfied, then green / ok // - otherwise if mandatory, then red / stop @@ -104,7 +101,10 @@ Rectangle { id: requirementsList anchors.fill: parent spacing: 5 - model: config.requirementsModel + // This uses the filtered model, so that only unsatisfied + // requirements are ever shown. You could use *requirementsModel* + // to get all of them. + model: config.unsatisfiedRequirements delegate: requirementsDelegate } } From 35fb8dcc27bc9ed823808cea0191c19f2aca8333 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 13:24:12 +0200 Subject: [PATCH 075/335] [mount] Warn if chcon is missing, rather than fail FIXES #1429 --- src/modules/mount/main.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/mount/main.py b/src/modules/mount/main.py index b10c5c0bf..4e16b43c3 100644 --- a/src/modules/mount/main.py +++ b/src/modules/mount/main.py @@ -52,8 +52,13 @@ def mount_partition(root_mount_point, partition, partitions): # Ensure that the created directory has the correct SELinux context on # SELinux-enabled systems. os.makedirs(mount_point, exist_ok=True) - subprocess.call(['chcon', '--reference=' + raw_mount_point, - mount_point]) + try: + subprocess.call(['chcon', '--reference=' + raw_mount_point, mount_point]) + except FileNotFoundError as e: + libcalamares.utils.warning(str(e)) + except OSError: + libcalamares.utils.error("Cannot run 'chcon' normally.") + raise fstype = partition.get("fs", "").lower() From a617dba85ee15513e8cb960d4b7b9e5d370a93bb Mon Sep 17 00:00:00 2001 From: demmm Date: Tue, 9 Jun 2020 13:34:16 +0200 Subject: [PATCH 076/335] [welcomeq]re-add the donate button example to welcomeq.conf --- src/modules/welcomeq/welcomeq.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/welcomeq/welcomeq.conf b/src/modules/welcomeq/welcomeq.conf index 6c131742e..32be7fcb5 100644 --- a/src/modules/welcomeq/welcomeq.conf +++ b/src/modules/welcomeq/welcomeq.conf @@ -13,6 +13,7 @@ qmlSearch: both showSupportUrl: true showKnownIssuesUrl: true showReleaseNotesUrl: true +# showDonateUrl: https://kde.org/community/donations/ requirements: requiredStorage: 5.5 From d511cc2f7a74576338f9bdad1fc9241e5847a541 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 14:21:11 +0200 Subject: [PATCH 077/335] [locale] Norfolk Island gave up +11.5 in 2015 --- src/modules/locale/images/timezone_11.5.png | Bin 867 -> 0 bytes src/modules/locale/locale.qrc | 1 - .../locale/timezonewidget/TimeZoneImage.cpp | 4 ++-- src/modules/locale/timezonewidget/TimeZoneImage.h | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 src/modules/locale/images/timezone_11.5.png diff --git a/src/modules/locale/images/timezone_11.5.png b/src/modules/locale/images/timezone_11.5.png deleted file mode 100644 index 442cabfebf69ac0452942abbd78e57c452b960be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmeAS@N?(olHy`uVBq!ia0y~yVCG?9U<~1428!%^?EMQ!v7|ftIx;Y9?C1WI$O_~$ z76-XIF|0c$^AgBWNcITwWnidMV_;}#VPF8MZ+OALP-?)y@G60U!D~oA+A800munwU*Y5T$-|EqN zG!V!JqPF8f72Cb?*Spm0_HNkc3q-YheDl}2^qdXtJ{t;D&~rYt=Uiy#>EQqW|4%3u zF$OwJyCldj8010(U}9lqWi*|(b@O&3uPd%zS6w~N|N8OUMcgScAV{qJwwnV`DPxki zyNlt?+pr{4!35MgOhChYt*cQdnR(h2TP{Yh_$=G3GE?8>K+)GTpRY%;NXS&x%nxXX_XKS29~-; zh9L$9R;I>Q2FBV3MnDY>kIMCd8YDqB1m~xflqVLYGL)B>>t*I;7bhncr0V4trO$q6 RBL!5%;OXk;vd$@?2>@z!)F1!= diff --git a/src/modules/locale/locale.qrc b/src/modules/locale/locale.qrc index b6b0d0cf7..713943ae7 100644 --- a/src/modules/locale/locale.qrc +++ b/src/modules/locale/locale.qrc @@ -21,7 +21,6 @@ images/timezone_10.0.png images/timezone_10.5.png images/timezone_11.0.png - images/timezone_11.5.png images/timezone_12.0.png images/timezone_12.75.png images/timezone_13.0.png diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.cpp b/src/modules/locale/timezonewidget/TimeZoneImage.cpp index 52ddc24b1..eec939905 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.cpp +++ b/src/modules/locale/timezonewidget/TimeZoneImage.cpp @@ -26,7 +26,7 @@ static const char* zoneNames[] = { "0.0", "1.0", "2.0", "3.0", "3.5", "4.0", "4.5", "5.0", "5.5", "5.75", "6.0", "6.5", "7.0", - "8.0", "9.0", "9.5", "10.0", "10.5", "11.0", "11.5", "12.0", "12.75", "13.0", "-1.0", "-2.0", "-3.0", + "8.0", "9.0", "9.5", "10.0", "10.5", "11.0", "12.0", "12.75", "13.0", "-1.0", "-2.0", "-3.0", "-3.5", "-4.0", "-4.5", "-5.0", "-5.5", "-6.0", "-7.0", "-8.0", "-9.0", "-9.5", "-10.0", "-11.0" }; static_assert( TimeZoneImageList::zoneCount == ( sizeof( zoneNames ) / sizeof( zoneNames[ 0 ] ) ), "Incorrect number of zones" ); @@ -36,7 +36,7 @@ static_assert( TimeZoneImageList::zoneCount == ( sizeof( zoneNames ) / sizeof( z /* static constexpr */ const int TimeZoneImageList::zoneCount; /* static constexpr */ const QSize TimeZoneImageList::imageSize; -static_assert( TimeZoneImageList::zoneCount == 38 ); +static_assert( TimeZoneImageList::zoneCount == 37 ); TimeZoneImageList::TimeZoneImageList() {} diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.h b/src/modules/locale/timezonewidget/TimeZoneImage.h index 0a3aea145..ee02bfbfd 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.h +++ b/src/modules/locale/timezonewidget/TimeZoneImage.h @@ -77,7 +77,7 @@ public: QImage find( QPoint p ) const; /// @brief The **expected** number of zones in the list. - static constexpr const int zoneCount = 38; + static constexpr const int zoneCount = 37; /// @brief The expected size of each zone image. static constexpr const QSize imageSize = QSize( 780, 340 ); }; From 38b4f45b92d72fed916f9b0d3a5d3112534028ac Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 14:40:13 +0200 Subject: [PATCH 078/335] [locale] Repair timezone graphics -- west-Africa and Pacific --- src/modules/locale/images/timezone_-1.0.png | Bin 15641 -> 12010 bytes src/modules/locale/images/timezone_-10.0.png | Bin 10561 -> 10414 bytes src/modules/locale/images/timezone_-7.0.png | Bin 15090 -> 15126 bytes src/modules/locale/images/timezone_0.0.png | Bin 19182 -> 16289 bytes src/modules/locale/images/timezone_10.0.png | Bin 22594 -> 18305 bytes src/modules/locale/images/timezone_11.0.png | Bin 13472 -> 13590 bytes src/modules/locale/images/timezone_12.0.png | Bin 7704 -> 8116 bytes src/modules/locale/images/timezone_2.0.png | Bin 21508 -> 18803 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/modules/locale/images/timezone_-1.0.png b/src/modules/locale/images/timezone_-1.0.png index 50ced39802ee3f7f75864c53b6f6c72bbc3cfb16..4fdbd0e3fef0ca2aa4834b053be3b8133f7f106c 100644 GIT binary patch literal 12010 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 GhyO2s3}qq! diff --git a/src/modules/locale/images/timezone_-7.0.png b/src/modules/locale/images/timezone_-7.0.png index a4a12b9aef605aafe6354235d2dfc15d458287f9..c3f98ecbc11c6435070130e0f72025421d34f5b8 100644 GIT binary patch literal 15126 zcmeIZXHc6@3#s-3m9>;SiHA>Z)_T5CGb}#+)Aa6l1%e7S>CXebf7)`r zn51~(7oh&)-aiOJTP~W%?Ln4;4T$KYTRORI?sfZ(!(*A(Nv3*#QXGy! z?YY&SYTVHj4gd2Qf84vJF)t#bc{L)Ur3WM=<|B`wZ~p)b3w>25;R4w5niT)=jYYKz zVD_Genu#|70Z~5w?+@iUVc-h^osY7ykAb_R57frXfdC4H3OGZ+-gY(~4g&68PMLeM z^Z*bC9?0It$3fc8%K>NzM1+Jz_<@g*$ZO$e(xQ^m&&2qIgr$Xqf@mCS{>uP2cY9~Y zfd3dEB*iZx{8~szT1-@0NR&@V1Q_sk87fFX@Pt5J>BVdRterXMf3h(lpD%8u_Px#! zXApw9$rpd#`NNZ3Sv{?&t9n(hB$i6L^oYH}fLXUYqb}>$_-om|$DhQKHI}2{<^t(G zX$Cw!Iu1L-Q5?$g)S4n3nva#qXQPmRJbMc{2|dGE3}%oKC`T`I{832bvvOhhjywNy z{%rO^aGh@MS=P5ZGZQzuSKmHF8?eyJ9F2Xd2DylK55tFoyoatwa?Jylj*nSwCG3E8 zL{R4&SVau91dFH2Lilzg#v0!Y)3oE8uY&LY0Gj7kcL;&zZOgx_jv#~_Ka}7%D=oe` z`QI5>-tz3W6Bt}00<9u`i{KG|7eAvd%o*6T|6rO5?d(4M6?j;_ewS!g76GgBLW}d! z>9Eqqzn$pbpAuRX%0ASN%9 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 literal 15090 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 XW|oEtd;G)z5sHMU%!k7F+8+NG*3hM& diff --git a/src/modules/locale/images/timezone_0.0.png b/src/modules/locale/images/timezone_0.0.png index 02a4c8f8b112254df490d33a5d2d0e19f8cdb8d0..f098b9c67e3701d81751523d2be9ec79911c9099 100644 GIT binary patch literal 16289 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 diff --git a/src/modules/locale/images/timezone_10.0.png b/src/modules/locale/images/timezone_10.0.png index fab3dadac909dfd9ecdbbc8a8c9ee90e04c808af..9304fa4ad9e1fab49575e0c98223e0e843c67551 100644 GIT binary patch literal 18305 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

I26Eaj2^v?D2FgzTr|?1RLII?GdICB>m2Mp8;| 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 TUP%P-nV6hGgq-5|$KLoCl*Tv~ diff --git a/src/modules/locale/images/timezone_11.0.png b/src/modules/locale/images/timezone_11.0.png index 71e62ee0c631050f6e6e9be7c148c109c8aeaf58..b5395bad1869cb8d8466da11e6c83e89f1bbed2b 100644 GIT binary patch literal 13590 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 literal 13472 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 diff --git a/src/modules/locale/images/timezone_12.0.png b/src/modules/locale/images/timezone_12.0.png index 9d4b458e77a0f2cc5c2a971c09ddc468ad0ccf76..04902676030220b0be436197b54b2115ea89127e 100644 GIT binary patch literal 8116 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

^IhAs89p<&oE zqZh4!W(+;;67oD#YcX=$QEmB1xEubrz%H1$@|zhSS&vt8%<`qfQDZC__>p?3&IG3^5jU^wA!O!m8i8;q!k{e zYRKN0A^j@&<djZ_?L~Qx&RCWx(d}stRl-}_nUhMY+K6fTo&gsRq zf9(&AUQVFxwwVX|)D2MEEU3o>8pfb=f6#S7`Rw+*-e$@K`x!lvU~H{@IBjy7*|?ou zj4~^CEGcoO?#*$FK6bwF@wczGa@G;RTG>qy2=-Ld+BrDw>uoa8>`Pa1H%2Qa$s50| z#pgEHP0YnhHLP1pmLN!2QqU9)<6JMQQ-j{AWw4&aPf7*u*jpz_@Cu6p zaw5_G`bFTqKx zJfjz~iv%)x#UW|xCdyI|O0Sw;hgwaAkx-U_UuRHVY<<|kE;g7xjLn#NCKhGfpj(0k@<^7*}YsZ3~7 z!)N2w7|wnlzefv2c_QqQLX=GR{H$oHMSX8Kmef8hYA-&D1IL16Q>y3h%UC>ww5G7> zsat&|xGfb`yhf~C(out1oe)>4iV?}YI%4;MQgkXWB+0p={|J?jyFvcH`peXPl?aFrVL$n z-ro$u6nEBV)mFA#E@{QkzFev25bo^nvAD4=M z=!V7n9s6r=o|MZsm=$yK7V*z$b$JKJ<_|lDYTJw*CX~B2-8;opDBQZ-ab@_8{cz6i z9)B|sjt`d(-4oR4an&=K;r%AJvHS$F=CL`Ks@QqKfu~c^QKH=X&Il{UTWx7fZ|4d*9XZGg z7)49E-%-zPT-kcw)_k7rqDG3rV!p55eAGFS4_t ziXK;e3}EYf<%nnHpBsYNolNflmB!TN=Fvc*p0v?KCBd~UsuW!CyNlsbo1-euhUZ1& z%b}n9$!~RN_8|e)GaurB{g+fE5vW&z6F3G>n~xRh9~;D@3a3R>V+4_(?IqjH>JR*M zyv%HaoIgx&?Ba(AzMSWtD1>>jvaEoL#Ibtn0y<%E^w#g3cN#nYp${d#3gK4*Jdj>|`}T8Hs3apt_pj8t-CAfF_G3=N`#lumv6rAu|r}(1=_WidCD?3sX-^!sK;E?Ok z+FJF)knWO9v(|%xhi&8RmvtzGz*6mAs*$Td|6!X%@|6gRN@i4)m^uB)99f0mN)R}K zve8$=pYC0;!f!Z;2LYk0@}8Q|awZT(awE=6o8S}f31?+AtMOMOxL1>ti<;^&TW()g pErBijsR>HwKc(dV?&HgE{LH%p5?aME9>7IF7c6bgmBHNp{U0|OhSdN7 literal 7704 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 diff --git a/src/modules/locale/images/timezone_2.0.png b/src/modules/locale/images/timezone_2.0.png index fa0bc4818f6f83bc88a2b3970a7df07168ec1c1f..1bae9510ee8a4f34528311f7ff7172165b7a0891 100644 GIT binary patch literal 18803 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 L`njxgN@xNAlYeAX literal 21508 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 Ib4q9e00j&<-v9sr From b9f802bbda998c0ba657231d17b6fa3fd95a2f2a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 23:25:17 +0200 Subject: [PATCH 079/335] CMake: shuffle includes together --- CMakeLists.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 020b83e80..30ba649ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -162,7 +162,13 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.10.0") ) endif() +# CMake Modules +include( CMakePackageConfigHelpers ) include( CTest ) +include( FeatureSummary ) + +# Calamares Modules +include( CMakeColors ) ### C++ SETUP # @@ -248,9 +254,6 @@ if( CMAKE_COMPILER_IS_GNUCXX ) endif() endif() -include( FeatureSummary ) -include( CMakeColors ) - ### DEPENDENCIES # @@ -555,6 +558,8 @@ configure_file( CalamaresBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/Calam # Create the CalamaresConfig.cmake and CalamaresConfigVersion files file( RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ) + + configure_file( CalamaresConfig.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @ONLY ) configure_file( CalamaresConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" @ONLY ) configure_file( CalamaresUse.cmake.in "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" @ONLY ) From 6507098d16f2d5a7623421643242ab578ca65fc4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 23:38:31 +0200 Subject: [PATCH 080/335] CMake: use standard function for creating a version file --- CMakeLists.txt | 7 ++++++- CalamaresConfigVersion.cmake.in | 12 ------------ 2 files changed, 6 insertions(+), 13 deletions(-) delete mode 100644 CalamaresConfigVersion.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 30ba649ee..107dc0b23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -556,12 +556,17 @@ export( PACKAGE Calamares ) configure_file( CalamaresBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY ) # Create the CalamaresConfig.cmake and CalamaresConfigVersion files +write_basic_package_version_file( + ${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + file( RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ) configure_file( CalamaresConfig.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @ONLY ) -configure_file( CalamaresConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" @ONLY ) configure_file( CalamaresUse.cmake.in "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" @ONLY ) # Install the cmake files diff --git a/CalamaresConfigVersion.cmake.in b/CalamaresConfigVersion.cmake.in deleted file mode 100644 index 05b87c8d3..000000000 --- a/CalamaresConfigVersion.cmake.in +++ /dev/null @@ -1,12 +0,0 @@ -set(PACKAGE_VERSION "@CALAMARES_VERSION@") - -# Check whether the requested PACKAGE_FIND_VERSION is compatible -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() - From f59b6da7995340df3f8896da2c771db72c81bde3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 9 Jun 2020 23:58:58 +0200 Subject: [PATCH 081/335] CMake: produce a standard modern-CMake config file - Use modern CMake commands to produce the config file - Drop the CalamaresUse.cmake file, include its functionality in the config file. --- CMakeLists.txt | 17 +++++++++-------- CalamaresConfig.cmake.in | 40 ++++++++++++++-------------------------- CalamaresUse.cmake.in | 29 ----------------------------- 3 files changed, 23 insertions(+), 63 deletions(-) delete mode 100644 CalamaresUse.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 107dc0b23..3cf52e198 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -556,25 +556,26 @@ export( PACKAGE Calamares ) configure_file( CalamaresBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY ) # Create the CalamaresConfig.cmake and CalamaresConfigVersion files +configure_package_config_file( + "CalamaresConfig.cmake.in" + "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" + PATH_VARS + CMAKE_INSTALL_INCLUDEDIR + CMAKE_INSTALL_LIBDIR + CMAKE_INSTALL_DATADIR +) write_basic_package_version_file( ${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) -file( RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}" ) - - - -configure_file( CalamaresConfig.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @ONLY ) -configure_file( CalamaresUse.cmake.in "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" @ONLY ) - # Install the cmake files install( FILES "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" - "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" "CMakeModules/CalamaresAddBrandingSubdirectory.cmake" "CMakeModules/CalamaresAddLibrary.cmake" "CMakeModules/CalamaresAddModuleSubdirectory.cmake" diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 6d32410c6..9814bf8c1 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -1,32 +1,20 @@ # Config file for the Calamares package # -# It defines the following variables -# CALAMARES_INCLUDE_DIRS - include directories for Calamares -# CALAMARES_LIBRARIES - libraries to link against -# CALAMARES_USE_FILE - name of a convenience include -# CALAMARES_APPLICATION_NAME - human-readable application name -# -# Typical use is: -# -# find_package(Calamares REQUIRED) -# include("${CALAMARES_USE_FILE}") -# +# For legacy use it defines the following variables: +# - Calamares_INCLUDE_DIRS - include directories for Calamares +# - Calamares_LIB_DIRS - library directories +# - Calamares_LIBRARIES - libraries to link against (e.g. -lcalamares) -# Compute paths -get_filename_component(CALAMARES_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -if(EXISTS "${CALAMARES_CMAKE_DIR}/CMakeCache.txt") - # In build tree - include("${CALAMARES_CMAKE_DIR}/CalamaresBuildTreeSettings.cmake") -else() - set(CALAMARES_INCLUDE_DIRS "${CALAMARES_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@/libcalamares") -endif() +@PACKAGE_INIT@ -# Our library dependencies (contains definitions for IMPORTED targets) -include("${CALAMARES_CMAKE_DIR}/CalamaresLibraryDepends.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresConfigVersion.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresTargets.cmake) -# These are IMPORTED targets created by CalamaresLibraryDepends.cmake -set(CALAMARES_LIBRARIES calamares) +set(Calamares_LIB_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@") +set(Calamares_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") +set(Calamares_LIBRARIES calamares) -# Convenience variables -set(CALAMARES_USE_FILE "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake") -set(CALAMARES_APPLICATION_NAME "Calamares") +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddLibrary.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddModuleSubdirectory.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddPlugin.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddBrandingSubdirectory.cmake) diff --git a/CalamaresUse.cmake.in b/CalamaresUse.cmake.in deleted file mode 100644 index 00f3c968d..000000000 --- a/CalamaresUse.cmake.in +++ /dev/null @@ -1,29 +0,0 @@ -# A setup-cmake-things-for-Calamares module. -# -# This module handles looking for dependencies and including -# all of the Calamares macro modules, so that you can focus -# on just using the macros to build Calamares modules. -# Typical use looks like this: -# -# ``` -# find_package( Calamares REQUIRED ) -# include( "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake" ) -# ``` -# -# The first CMake command finds Calamares (which will contain -# this file), then adds the found location to the search path, -# and then includes this file. After that, you can use -# Calamares module and plugin macros. - -if( NOT CALAMARES_CMAKE_DIR ) - message( FATAL_ERROR "Use find_package(Calamares) first." ) -endif() -set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CALAMARES_CMAKE_DIR} ) - -find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets LinguistTools ) - -include( CalamaresAddLibrary ) -include( CalamaresAddModuleSubdirectory ) -include( CalamaresAddPlugin ) -include( CalamaresAddBrandingSubdirectory ) - From dc16afac4a4e1cf3e2448cd291aaedc4aee0f352 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 00:31:13 +0200 Subject: [PATCH 082/335] CMake: massage IMPORTED targets and module path - Add the Calamares CMake-modules to the search path automatically - Export to CalamaresTargets.cmake and use namespace Calamares:: - Document imported targets - Find Qt, because the translations machinery will need macros from that - The installed lib links to IMPORTED libraries from KF5, so we need to find them (again) as well. --- CMakeLists.txt | 19 ++++---- CMakeModules/CalamaresAddLibrary.cmake | 2 +- CalamaresConfig.cmake.in | 60 +++++++++++++++++++++++--- src/libcalamares/CMakeLists.txt | 4 +- src/libcalamaresui/CMakeLists.txt | 2 +- 5 files changed, 68 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cf52e198..8071f0870 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -532,7 +532,9 @@ configure_file( # Early configure these files as we need them later on set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" ) -set( CALAMARES_LIBRARIES calamares ) +# This is used by CalamaresAddLibrary; once installed, this variable +# is set to the IMPORTED library for Calamares. +set( Calamares_LIBRARIES calamares ) add_subdirectory( src ) @@ -570,6 +572,13 @@ write_basic_package_version_file( VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) +export( PACKAGE Calamares ) +install( + EXPORT Calamares + DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" + FILE "CalamaresTargets.cmake" + NAMESPACE Calamares:: +) # Install the cmake files install( @@ -588,14 +597,6 @@ install( "${CMAKE_INSTALL_CMAKEDIR}" ) -# Install the export set for use with the install-tree -install( - EXPORT - CalamaresLibraryDepends - DESTINATION - "${CMAKE_INSTALL_CMAKEDIR}" -) - if( INSTALL_CONFIG ) install( FILES diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index 6155293d7..abfb3ac38 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -93,7 +93,7 @@ function(calamares_add_library) # add link targets target_link_libraries(${target} - LINK_PUBLIC ${CALAMARES_LIBRARIES} + LINK_PUBLIC ${Calamares_LIBRARIES} Qt5::Core Qt5::Gui Qt5::Widgets diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 9814bf8c1..7fa67b310 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -1,20 +1,68 @@ # Config file for the Calamares package # +# The following IMPORTED targets are defined: +# - Calamares::calamares - the core library +# - Calamares::calamaresui - the UI (and QML) library +# # For legacy use it defines the following variables: # - Calamares_INCLUDE_DIRS - include directories for Calamares # - Calamares_LIB_DIRS - library directories -# - Calamares_LIBRARIES - libraries to link against (e.g. -lcalamares) +# - Calamares_LIBRARIES - libraries to link against @PACKAGE_INIT@ +### Versioning and IMPORTED targets +# +# include(${CMAKE_CURRENT_LIST_DIR}/CalamaresConfigVersion.cmake) include(${CMAKE_CURRENT_LIST_DIR}/CalamaresTargets.cmake) +### Dependencies +# +# The libraries can depend on a variety of Qt and KDE Frameworks +# components, so accumulate them and find (just once). +# +macro(accumulate_deps outvar target namespace) + string(LENGTH ${namespace} _nslen) + get_target_property(_libs ${target} INTERFACE_LINK_LIBRARIES) + foreach(_lib ${_libs}) + if (_lib MATCHES ^${namespace}) + string(SUBSTRING ${_lib} ${_nslen} -1 _component) + list(APPEND ${outvar} ${_component}) + endif() + endforeach() +endmacro() + +# Qt5 infrastructure for translations is required +set(qt5_required Core Widgets LinguistTools) +accumulate_deps(qt5_required Calamares::calamares Qt5::) +accumulate_deps(qt5_required Calamares::calamaresui Qt5::) +find_package(Qt5 CONFIG REQUIRED ${qt5_required}) + +set(kf5_required "") +accumulate_deps(kf5_required Calamares::calamares KF5::) +accumulate_deps(kf5_required Calamares::calamaresui KF5::) +if(kf5_required) + find_package(ECM ${ECM_VERSION} NO_MODULE) + if( ECM_FOUND ) + list(PREPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) + find_package(KF5 REQUIRED COMPONENTS ${kf5_required}) + endif() +endif() + +### Legacy support +# +# set(Calamares_LIB_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@") set(Calamares_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") -set(Calamares_LIBRARIES calamares) +set(Calamares_LIBRARIES Calamares::calamares) + +### CMake support +# +# +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) -include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddLibrary.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddModuleSubdirectory.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddPlugin.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/CalamaresAddBrandingSubdirectory.cmake) +include(CalamaresAddLibrary) +include(CalamaresAddModuleSubdirectory) +include(CalamaresAddPlugin) +include(CalamaresAddBrandingSubdirectory) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index b43b89289..b4d369fe0 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -1,5 +1,5 @@ # === This file is part of Calamares - === -# +# # SPDX-FileCopyrightText: 2020 Adriaan de Groot # # Calamares is free software: you can redistribute it and/or modify @@ -177,7 +177,7 @@ target_link_libraries( calamares ) install( TARGETS calamares - EXPORT CalamaresLibraryDepends + EXPORT Calamares RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 32fec2cb1..b00f9682c 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -67,7 +67,7 @@ calamares_add_library( calamaresui LINK_LIBRARIES Qt5::Svg RESOURCES libcalamaresui.qrc - EXPORT CalamaresLibraryDepends + EXPORT Calamares VERSION ${CALAMARES_VERSION_SHORT} ) From e6fe19df20d1689ebb508f79e2f12dabd2dbf3c6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 01:25:36 +0200 Subject: [PATCH 083/335] CMake: remove unused link libraries - Nothing ever sets LIBRARY_QT5_MODULES (it would be a macro argument to calamares_add_library, if anything). --- CMakeModules/CalamaresAddLibrary.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index abfb3ac38..88978e751 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -97,7 +97,6 @@ function(calamares_add_library) Qt5::Core Qt5::Gui Qt5::Widgets - ${LIBRARY_QT5_MODULES} ) if(LIBRARY_LINK_LIBRARIES) target_link_libraries(${target} LINK_PUBLIC ${LIBRARY_LINK_LIBRARIES}) From a62d96f555fc42a0232182cf8688ebcf23ac07c2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 01:34:18 +0200 Subject: [PATCH 084/335] CMake: tidy up installation of CMake infrastructure - export() only once - document variables a bit better - drop the LibraryDepends file --- CMakeLists.txt | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8071f0870..23359490f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -530,10 +530,9 @@ configure_file( IMMEDIATE @ONLY ) -# Early configure these files as we need them later on -set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" ) -# This is used by CalamaresAddLibrary; once installed, this variable -# is set to the IMPORTED library for Calamares. +# This is used by CalamaresAddLibrary; once Calamares is installed, +# the CalamaresConfig.cmake module sets this variable to the IMPORTED +# libraries for Calamares. set( Calamares_LIBRARIES calamares ) add_subdirectory( src ) @@ -544,20 +543,17 @@ add_feature_info(Config ${INSTALL_CONFIG} "Install Calamares configuration") add_feature_info(KCrash ${WITH_KF5Crash} "Crash dumps via KCrash") add_feature_info(KDBusAddons ${WITH_KF5DBus} "Unique-application via DBus") -# Add all targets to the build-tree export set +### CMake infrastructure installation +# +# set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files" ) set( CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" ) -export( TARGETS calamares - FILE "${PROJECT_BINARY_DIR}/CalamaresLibraryDepends.cmake" ) -# Export the package for use from the build-tree -# (this registers the build-tree with a global CMake-registry) export( PACKAGE Calamares ) - -# Create a CalamaresBuildTreeSettings.cmake file for the use from the build tree -configure_file( CalamaresBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY ) - -# Create the CalamaresConfig.cmake and CalamaresConfigVersion files +configure_file( + CalamaresBuildTreeSettings.cmake.in + "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY +) configure_package_config_file( "CalamaresConfig.cmake.in" "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @@ -572,7 +568,6 @@ write_basic_package_version_file( VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) -export( PACKAGE Calamares ) install( EXPORT Calamares DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" From 9039e15bdf0dd45dea42deb88dfd3b3d9d09c7f2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 01:42:11 +0200 Subject: [PATCH 085/335] CMake: tidy misc. installation bits - don't generate uninstall file twice - tighten up vertical space --- CMakeLists.txt | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 23359490f..52af262d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -523,13 +523,6 @@ endif() # make predefined install dirs available everywhere include( GNUInstallDirs ) -# make uninstall support -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY -) - # This is used by CalamaresAddLibrary; once Calamares is installed, # the CalamaresConfig.cmake module sets this variable to the IMPORTED # libraries for Calamares. @@ -592,36 +585,31 @@ install( "${CMAKE_INSTALL_CMAKEDIR}" ) +### Miscellaneous installs +# +# if( INSTALL_CONFIG ) install( - FILES - settings.conf - DESTINATION - share/calamares + FILES settings.conf + DESTINATIONshare/calamares ) endif() if( INSTALL_POLKIT ) install( - FILES - com.github.calamares.calamares.policy - DESTINATION - "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}" + FILES com.github.calamares.calamares.policy + DESTINATION "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}" ) endif() install( - FILES - calamares.desktop - DESTINATION - ${CMAKE_INSTALL_DATADIR}/applications + FILES calamares.desktop + DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ) install( - FILES - man/calamares.8 - DESTINATION - ${CMAKE_INSTALL_MANDIR}/man8/ + FILES man/calamares.8 + DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/ ) # uninstall target From 14ff681106c4115625c0831b17f05423ae963cce Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 02:01:59 +0200 Subject: [PATCH 086/335] CMake: give libcalamares IMPORTED includes - Set the interface-include path for libcalamares, so that linking to it (as one would from an external repo) pulls in all the includes. --- src/libcalamares/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index b4d369fe0..a2c60efe5 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -163,6 +163,7 @@ set_target_properties( calamares PROPERTIES VERSION ${CALAMARES_VERSION_SHORT} SOVERSION ${CALAMARES_VERSION_SHORT} + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_INSTALL_FULL_INCLUDEDIR}/libcalamares ) calamares_automoc( calamares ) From 3c770b79b30c229f8f831599a41715a40da4f27f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 02:10:21 +0200 Subject: [PATCH 087/335] CMake: install all the libcalamares subdir-headers --- src/libcalamares/CMakeLists.txt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index a2c60efe5..deb291ba9 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -193,13 +193,18 @@ install( CODE " # Install header files file( GLOB rootHeaders "*.h" ) -file( GLOB kdsingleapplicationguardHeaders "kdsingleapplicationguard/*.h" ) file( GLOB utilsHeaders "utils/*.h" ) -install( FILES ${CMAKE_CURRENT_BINARY_DIR}/CalamaresConfig.h DESTINATION include/libcalamares ) -install( FILES ${rootHeaders} DESTINATION include/libcalamares ) -install( FILES ${kdsingleapplicationguardHeaders} DESTINATION include/libcalamares/kdsingleapplicationguard ) -install( FILES ${utilsHeaders} DESTINATION include/libcalamares/utils ) +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/CalamaresConfig.h + ${rootHeaders} + DESTINATION include/libcalamares +) +foreach( subdir geoip locale modulesystem network partition utils ) + file( GLOB subdir_headers "${subdir}/*.h" ) + install( FILES ${subdir_headers} DESTINATION include/libcalamares/${subdir} ) +endforeach() ### TESTING # From 6c272bc8bef08de019930c64dfa97135a557dfd5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 02:27:57 +0200 Subject: [PATCH 088/335] [libcalamares] Link yamlcpp privately - link the library privately -- the public API uses QVariantMap - install FindYAMLCPP just in case - add yamlcpp explicitly in the few places that really need it (e.g. netinstall testing the parsing of netinstall.yaml) --- CMakeLists.txt | 1 + src/libcalamares/CMakeLists.txt | 2 +- src/libcalamaresui/CMakeLists.txt | 1 + src/modules/netinstall/CMakeLists.txt | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52af262d0..7aabe437e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -581,6 +581,7 @@ install( "CMakeModules/CalamaresAddTranslations.cmake" "CMakeModules/CalamaresAutomoc.cmake" "CMakeModules/CMakeColors.cmake" + "CMakeModules/FindYAMLCPP.cmake" DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" ) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index deb291ba9..a7b4472d5 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -170,8 +170,8 @@ calamares_automoc( calamares ) target_link_libraries( calamares LINK_PRIVATE ${OPTIONAL_PRIVATE_LIBRARIES} - LINK_PUBLIC yamlcpp + LINK_PUBLIC Qt5::Core KF5::CoreAddons ${OPTIONAL_PUBLIC_LIBRARIES} diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index b00f9682c..9d7b7a85c 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -66,6 +66,7 @@ calamares_add_library( calamaresui EXPORT_MACRO UIDLLEXPORT_PRO LINK_LIBRARIES Qt5::Svg + yamlcpp RESOURCES libcalamaresui.qrc EXPORT Calamares VERSION ${CALAMARES_VERSION_SHORT} diff --git a/src/modules/netinstall/CMakeLists.txt b/src/modules/netinstall/CMakeLists.txt index 3e6ac3cb5..762e92985 100644 --- a/src/modules/netinstall/CMakeLists.txt +++ b/src/modules/netinstall/CMakeLists.txt @@ -26,5 +26,6 @@ calamares_add_test( PackageModel.cpp LIBRARIES Qt5::Gui + yamlcpp ) From 23c93904dfd2d8b4116ad438a459abb94cc31d0b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 11:51:53 +0200 Subject: [PATCH 089/335] CMake: put CMake-level ABI settings in CalamaresConfig - drop the BuildTreeSettings, it was not usefully used - make CalamaresConfig repeat the WITH_* settings, so that consumers can know the ABI offered --- CMakeLists.txt | 4 ---- CalamaresBuildTreeSettings.cmake.in | 4 ---- CalamaresConfig.cmake.in | 12 +++++++++++- src/libcalamares/CalamaresConfig.h.in | 11 +++++++++-- 4 files changed, 20 insertions(+), 11 deletions(-) delete mode 100644 CalamaresBuildTreeSettings.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 7aabe437e..09e5c6d1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -543,10 +543,6 @@ set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH set( CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" ) export( PACKAGE Calamares ) -configure_file( - CalamaresBuildTreeSettings.cmake.in - "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY -) configure_package_config_file( "CalamaresConfig.cmake.in" "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" diff --git a/CalamaresBuildTreeSettings.cmake.in b/CalamaresBuildTreeSettings.cmake.in deleted file mode 100644 index 507fc3d64..000000000 --- a/CalamaresBuildTreeSettings.cmake.in +++ /dev/null @@ -1,4 +0,0 @@ -set(CALAMARES_INCLUDE_DIRS - "@PROJECT_SOURCE_DIR@/src/libcalamares" - "@PROJECT_BINARY_DIR@/src/libcalamares" -) diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 7fa67b310..4c62fb477 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -62,7 +62,17 @@ set(Calamares_LIBRARIES Calamares::calamares) # list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) +include(CalamaresAddBrandingSubdirectory) include(CalamaresAddLibrary) include(CalamaresAddModuleSubdirectory) include(CalamaresAddPlugin) -include(CalamaresAddBrandingSubdirectory) + +# These are feature-settings that affect consumers of Calamares +# libraries as well; without Python-support in the libs, for instance, +# there's no point in having a Python plugin. +# +# This list should match the one in libcalamares/CalamaresConfig.h, +# which is the C++-language side of the same configuration. +set(Calamares_WITH_PYTHON @WITH_PYTHON@) +set(Calamares_WITH_PYTHONQT @WITH_PYTHONQT@) +set(Calamares_WITH_QML @WITH_QML@) diff --git a/src/libcalamares/CalamaresConfig.h.in b/src/libcalamares/CalamaresConfig.h.in index 98efa8c26..c081b158f 100644 --- a/src/libcalamares/CalamaresConfig.h.in +++ b/src/libcalamares/CalamaresConfig.h.in @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -29,7 +29,14 @@ #define CMAKE_INSTALL_FULL_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}/calamares" #define CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}" -//cmakedefines for CMake variables (e.g. for optdepends) go here +/* + * These are feature-settings that affect consumers of Calamares + * libraries as well; without Python-support in the libs, for instance, + * there's no point in having a Python plugin. + * + * This list should match the one in CalamaresConfig.cmake + * which is the CMake-time side of the same configuration. + */ #cmakedefine WITH_PYTHON #cmakedefine WITH_PYTHONQT #cmakedefine WITH_QML From dc0ed24f1a05cac6b9fc47ddfeb2531497673c89 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 16:43:34 +0200 Subject: [PATCH 090/335] [libcalamaresui] Install libcalamaresui headers - All the headers go to relevant subdirs, but we don't keep libcalamares and libcalamaresui apart. - While here, remove unused variable from libcalamares CMake --- src/libcalamares/CMakeLists.txt | 7 +++++-- src/libcalamaresui/CMakeLists.txt | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index a7b4472d5..0516b5613 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -177,6 +177,9 @@ target_link_libraries( calamares ${OPTIONAL_PUBLIC_LIBRARIES} ) +### Installation +# +# install( TARGETS calamares EXPORT Calamares RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -193,19 +196,19 @@ install( CODE " # Install header files file( GLOB rootHeaders "*.h" ) -file( GLOB utilsHeaders "utils/*.h" ) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/CalamaresConfig.h ${rootHeaders} DESTINATION include/libcalamares ) +# Install each subdir-worth of header files foreach( subdir geoip locale modulesystem network partition utils ) file( GLOB subdir_headers "${subdir}/*.h" ) install( FILES ${subdir_headers} DESTINATION include/libcalamares/${subdir} ) endforeach() + ### TESTING # # diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 9d7b7a85c..773fdf617 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -83,3 +83,25 @@ endif() if( WITH_QML ) target_link_libraries( calamaresui PUBLIC Qt5::QuickWidgets ) endif() + + +### Installation +# +# +# The library is already installed through calamares_add_library(), +# so we only need to do headers. Unlike the Calamares source tree, +# where libcalamares and libcalamaresui live in different branches, +# we're going to glom it all together in the installed headers location. + +install( + FILES + Branding.h + ViewManager.h + DESTINATION include/libcalamares +) + +# Install each subdir-worth of header files +foreach( subdir modulesystem utils viewpages widgets ) + file( GLOB subdir_headers "${subdir}/*.h" ) + install( FILES ${subdir_headers} DESTINATION include/libcalamares/${subdir} ) +endforeach() From 3ae519b8ed577fdd7025ed7f6719ad0a173b3323 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 10 Jun 2020 16:58:17 +0200 Subject: [PATCH 091/335] Documentation: uncomment oem-setup - Calamares complains if this isn't set, so the example should probably be 'safe' from that complaint. With 3.3 plans including 'fatal error instead of warning' this should be fixed on-time. --- settings.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.conf b/settings.conf index 982f4ebbe..8bff02373 100644 --- a/settings.conf +++ b/settings.conf @@ -166,7 +166,7 @@ dont-chroot: false # If this is set to true, Calamares refers to itself as a "setup program" # rather than an "installer". Defaults to the value of dont-chroot, but # Calamares will complain if this is not explicitly set. -# oem-setup: true +oem-setup: false # If this is set to true, the "Cancel" button will be disabled entirely. # The button is also hidden from view. From f034b55da23e4cdc4fc026a0ec3c93f2a2ba6955 Mon Sep 17 00:00:00 2001 From: Pablo Ovelleiro Corral Date: Thu, 11 Jun 2020 11:45:50 +0200 Subject: [PATCH 092/335] [packages] add xbps package manager --- src/modules/packages/main.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 8f58cd6fb..3e29d72e1 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -274,6 +274,20 @@ class PMApt(PackageManager): # Doesn't need to update the system explicitly pass +class PMXbps(PackageManager): + backend = "xbps" + + def install(self, pkgs, from_local=False): + check_target_env_call(["xbps-install", "-Sy"] + pkgs) + + def remove(self, pkgs): + check_target_env_call(["xbps-remove", "-Ry", "--noconfirm"] + pkgs) + + def update_db(self): + check_target_env_call(["xbps-install", "-S"]) + + def update_system(self): + check_target_env_call(["xbps", "-Suy"]) class PMPacman(PackageManager): backend = "pacman" From 2ad44f6805a97679a86f01815c5f4fb6ef14f286 Mon Sep 17 00:00:00 2001 From: Pablo Ovelleiro Corral Date: Thu, 11 Jun 2020 11:57:23 +0200 Subject: [PATCH 093/335] add tags file to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2f36a5de6..da0f082a6 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ CMakeLists.txt.user # Kate *.kate-swp +tags From 4c65b8cc637d87e00e740b0d7a99ffd5b016b337 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 11 Jun 2020 12:26:32 +0200 Subject: [PATCH 094/335] CI: remove outdated comment-crud --- ci/txpull.sh | 21 +++++++-------------- ci/txpush.sh | 19 +++++++------------ 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/ci/txpull.sh b/ci/txpull.sh index 734a689b5..619963687 100755 --- a/ci/txpull.sh +++ b/ci/txpull.sh @@ -23,20 +23,15 @@ # ### END USAGE -### INITIAL SETUP +### SANITY CHECKING # -# This stuff needs to be done once; in a real CI environment where it -# runs regularly in a container, the setup needs to be done when -# creating the container. +# The script needs a .tx/config to talk to the Transifex server; +# it also checks that it is run from the top-level of a Calamares +# checkout. In order to use the system overall, you'll also need: +# - ~/.gitconfig (For the git commits this does) +# - ~/.transifexrc (Password token for Transifex) +# - ~/.ssh (For git commits) # -# -# cp ~/jenkins-master/.transifexrc ~ # Transifex user settings -# cp ~/jenkins-master/.gitconfig ~ # Git config, user settings -# cp -R ~/jenkins-master/.ssh ~ # SSH, presumably for github -# -# cd "$WORKSPACE" -# git config --global http.sslVerify false - test -f "CMakeLists.txt" || { echo "! Not at Calamares top-level" ; exit 1 ; } test -f ".tx/config" || { echo "! Not at Calamares top-level" ; exit 1 ; } test -f "calamares.desktop" || { echo "! Not at Calamares top-level" ; exit 1 ; } @@ -145,5 +140,3 @@ for POFILE in $(find lang -name "python.po") ; do done git add --verbose lang/python* git commit "$AUTHOR" --message="i18n: [python] $BOILERPLATE" | true - -# git push --set-upstream origin master diff --git a/ci/txpush.sh b/ci/txpush.sh index 3195f42b4..dc8c8c413 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -29,20 +29,15 @@ # ### END USAGE -### INITIAL SETUP +### SANITY CHECKING # -# This stuff needs to be done once; in a real CI environment where it -# runs regularly in a container, the setup needs to be done when -# creating the container. +# The script needs a .tx/config to talk to the Transifex server; +# it also checks that it is run from the top-level of a Calamares +# checkout. In order to use the system overall, you'll also need: +# - ~/.gitconfig (For the git commits this does) +# - ~/.transifexrc (Password token for Transifex) +# - ~/.ssh (For git commits) # -# -# cp ~/jenkins-master/.transifexrc ~ # Transifex user settings -# cp ~/jenkins-master/.gitconfig ~ # Git config, user settings -# cp -R ~/jenkins-master/.ssh ~ # SSH, presumably for github -# -# cd "$WORKSPACE" -# git config --global http.sslVerify false - test -f "CMakeLists.txt" || { echo "! Not at Calamares top-level" ; exit 1 ; } test -f ".tx/config" || { echo "! Not at Calamares top-level" ; exit 1 ; } test -f "calamares.desktop" || { echo "! Not at Calamares top-level" ; exit 1 ; } From ac8de23c6e54d7b76fdedfe2f9fd273026d0a58b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 11 Jun 2020 12:42:51 +0200 Subject: [PATCH 095/335] Changes: mention recent features and contributors --- CHANGES | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 64102fae8..b1b74f4ee 100644 --- a/CHANGES +++ b/CHANGES @@ -6,14 +6,18 @@ website will have to do for older versions. # 3.2.26 (unreleased) # This release contains contributions from (alphabetically by first name): - - No external contributors yet + - Pablo Ovelleiro Corral ## Core ## - - No core changes yet + - External modules can now be built again, outside of the Calamares + source and build-tree. ## Modules ## - - No module changes yet - + - *locale* put some more places into the correct timezone **visually**; + for instance Norfolk Island gave up UTC+11.5 in 2015 and is now + UTC+11, but Calamares still showed it in a zone separate from UTC+11. + - *packages* gained support for the Void Linux package manager, + *xbps*. (thanks Pablo) # 3.2.25 (2020-06-06) # From 73f8c627bd20ffb2012600f1c5098589f4e602af Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 12 Jun 2020 11:35:23 +0200 Subject: [PATCH 096/335] CMake: support out-of-tree builds - The variables that are set for out-of-tree builds are prefixed with to avoid name clashes; make the module-infrastructure respect those instead of the in-tree variable names. - .. and then duplicate the in-tree variables to the out-of-tree variables, so we only need one set of module instructions. --- CMakeLists.txt | 7 +++++++ CMakeModules/CalamaresAddModuleSubdirectory.cmake | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09e5c6d1d..2a209e2d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -359,6 +359,13 @@ if( NOT PYTHONLIBS_FOUND OR NOT PYTHONQT_FOUND ) set( WITH_PYTHONQT OFF ) endif() +# Now we know the state of the ABI-options, copy them into "Calamares_" +# prefixed variables, to match how the variables would-be-named +# when building out-of-tree. +set(Calamares_WITH_PYTHON ${WITH_PYTHON}) +set(Calamares_WITH_PYTHONQT ${WITH_PYTHONQT}) +set(Calamares_WITH_QML ${WITH_QML}) + ### Transifex Translation status # # Construct language lists for use. If there are p_tx* variables, diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index fe4f34f94..02c1a577f 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -70,11 +70,11 @@ function( calamares_add_module_subdirectory ) # _mod_testing boolean if the module should be added to the loadmodule tests file(STRINGS "${_mod_dir}/module.desc" MODULE_INTERFACE REGEX "^interface") if ( MODULE_INTERFACE MATCHES "pythonqt" ) - set( _mod_enabled ${WITH_PYTHONQT} ) + set( _mod_enabled ${Calamares_WITH_PYTHONQT} ) set( _mod_reason "No PythonQt support" ) set( _mod_testing OFF ) elseif ( MODULE_INTERFACE MATCHES "python" ) - set( _mod_enabled ${WITH_PYTHON} ) + set( _mod_enabled ${Calamares_WITH_PYTHON} ) set( _mod_reason "No Python support" ) set( _mod_testing ON ) # Will check syntax and imports, at least elseif ( MODULE_INTERFACE MATCHES "qtplugin" ) From f218e2e9a617f176d4ed69904a81ab97c9597122 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 12 Jun 2020 12:05:35 +0200 Subject: [PATCH 097/335] CMake: handle Python modules built from subdirectory a/b --- CMakeModules/CalamaresAddModuleSubdirectory.cmake | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index 02c1a577f..86f0b8f4c 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -61,7 +61,17 @@ function( calamares_add_module_subdirectory ) # ...otherwise, we look for a module.desc. elseif( EXISTS "${_mod_dir}/module.desc" ) set( MODULES_DIR ${CMAKE_INSTALL_LIBDIR}/calamares/modules ) - set( MODULE_DESTINATION ${MODULES_DIR}/${SUBDIRECTORY} ) + # The module subdirectory may be given as a/b/c, but the module + # needs to be installed as "c", so we split off any intermediate + # directories. + get_filename_component(_dirname "${SUBDIRECTORY}" DIRECTORY) + if( _dirname ) + # Remove the dirname and any leftover leading /s + string( REGEX REPLACE "^${_dirname}/*" "" _modulename "${SUBDIRECTORY}" ) + set( MODULE_DESTINATION ${MODULES_DIR}/${_modulename} ) + else() + set( MODULE_DESTINATION ${MODULES_DIR}/${SUBDIRECTORY} ) + endif() # Read module.desc, check that the interface type is supported. # From 70f10798737e9b4c36267b95726dc8fb12cec1ed Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 12 Jun 2020 12:56:13 +0200 Subject: [PATCH 098/335] i18n: expand the translation-load-compare tool a little, more docs --- lang/txload.cpp | 76 +++++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 34 deletions(-) diff --git a/lang/txload.cpp b/lang/txload.cpp index 36e0f71a2..68a157b81 100644 --- a/lang/txload.cpp +++ b/lang/txload.cpp @@ -1,6 +1,4 @@ /* === This file is part of Calamares - === - * - * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,23 +12,33 @@ * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . + * + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE */ /* * Tool to find differences between translations (can be used to help * merging them into one). See usage string, below, for details. + * + * The tool can be used when there are multiple translation files + * for a single language (e.g. Spanish) which need to be reconciled. + * Then running `txload file0.ts file1.ts ...` will produce a + * human-readable overview of what is translated and where the + * differences in translation are. */ #include #include #include -#include +// #include #include -static const char usage[] = "Usage: txload [ ...]\n" +static const char usage[] = "Usage: txload [ ...]\n" "\n" - "Reads a .ts source file and zero or more .ts \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" @@ -95,34 +103,34 @@ QDomElement find_message(QDomElement& context, const QString& source) return QDomElement(); } -bool merge_into(QDomElement& master, QDomElement& sub) +bool merge_into(QDomElement& origin, QDomElement& alternate) { - QDomNode n = sub.firstChild(); + QDomNode n = alternate.firstChild(); while (!n.isNull()) { if (n.isElement()) { - QDomElement e = n.toElement(); - if ( e.tagName() == "message" ) + QDomElement alternateMessage = n.toElement(); + if ( alternateMessage.tagName() == "message" ) { - QString source = e.firstChildElement( "source" ).text(); - QString translation = e.firstChildElement( "translation" ).text(); - QDomElement masterTranslation = find_message( master, source ); - if ( masterTranslation.isNull() ) + QString alternateSourceText = alternateMessage.firstChildElement( "source" ).text(); + QString alternateTranslationText = alternateMessage.firstChildElement( "translation" ).text(); + QDomElement originMessage = find_message( origin, alternateSourceText ); + if ( originMessage.isNull() ) { - qDebug() << "No master translation for" << source; + qDebug() << "No origin translation for" << alternateSourceText; return false; } - QString msource = masterTranslation.firstChildElement( "source" ).text(); - QString mtranslation = masterTranslation.firstChildElement( "translation" ).text(); + QString originSourceText = originMessage.firstChildElement( "source" ).text(); + QString originTranslationText = originMessage.firstChildElement( "translation" ).text(); - if ( source != msource ) + if ( alternateSourceText != originSourceText ) { - qDebug() << "Mismatch for messages\n" << source << '\n' << msource; + qDebug() << "Mismatch for messages\n" << alternateSourceText << '\n' << originSourceText; return false; } - if ( !translation.isEmpty() && ( translation != mtranslation ) ) + if ( !alternateTranslationText.isEmpty() && ( alternateTranslationText != originTranslationText ) ) { - qDebug() << "\n\n\nSource:" << source << "\nTL1:" << mtranslation << "\nTL2:" << translation; + qDebug() << "\n\n\nSource:" << alternateSourceText << "\nTL1:" << originTranslationText << "\nTL2:" << alternateTranslationText; } } } @@ -134,32 +142,32 @@ bool merge_into(QDomElement& master, QDomElement& sub) -bool merge_into(QDomDocument& master, QDomElement& context) +bool merge_into(QDomDocument& originDocument, QDomElement& context) { QDomElement name = context.firstChildElement( "name" ); if ( name.isNull() ) return false; QString contextname = name.text(); - QDomElement masterContext = find_context( master, contextname ); - if ( masterContext.isNull() ) + QDomElement originContext = find_context( originDocument, contextname ); + if ( originContext.isNull() ) { - qDebug() << "Master document has no context" << contextname; + qDebug() << "Origin document has no context" << contextname; return false; } - return merge_into( masterContext, context ); + return merge_into( originContext, context ); } -bool merge_into(QDomDocument& master, QDomDocument& sub) +bool merge_into(QDomDocument& originDocument, QDomDocument& alternateDocument) { - QDomElement top = sub.documentElement(); + QDomElement top = alternateDocument.documentElement(); QDomNode n = top.firstChild(); while (!n.isNull()) { if (n.isElement()) { QDomElement e = n.toElement(); if ( e.tagName() == "context" ) - if ( !merge_into( master, e ) ) + if ( !merge_into( originDocument, e ) ) return false; } n = n.nextSibling(); @@ -178,16 +186,16 @@ int main(int argc, char** argv) return 1; } - QDomDocument doc("master"); - if ( !load_file(argv[1], doc) ) + QDomDocument originDocument("origin"); + if ( !load_file(argv[1], originDocument) ) return 1; for (int i = 2; i < argc; ++i) { - QDomDocument subdoc("sub"); - if ( !load_file(argv[i], subdoc) ) + QDomDocument alternateDocument("alternate"); + if ( !load_file(argv[i], alternateDocument) ) return 1; - if ( !merge_into( doc, subdoc ) ) + if ( !merge_into( originDocument, alternateDocument ) ) return 1; } @@ -200,7 +208,7 @@ int main(int argc, char** argv) return 1; } - outfile.write( doc.toString(4).toUtf8() ); + outfile.write( originDocument.toString(4).toUtf8() ); outfile.close(); return 0; From a9ec5921855f079c549d26d8273708390c06b630 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 12 Jun 2020 13:12:50 +0200 Subject: [PATCH 099/335] CI: change of default branch --- README.md | 15 ++++++++------- ci/travis-coverity.sh | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7b12532e5..2544ebb69 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ --------- [![GitHub release](https://img.shields.io/github/release/calamares/calamares.svg)](https://github.com/calamares/calamares/releases) -[![Travis Build Status](https://travis-ci.org/calamares/calamares.svg?branch=master)](https://travis-ci.org/calamares/calamares) +[![Travis Build Status](https://travis-ci.org/calamares/calamares.svg?branch=calamares)](https://travis-ci.org/calamares/calamares) [![Coverity Scan Build Status](https://scan.coverity.com/projects/5389/badge.svg)](https://scan.coverity.com/projects/5389) -[![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/master/LICENSE) +[![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/calamares/LICENSE) | [Report a Bug](https://github.com/calamares/calamares/issues/new) | [Translate](https://www.transifex.com/projects/p/calamares/) | [Contribute](https://github.com/calamares/calamares/wiki/Develop-Guide) | Freenode (IRC): #calamares | [Wiki](https://github.com/calamares/calamares/wiki) | |:-----------------------------------------:|:----------------------:|:-----------------------:|:--------------------------:|:--------------------------:| @@ -23,11 +23,12 @@ Main: * KDE Frameworks KCoreAddons (>= 5.58 recommended) * PythonQt (optional, deprecated) -Modules: -* Individual modules may have their own requirements; - these are listed in CMake output. Particular requirements (not complete): -* *fsresizer* KPMCore >= 3.3 -* *partition* KPMCore >= 3.3 +Individual modules may have their own requirements; +these are listed in CMake output. +Particular requirements (not complete): + +* *fsresizer* KPMCore >= 3.3 (>= 4.1 recommended) +* *partition* KPMCore >= 3.3 (>= 4.1 recommended) * *users* LibPWQuality (optional) ### Building diff --git a/ci/travis-coverity.sh b/ci/travis-coverity.sh index 88b6a2ab5..78535df65 100755 --- a/ci/travis-coverity.sh +++ b/ci/travis-coverity.sh @@ -29,6 +29,6 @@ tar caf calamares-ci.tar.xz cov-int curl -k --form token=$COVERITY_SCAN_TOKEN \ --form email=groot@kde.org \ --form file=@calamares-ci.tar.xz \ - --form version="master-`date -u +%Y%m%d`" \ - --form description="master on `date -u`" \ + --form version="calamares-`date -u +%Y%m%d`" \ + --form description="calamares on `date -u`" \ https://scan.coverity.com/builds?project=calamares%2Fcalamares From 8ba9d394ec68df4e52e31540c18076d72031811f Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 12 Jun 2020 14:36:48 +0200 Subject: [PATCH 100/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_bn.ts | 3827 ++++++++++++++++++++++++++++++++++++++ lang/calamares_es.ts | 72 +- lang/calamares_eu.ts | 20 +- lang/calamares_it_IT.ts | 52 +- lang/calamares_lv.ts | 3829 +++++++++++++++++++++++++++++++++++++++ lang/calamares_sq.ts | 10 +- lang/calamares_sv.ts | 184 +- 7 files changed, 7851 insertions(+), 143 deletions(-) create mode 100644 lang/calamares_bn.ts create mode 100644 lang/calamares_lv.ts diff --git a/lang/calamares_bn.ts b/lang/calamares_bn.ts new file mode 100644 index 000000000..a74690da3 --- /dev/null +++ b/lang/calamares_bn.ts @@ -0,0 +1,3827 @@ + + + + + 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 + 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 + + + + + Reload Stylesheet + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + সম্পন্ন + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + Running command %1 %2 + + + + + Calamares::PythonJob + + + Running %1 operation. + + + + + Bad working directory path + খারাপ ওয়ার্কিং ডিরেক্টরি পাথ + + + + Working directory %1 for python job %2 is not readable. + ওয়ার্কিং ডিরেক্টরি 1% পাইথন কাজের জন্য % 2 পাঠযোগ্য নয়। + + + + Bad main script file + খারাপ প্রধান স্ক্রিপ্ট ফাইল + + + + Main script file %1 for python job %2 is not readable. + মূল স্ক্রিপ্ট ফাইল 1% পাইথন কাজের জন্য 2% পাঠযোগ্য নয়। + + + + Boost.Python error in job "%1". + বুস্ট.পাইথন কাজে 1% ত্রুটি + + + + Calamares::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Waiting for %n module(s). + + + + + + + + (%n second(s)) + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + ইনস্টলেশন ব্যর্থ হয়েছে + + + + Would you like to paste the install log to the web? + + + + + Error + ত্রুটি + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + 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: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + 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> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + এবং পরবর্তী + + + + &Back + এবং পেছনে + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + অজানা ব্যতিক্রম প্রকার + + + + unparseable Python error + আনপারসেবল পাইথন ত্রুটি + + + + unparseable Python traceback + আনপারসেবল পাইথন ট্রেসব্যাক + + + + Unfetchable Python error. + অপরিবর্তনীয় পাইথন ত্রুটি। + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + এবং পেছনে + + + + &Next + এবং পরবর্তী + + + + &Cancel + + + + + %1 Setup Program + + + + + %1 Installer + 1% ইনস্টল + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <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. + + + + + + + + <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 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. + + + + + 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. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + 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. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + একটি পার্টিশন তৈরি করুন + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + পার্টিশন এবং প্রকার: + + + + &Primary + এবং প্রাথমিক + + + + E&xtended + সম্প্রসারিত + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + এবং মাউন্ট পয়েন্ট: + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</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. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + 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 + + + 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. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + 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 + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <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 setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</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'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB 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. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + 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. + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + 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 + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <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> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + 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 + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + login + + + + + 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> + + + + + Computer Name + + + + + 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> + + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + 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 + size[number] filesystem[name] + + + + + 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>%3</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. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + 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. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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 + + + %1 (%2) + + + + + Requirements checking for module <i>%1</i> is complete. + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Default Keyboard Model + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + RemoveUserJob + + + Remove live user from target system + + + + + 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: + + + + + 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>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + 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'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + 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 %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <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 %1MiB <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 %1MiB <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 setup procedure. + + + + + 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> + + + + + <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 + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your username is too long. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + + + + + Value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + 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 + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + 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. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + + + + + + Layouts + + + + + + Keyboard Layout + + + + + Models + + + + + Variants + + + + + Test your keyboard + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index f54b26d8b..242f5a13f 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -372,7 +372,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Cancel setup without changing the system. - + Cancelar instalación sin cambiar el sistema. @@ -402,7 +402,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Cancel setup? - + ¿Cancelar la instalación? @@ -776,7 +776,7 @@ Saldrá del instalador y se perderán todos los cambios. <h1>Welcome to %1 setup.</h1> - + <h1>Bienvenido al instalador %1.</h1> @@ -1362,12 +1362,12 @@ Saldrá del instalador y se perderán todos los cambios. There is not enough drive space. At least %1 GiB is required. - + No hay suficiente espació en el disco duro. Se requiere al menos %1 GB libre. has at least %1 GiB working memory - + tiene al menos %1 GB de memoria. @@ -1397,12 +1397,12 @@ Saldrá del instalador y se perderán todos los cambios. is running the installer as an administrator (root) - + esta ejecutándose con permisos de administrador (root). The setup program is not running with administrator rights. - + El instalador no esta ejecutándose con permisos de administrador. @@ -1417,7 +1417,7 @@ Saldrá del instalador y se perderán todos los cambios. The screen is too small to display the setup program. - + La pantalla es demasiado pequeña para mostrar el instalador. @@ -1464,7 +1464,7 @@ Saldrá del instalador y se perderán todos los cambios. Creating initramfs with mkinitcpio. - + Creando initramfs con mkinitcpio. @@ -1472,7 +1472,7 @@ Saldrá del instalador y se perderán todos los cambios. Creating initramfs. - + Creando initramfs. @@ -1563,7 +1563,7 @@ Saldrá del instalador y se perderán todos los cambios. <h1>License Agreement</h1> - + <h1>Contrato de licencia</h1> @@ -1651,12 +1651,12 @@ Saldrá del instalador y se perderán todos los cambios. Hide license text - + Ocultar licencia Show the license text - + Ver licencia @@ -1725,7 +1725,7 @@ Saldrá del instalador y se perderán todos los cambios. No partitions are defined. - + No hay particiones definidas. @@ -1779,12 +1779,12 @@ Saldrá del instalador y se perderán todos los cambios. Office software - + Programas de oficina Office package - + Paquete de oficina @@ -1804,12 +1804,12 @@ Saldrá del instalador y se perderán todos los cambios. Kernel - + Kernel Services - + Servicios @@ -1824,7 +1824,7 @@ Saldrá del instalador y se perderán todos los cambios. Applications - + Aplicaciónes @@ -1839,32 +1839,32 @@ Saldrá del instalador y se perderán todos los cambios. Office - + Oficina Multimedia - + Multimedia Internet - + Internet Theming - + Temas Gaming - + Juegos Utilities - + Utilidades @@ -2151,7 +2151,7 @@ Saldrá del instalador y se perderán todos los cambios. Password is empty - + La contraseña vacia @@ -2164,7 +2164,7 @@ Saldrá del instalador y se perderán todos los cambios. Product Name - + Nombre del producto @@ -2174,12 +2174,12 @@ Saldrá del instalador y se perderán todos los cambios. Long Product Description - + Descripción larga del producto Package Selection - + Selección de paquetes @@ -2192,7 +2192,7 @@ Saldrá del instalador y se perderán todos los cambios. Packages - + Paquetes @@ -2241,7 +2241,7 @@ Saldrá del instalador y se perderán todos los cambios. Your Full Name - + Su nombre completo @@ -2266,7 +2266,7 @@ Saldrá del instalador y se perderán todos los cambios. Computer Name - + Nombre de computadora @@ -2283,13 +2283,13 @@ Saldrá del instalador y se perderán todos los cambios. Password - + Contraseña Repeat Password - + Repita la contraseña @@ -2299,7 +2299,7 @@ Saldrá del instalador y se perderán todos los cambios. Require strong passwords. - + Requerir contraseñas seguras @@ -3635,7 +3635,7 @@ Salida: <h1>Welcome to %1 setup.</h1> - + <h1>Bienvenido al instalador %1.</h1> diff --git a/lang/calamares_eu.ts b/lang/calamares_eu.ts index 49caf27dc..a2d04b649 100644 --- a/lang/calamares_eu.ts +++ b/lang/calamares_eu.ts @@ -212,7 +212,7 @@ Loading ... - + Kargatzen ... @@ -222,7 +222,7 @@ Loading failed. - + Kargatzeak huts egin du. @@ -321,7 +321,7 @@ Continue with installation? - + Instalazioarekin jarraitu? @@ -576,7 +576,7 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - <strong>Diskoa ezabatu</strong><br/>Honek orain dauden datu guztiak <font color="red">ezbatuko</font> ditu biltegiratze-gailutik. + <strong>Diskoa ezabatu</strong><br/>Honek orain dauden datu guztiak <font color="red">ezabatuko</font> ditu biltegiratze-gailutik. @@ -3703,7 +3703,7 @@ Irteera: Back - + Atzera @@ -3711,7 +3711,7 @@ Irteera: Keyboard Model - + Teklatu modeloa @@ -3748,7 +3748,7 @@ Irteera: Test your keyboard - + Frogatu zure teklatua @@ -3790,7 +3790,7 @@ Irteera: Back - + Atzera @@ -3804,7 +3804,7 @@ Irteera: About - + Honi buruz @@ -3824,7 +3824,7 @@ Irteera: Donate - + Egin dohaintza diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index 2599b2e37..2f8a26f6a 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -706,7 +706,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Set keyboard layout to %1/%2. - Impostare il layout della tastiera a %1%2. + Impostare il layout della tastiera a %1/%2. @@ -721,17 +721,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Set timezone to %1/%2.<br/> - Imposta il fuso orario a %1%2.<br/> + Imposta il fuso orario a %1/%2.<br/> Network Installation. (Disabled: Incorrect configuration) - Installazione di rete. (Disabilitato: Configurazione scorretta) + Installazione di rete. (Disabilitato: Configurazione non valida) Network Installation. (Disabled: Received invalid groups data) - Installazione di rete. (Disabilitata: Ricevuti dati non validi dei gruppi) + Installazione di rete. (Disabilitata: Ricevuti dati dei gruppi non validi) @@ -746,22 +746,22 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - Questo computer non soddisfa i requisiti minimi per l'installazione di %1.<br/>L'installazione non può continuare. <a href="#details">Dettagli...</a> + Questo computer non soddisfa i requisiti minimi per la configurazione di %1.<br/>La configurazione non può continuare. <a href="#details">Dettagli...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - Questo computer non soddisfa i requisiti minimi per installare %1. <br/>L'installazione non può proseguire. <a href="#details">Dettagli...</a> + Questo computer non soddisfa i requisiti minimi per installare %1. <br/>L'installazione non può continuare. <a href="#details">Dettagli...</a> This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - Questo computer non soddisfa alcuni requisiti raccomandati per l'installazione di %1.<br/>L'installazione può continuare, ma alcune funzionalità potrebbero essere disabilitate. + Questo computer non soddisfa alcuni requisiti raccomandati per la configurazione di %1.<br/>La configurazione può continuare ma alcune funzionalità potrebbero essere disabilitate. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - Questo computer non soddisfa alcuni requisiti consigliati per l'installazione di %1. <br/>L'installazione può proseguire ma alcune funzionalità potrebbero non essere disponibili. + Questo computer non soddisfa alcuni requisiti consigliati per l'installazione di %1.<br/>L'installazione può continuare ma alcune funzionalità potrebbero non essere disponibili. @@ -771,17 +771,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Benvenuto nel programma di installazione Calamares di %1.</h1> + <h1>Benvenuto nel programma di configurazione Calamares per %1.</h1> <h1>Welcome to %1 setup.</h1> - <h1>Benvenuto nell'installazione di %1.</h1> + <h1>Benvenuto nella configurazione di %1.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Benvenuti nel programma di installazione Calamares per %1.</h1> + <h1>Benvenuti nel programma d'installazione Calamares per %1.</h1> @@ -880,12 +880,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Create new %2MiB partition on %4 (%3) with file system %1. - Crea una nuova partizione da %2MiB su %4 (%3) con file system %1 + Crea una nuova partizione da %2MiB su %4 (%3) con file system %1. Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - Creare nuova partizione di <strong>%2MiB</strong> su <strong>%4</strong> (%3) con file system <strong>%1</strong>. + Crea una nuova partizione di <strong>%2MiB</strong> su <strong>%4</strong> (%3) con file system <strong>%1</strong>. @@ -1015,7 +1015,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse The installer failed to create a volume group named '%1'. - Il programma di installazione non è riuscito a creare un gruppo di volumi denominato '%1'. + Il programma d'installazione non è riuscito a creare un gruppo di volumi denominato '%1'. @@ -1024,7 +1024,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Deactivate volume group named %1. - Disattiva gruppo di volumi denominato %1. + Disattiva il gruppo di volumi denominato %1. @@ -3799,7 +3799,27 @@ Output: </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> + <p>Questo è un file QML di esempio, che mostra le opzioni in RichText con contenuto scorrevole</p> + + <p>QML con RichText può utilizzare tag HTML, il contenuto scorrevole è utile per i touchscreen.</p> + + <p><b>Questo è un testo in grassetto</b></p> + <p><i>Questo è un testo in corsivo</i></p> + <p><u>Questo è un testo sottolineato</u></p> + <p><center>Questo testo sarà allineato al centro.</center></p> + <p><s>Questo è un testo barrato</s></p> + + <p>Esempio di codice: + <code>ls -l /home</code></p> + + <p><b>Liste:</b></p> + <ul> + <li>Sistemi con CPU Intel</li> + <li>Sistemi con CPU AMD</li> + </ul> + + <p>La barra di scorrimento verticale è regolabile, la larghezza corrente è impostata a 10.</p> diff --git a/lang/calamares_lv.ts b/lang/calamares_lv.ts new file mode 100644 index 000000000..4d6272e18 --- /dev/null +++ b/lang/calamares_lv.ts @@ -0,0 +1,3829 @@ + + + + + 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 + + + + + Reload Stylesheet + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + 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::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Waiting for %n module(s). + + + + + + + + + (%n second(s)) + + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + + + + + Would you like to paste the install log to the web? + + + + + Error + + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + 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: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + 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> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + + + + + &Back + + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + + + + + &Next + + + + + &Cancel + + + + + %1 Setup Program + + + + + %1 Installer + + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <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. + + + + + + + + <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 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. + + + + + 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. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + 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. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</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. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + 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 + + + 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. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + 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 + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <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 setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</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'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB 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. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + 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. + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + 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 + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <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> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + 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 + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + login + + + + + 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> + + + + + Computer Name + + + + + 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> + + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + 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 + size[number] filesystem[name] + + + + + 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>%3</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. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + 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. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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 + + + %1 (%2) + + + + + Requirements checking for module <i>%1</i> is complete. + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Default Keyboard Model + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + RemoveUserJob + + + Remove live user from target system + + + + + 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: + + + + + 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>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + 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'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + 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 %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <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 %1MiB <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 %1MiB <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 setup procedure. + + + + + 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> + + + + + <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 + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your username is too long. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + + + + + Value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + 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 + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + 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. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + + + + + + Layouts + + + + + + Keyboard Layout + + + + + Models + + + + + Variants + + + + + Test your keyboard + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + diff --git a/lang/calamares_sq.ts b/lang/calamares_sq.ts index 869a1f18c..cbbc2e9d9 100644 --- a/lang/calamares_sq.ts +++ b/lang/calamares_sq.ts @@ -124,7 +124,7 @@ Install - Instaloje + Instalim @@ -520,7 +520,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. After: - Pas: + Më Pas: @@ -937,7 +937,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - Krijoni tabelë pjesësh të re <strong>%1</strong> te <strong>%2</strong> (%3). + Krijo tabelë pjesësh të re <strong>%1</strong> te <strong>%2</strong> (%3). @@ -1307,7 +1307,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Finish - Përfundoje + Përfundim @@ -3080,7 +3080,7 @@ Përfundim: Partitioning - Pjesëzim + Pjesëtim diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index c9824f26e..82238ca09 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -106,7 +106,7 @@ Widget Tree - + Widgetträd @@ -246,7 +246,7 @@ System-requirements checking is complete. - + Kontroll av systemkrav är färdig @@ -264,7 +264,7 @@ Would you like to paste the install log to the web? - + Vill du ladda upp installationsloggen på webben? @@ -291,7 +291,7 @@ Install Log Paste URL - + URL till installationslogg @@ -306,7 +306,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 kan inte installeras. Calamares kunde inte ladda alla konfigurerade moduler. Detta är ett problem med hur Calamares används av distributionen. @@ -326,7 +326,7 @@ The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + %1-installeraren är på väg att göra ändringar på disk för att installera %2.<br/><strong>Du kommer inte att kunna ångra dessa ändringar.</strong> @@ -412,7 +412,7 @@ Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Vill du verkligen avbryta den nuvarande uppstartsprocessen? Uppstartsprogrammet kommer avsluta och alla ändringar kommer förloras. @@ -524,7 +524,7 @@ Alla ändringar kommer att gå förlorade. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - + <strong>Manuell partitionering</strong><br/>Du kan skapa eller ändra storlek på partitioner själv. UEFI-installationer kräver en GPT-partitionstabell och en <strong>fat32-partition för /boot på 512MB</strong>, använd en existerande utan formatering eller skapa en. @@ -688,7 +688,7 @@ Alla ändringar kommer att gå förlorade. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Kommandot körs på värden och behöver känna till sökvägen till root, men rootMountPoint är inte definierat. @@ -716,7 +716,7 @@ Alla ändringar kommer att gå förlorade. The numbers and dates locale will be set to %1. - + Systemspråket för siffror och datum kommer sättas till %1. @@ -731,7 +731,7 @@ Alla ändringar kommer att gå förlorade. Network Installation. (Disabled: Received invalid groups data) - + Nätverksinstallation. (Inaktiverad: Fick felaktig gruppdata) @@ -1070,12 +1070,12 @@ Alla ändringar kommer att gå förlorade. 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. - + Detta är en <strong>loop</strong>enhet.<br><br>Det är en pseudo-enhet som inte har någon partitionstabell, och som gör en fil tillgänglig som en blockenhet. Denna typ av upplägg innehåller vanligtvis ett enda filsystem. 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. - + Installationsprogrammet <strong>kan inte hitta någon partitionstabell</strong> på den valda lagringsenheten.<br><br>Antingen har enheten ingen partitionstabell, eller så är partitionstabellen trasig eller av okänd typ.<br>Installationsprogrammet kan skapa en ny partitionstabell åt dig, antingen automatiskt, eller genom sidan för manuell partitionering. @@ -1085,7 +1085,7 @@ Alla ändringar kommer att gå förlorade. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>Denna partitionstabell är endast lämplig på äldre system som startar från en <strong>BIOS</strong>-startmiljö. GPT rekommenderas i de flesta andra fall.<br><br><strong>Varning:</strong> MBR-partitionstabellen är en föråldrad standard från MS-DOS-tiden.<br>Endast 4 <em>primära</em> partitioner kan skapas, och av dessa 4 kan en vara en <em>utökad</em> partition, som i sin tur kan innehålla många <em>logiska</em> partitioner. @@ -1278,7 +1278,7 @@ Alla ändringar kommer att gå förlorade. <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 setup program.</p></body></html> - + <html><head/><body><p>När denna ruta är ikryssad kommer systemet starta om omedelbart när du klickar på <span style="font-style:italic;">Klar</span> eller stänger installationsprogrammet.</p></body></html> @@ -1288,7 +1288,7 @@ Alla ändringar kommer att gå förlorade. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>När denna ruta är ikryssad kommer systemet starta om omedelbart när du klickar på <span style="font-style:italic;">Klar</span> eller stänger installationsprogrammet.</p></body></html> @@ -1573,27 +1573,27 @@ Alla ändringar kommer att gå förlorade. Please review the End User License Agreements (EULAs). - + Vänligen läs igenom licensavtalen för slutanvändare (EULA). This setup procedure will install proprietary software that is subject to licensing terms. - + Denna installationsprocess kommer installera proprietär mjukvara för vilken särskilda licensvillkor gäller. If you do not agree with the terms, the setup procedure cannot continue. - + Om du inte accepterar villkoren kan inte installationsproceduren fortsätta. This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Denna installationsprocess kan installera proprietär mjukvara för vilken särskilda licensvillkor gäller, för att kunna erbjuda ytterligare funktionalitet och förbättra användarupplevelsen. If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Om du inte godkänner villkoren kommer inte proprietär mjukvara att installeras, och alternativ med öppen källkod kommer användas istället. @@ -1690,7 +1690,7 @@ Alla ändringar kommer att gå förlorade. The numbers and dates locale will be set to %1. - + Systemspråket för siffror och datum kommer sättas till %1. @@ -1732,7 +1732,7 @@ Alla ändringar kommer att gå förlorade. Encrypted rootfs setup error - + Fel vid inställning av krypterat rootfs @@ -1946,7 +1946,7 @@ Alla ändringar kommer att gå förlorade. The password differs with case changes only - + Endast stora och små bokstäver skiljer lösenorden åt @@ -1961,7 +1961,7 @@ Alla ändringar kommer att gå förlorade. The password contains words from the real name of the user in some form - + Lösenordet innehåller ord från användarens namn i någon form @@ -2001,7 +2001,7 @@ Alla ändringar kommer att gå förlorade. The password contains less than %1 non-alphanumeric characters - + Lösenordet innehåller färre än %1 icke alfanumeriska tecken @@ -2021,22 +2021,22 @@ Alla ändringar kommer att gå förlorade. The password is just rotated old one - + Lösenordet är ett roterat gammalt lösenord The password contains less than %1 character classes - + Lösenordet innehåller färre än %1 teckenklasser The password does not contain enough character classes - + Lösenordet innehåller inte tillräckligt många teckenklasser The password contains more than %1 same characters consecutively - + Lösenordet innehåller fler än %1 likadana tecken i rad @@ -2046,22 +2046,22 @@ Alla ändringar kommer att gå förlorade. The password contains more than %1 characters of the same class consecutively - + Lösenordet innehåller fler än %1 tecken från samma klass i rad The password contains too many characters of the same class consecutively - + Lösenordet innehåller för många tecken från samma klass i rad The password contains monotonic sequence longer than %1 characters - + Lösenordet innehåller en monoton sekvens längre än %1 tecken The password contains too long of a monotonic character sequence - + Lösenordet innehåller en för lång monoton teckensekvens @@ -2071,22 +2071,22 @@ Alla ändringar kommer att gå förlorade. Cannot obtain random numbers from the RNG device - + Kan inte hämta slumptal från slumptalsgeneratorn Password generation failed - required entropy too low for settings - + Lösenordsgenerering misslyckades - för lite entropi tillgänglig för givna inställningar The password fails the dictionary check - %1 - + Lösenordet klarar inte ordlistekontrollen - %1 The password fails the dictionary check - + Lösenordet klarar inte ordlistekontrollen @@ -2184,7 +2184,7 @@ Alla ändringar kommer att gå förlorade. Please pick a product from the list. The selected product will be installed. - + Välj en produkt från listan. Den valda produkten kommer att installeras. @@ -2294,7 +2294,7 @@ Alla ändringar kommer att gå förlorade. When this box is checked, password-strength checking is done and you will not be able to use a weak password. - + När den här rutan är förkryssad kommer kontroll av lösenordsstyrka att genomföras, och du kommer inte kunna använda ett svagt lösenord. @@ -2477,7 +2477,7 @@ Alla ändringar kommer att gå förlorade. The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. - + Partitionstabellen på %1 har redan %2 primära partitioner och inga fler kan läggas till. Var god ta bort en primär partition och lägg till en utökad partition istället. @@ -2555,12 +2555,12 @@ Alla ändringar kommer att gå förlorade. 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>%3</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. - + En EFI-systempartition krävs för att starta %1. <br/><br/> För att konfigurera en EFI-systempartition, gå tillbaka och välj eller skapa ett FAT32-filsystem med <strong>%3</strong>-flaggan satt och monteringspunkt <strong>%2</strong>. <br/><br/>Du kan fortsätta utan att ställa in en EFI-systempartition, men ditt system kanske misslyckas med att starta. An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + En EFI-systempartition krävs för att starta %1. <br/><br/>En partition är konfigurerad med monteringspunkt <strong>%2</strong>, men dess <strong>%3</strong>-flagga är inte satt.<br/>För att sätta flaggan, gå tillbaka och redigera partitionen.<br/><br/>Du kan fortsätta utan att sätta flaggan, men ditt system kanske misslyckas med att starta @@ -2575,7 +2575,7 @@ Alla ändringar kommer att gå förlorade. A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + En GPT-partitionstabell är det bästa alternativet för alla system. Detta installationsprogram stödjer det för system med BIOS också.<br/><br/>För att konfigurera en GPT-partitionstabell på BIOS (om det inte redan är gjort), gå tillbaka och sätt partitionstabell till GPT, skapa sedan en oformaterad partition på 8MB med <strong>bios_grub</strong>-flaggan satt.<br/><br/>En oformaterad partition på 8MB är nödvändig för att starta %1 på ett BIOS-system med GPT. @@ -2585,12 +2585,12 @@ Alla ändringar kommer att gå förlorade. 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. - + En separat uppstartspartition skapades tillsammans med den krypterade rootpartitionen, men uppstartspartitionen är inte krypterad.<br/><br/>Det finns säkerhetsproblem med den här inställningen, eftersom viktiga systemfiler sparas på en okrypterad partition.<br/>Du kan fortsätta om du vill, men upplåsning av filsystemet kommer hända senare under uppstart av systemet.<br/>För att kryptera uppstartspartitionen, gå tillbaka och återskapa den, och välj <strong>Kryptera</strong> i fönstret när du skapar partitionen. has at least one disk device available. - + har åtminstone en diskenhet tillgänglig. @@ -2603,13 +2603,13 @@ Alla ändringar kommer att gå förlorade. Plasma Look-and-Feel Job - + Jobb för Plasmas utseende och känsla Could not select KDE Plasma Look-and-Feel package - + Kunde inte välja KDE Plasma-paket för utseende och känsla @@ -2622,12 +2622,12 @@ Alla ändringar kommer att gå förlorade. 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. - + Var god välj ett utseende och känsla för KDE Plasma skrivbordet. Du kan hoppa över detta steget och ställa in utseende och känsla när systemet är installerat. Klicka på ett val för utseende och känsla för att få en förhandsgranskning av det valet. 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. - + Var god välj ett utseende och känsla för KDE Plasma skrivbordet. Du kan hoppa över detta steget och ställa in utseende och känsla när systemet är installerat. Klicka på ett val för utseende och känsla för att få en förhandsgranskning av det valet. @@ -2635,7 +2635,7 @@ Alla ändringar kommer att gå förlorade. Look-and-Feel - + Utseende och känsla @@ -2735,7 +2735,7 @@ Utdata: Requirements checking for module <i>%1</i> is complete. - + Kontroll av krav för modul <i>%1</i> är färdig. @@ -2779,7 +2779,7 @@ Utdata: Path <pre>%1</pre> must be an absolute path. - + Sökväg <pre>%1</pre> måste vara en absolut sökväg. @@ -2889,7 +2889,7 @@ Utdata: <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>%2</strong><br/><br/>Kan inte hitta en EFI-systempartition någonstans på detta system. Var god gå tillbaka och använd manuell partitionering för att installera %1. @@ -2914,7 +2914,7 @@ Utdata: Resize Filesystem Job - + Jobb för storleksförändring av filsystem @@ -2924,7 +2924,7 @@ Utdata: The file-system resize job has an invalid configuration and will not run. - + Jobbet för storleksförändring av filsystem har en felaktig konfiguration och kommer inte köras. @@ -2934,7 +2934,7 @@ Utdata: Calamares cannot start KPMCore for the file-system resize job. - + Calamares kan inte starta KPMCore för jobbet att ändra filsystemsstorlek. @@ -2948,34 +2948,34 @@ Utdata: The filesystem %1 could not be found in this system, and cannot be resized. - + Kunde inte hitta filsystemet %1 på systemet, och kan inte ändra storlek på det. The device %1 could not be found in this system, and cannot be resized. - + Kunde inte hitta enheten %1 på systemet, och kan inte ändra storlek på den. The filesystem %1 cannot be resized. - + Det går inte att ändra storlek på filsystemet %1. The device %1 cannot be resized. - + Det går inte att ändra storlek på enheten %1. The filesystem %1 must be resized, but cannot. - + Filsystemet %1 måste ändra storlek, men storleken kan inte ändras. The device %1 must be resized, but cannot - + Enheten %1 måste ändra storlek, men storleken kan inte ändras @@ -3015,7 +3015,7 @@ Utdata: Resize volume group named %1 from %2 to %3. - + Ändra storlek på volymgruppen som heter %1 från %2 till %3. @@ -3311,7 +3311,7 @@ Utdata: Shell Processes Job - + Jobb för skalprocesser @@ -3328,7 +3328,7 @@ Utdata: This is an overview of what will happen once you start the setup procedure. - + Detta är en översikt över vad som kommer hända när du startar installationsprocessen. @@ -3364,7 +3364,7 @@ Utdata: HTTP request timed out. - + HTTP-begäran tog för lång tid. @@ -3411,7 +3411,7 @@ Utdata: <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>Genom att välja detta, kommer du inte skicka <span style=" font-weight:600;">någon information alls</span> om din installation.</p></body></html> @@ -3426,7 +3426,7 @@ Utdata: 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. - + Genom att välja detta, kommer du skicka information om din installation och hårdvara. Denna information kommer <b>enbart skickas en gång</b> efter att installationen slutförts. @@ -3541,7 +3541,7 @@ Utdata: Physical Extent Size: - + Storlek på fysisk volymdel (PE): @@ -3566,7 +3566,7 @@ Utdata: Quantity of LVs: - + Antal LV: @@ -3665,7 +3665,7 @@ Utdata: <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Tack till <a href="https://calamares.io/team/">Calamares-teamet</a> och <a href="https://www.transifex.com/calamares/calamares/">Calamares översättar-team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> utveckling sponsras av <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3700,7 +3700,18 @@ Utdata: development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/> + <strong>%2<br/> + for %3</strong><br/><br/> + Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> + Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Tack till <a href='https://calamares.io/team/'>Calamares-teamet</a> + och <a href='https://www.transifex.com/calamares/calamares/'>Calamares + översättar-team</a>.<br/><br/> + <a href='https://calamares.io/'>Calamares</a> + utveckling sponsras av <br/> + <a href='http://www.blue-systems.com/'>Blue Systems</a> - + Liberating Software. @@ -3718,7 +3729,7 @@ Utdata: Pick your preferred keyboard model or use the default one based on the detected hardware - + Välj din föredragna tangentbordsmodell, eller använd ett förval baserat på vilken hårdvara vi känt av @@ -3788,7 +3799,27 @@ Utdata: </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> + <p>Detta är en exempelfil för QML, som visar inställningar för RichText och innehåll som är Flickable.</p> + + <p>QML med RichText kan använda HTML-taggar. Innehåll som är Flickable är användbart på pekskärmar.</p> + + <p><b>Detta är fet text</b></p> + <p><i>Detta är kursiv text</i></p> + <p>Detta är understruken text</p> + <p><center>Denna text är centrerad.</center></p> + <p><s>Detta är överstruket</s></p> + + <p>Kodexample: + <code>ls -l /home</code></p> + + <p><b>Listor:</b></p> + <ul> + <li>System med Intel-processor</li> + <li>System med AMD-processor</li> + </ul> + + <p>Den vertikala rullningslisten är justerbar, nuvarande bredd är satt till 10.</p> @@ -3802,7 +3833,8 @@ Utdata: <h3>Welcome to the %1 <quote>%2</quote> installer</h3> <p>This program will ask you some questions and set up %1 on your computer.</p> - + <h3>Välkommen till %2 installationsprogram för <quote>%1</quote></h3> + <p>Detta program kommer ställa några frågor och installera %1 på din dator.</p> From ba89b9f7f208a4e3b9032b28e73e73aae448dde4 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 12 Jun 2020 14:36:48 +0200 Subject: [PATCH 101/335] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/bn/LC_MESSAGES/dummypythonqt.mo | Bin 0 -> 380 bytes .../lang/bn/LC_MESSAGES/dummypythonqt.po | 42 ++++++++++++++++++ .../lang/lv/LC_MESSAGES/dummypythonqt.mo | Bin 0 -> 415 bytes .../lang/lv/LC_MESSAGES/dummypythonqt.po | 42 ++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 src/modules/dummypythonqt/lang/bn/LC_MESSAGES/dummypythonqt.mo create mode 100644 src/modules/dummypythonqt/lang/bn/LC_MESSAGES/dummypythonqt.po create mode 100644 src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.mo create mode 100644 src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.po diff --git a/src/modules/dummypythonqt/lang/bn/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/bn/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 0000000000000000000000000000000000000000..a8045f8df34f2820ee38ebc6aed4560395b9f24d GIT binary patch literal 380 zcmYL@!A`d~`@G4TM=WxG9)x}*odVu&IQR_;p~%9?h!*ui!xIEsD~HOF{HyU193C8PDk0SXimfmfUGkn!NPN0$Uv1EkR26zHRmmY, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"PO-Revision-Date: 2016-12-16 12:18+0000\n" +"Language-Team: Bengali (https://www.transifex.com/calamares/teams/20061/bn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/dummypythonqt/main.py:84 +msgid "Click me!" +msgstr "" + +#: src/modules/dummypythonqt/main.py:94 +msgid "A new QLabel." +msgstr "" + +#: src/modules/dummypythonqt/main.py:97 +msgid "Dummy PythonQt ViewStep" +msgstr "" + +#: src/modules/dummypythonqt/main.py:183 +msgid "The Dummy PythonQt Job" +msgstr "" + +#: src/modules/dummypythonqt/main.py:186 +msgid "This is the Dummy PythonQt Job. The dummy job says: {}" +msgstr "" + +#: src/modules/dummypythonqt/main.py:190 +msgid "A status message for Dummy PythonQt Job." +msgstr "" diff --git a/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 0000000000000000000000000000000000000000..cdb444be01e74d2c19a8a37d66317e71e93d73cc GIT binary patch literal 415 zcmYL@QBT4!6ooPRv`3$PxFkv-TH4Np%#wv54nqW4aPnS988xF@+A{Em`1kxRcACIR zzVzJm+}!hXdGXzFI&)k(t{vx&J4da+A>8MKd+W?mu`WJEYSCncmO>j@CPmmCi7QsA<9BqG&7l8p~qcjP*O1P;yGG~O4d8*iCe+IC$xvCk7y65&uDNASu0FLE8bvBCR#IgQf)8nr zH5ufU7w0?8b2KjW)-X`z-)O@7KK$FTt!^j@Lkg`H)Rr_uN?`y5TpXIAGXtP*@H>64 F@e2W)aufgn literal 0 HcmV?d00001 diff --git a/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.po new file mode 100644 index 000000000..651fe2fa4 --- /dev/null +++ b/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.po @@ -0,0 +1,42 @@ +# 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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"PO-Revision-Date: 2016-12-16 12:18+0000\n" +"Language-Team: Latvian (https://www.transifex.com/calamares/teams/20061/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#: src/modules/dummypythonqt/main.py:84 +msgid "Click me!" +msgstr "" + +#: src/modules/dummypythonqt/main.py:94 +msgid "A new QLabel." +msgstr "" + +#: src/modules/dummypythonqt/main.py:97 +msgid "Dummy PythonQt ViewStep" +msgstr "" + +#: src/modules/dummypythonqt/main.py:183 +msgid "The Dummy PythonQt Job" +msgstr "" + +#: src/modules/dummypythonqt/main.py:186 +msgid "This is the Dummy PythonQt Job. The dummy job says: {}" +msgstr "" + +#: src/modules/dummypythonqt/main.py:190 +msgid "A status message for Dummy PythonQt Job." +msgstr "" From e34c0576e745178c5e85359a04fac7666699dd7a Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 12 Jun 2020 14:36:48 +0200 Subject: [PATCH 102/335] i18n: [python] Automatic merge of Transifex translations --- lang/python/bn/LC_MESSAGES/python.mo | Bin 0 -> 380 bytes lang/python/bn/LC_MESSAGES/python.po | 336 ++++++++++++++++++++++++++ lang/python/hu/LC_MESSAGES/python.po | 2 +- lang/python/lv/LC_MESSAGES/python.mo | Bin 0 -> 415 bytes lang/python/lv/LC_MESSAGES/python.po | 338 +++++++++++++++++++++++++++ lang/python/sv/LC_MESSAGES/python.mo | Bin 5899 -> 7891 bytes lang/python/sv/LC_MESSAGES/python.po | 31 ++- 7 files changed, 696 insertions(+), 11 deletions(-) create mode 100644 lang/python/bn/LC_MESSAGES/python.mo create mode 100644 lang/python/bn/LC_MESSAGES/python.po create mode 100644 lang/python/lv/LC_MESSAGES/python.mo create mode 100644 lang/python/lv/LC_MESSAGES/python.po diff --git a/lang/python/bn/LC_MESSAGES/python.mo b/lang/python/bn/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..b067dcf7187f1142e0012d7560c7ca481e0009bb GIT binary patch literal 380 zcmYL@!A=4(5QZ^&>d~`@G4TM=Zo6o7DcJ+yVu&IeT)CH}EH%6BrY(XG;_LY=b~S-N z`7$$^`7{5|`Pp~N>%?>6x$>NPZaj@5&(JS>zBV@prAB{<+~LUzFNCpDD+cLc^gMV< zV3Ew~_1r8Lq5ci+zymisZcH6*s~X=Pj0WDZLNLQjrdt zPNvB*X&6v6(#i?taQ0RE2u|!BsY@?0e0DIAOHXW literal 0 HcmV?d00001 diff --git a/lang/python/bn/LC_MESSAGES/python.po b/lang/python/bn/LC_MESSAGES/python.po new file mode 100644 index 000000000..c0feed0ec --- /dev/null +++ b/lang/python/bn/LC_MESSAGES/python.po @@ -0,0 +1,336 @@ +# 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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Bengali (https://www.transifex.com/calamares/teams/20061/bn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" + +#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 +#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 +#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 +msgid "Configuration Error" +msgstr "" + +#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 +#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 +#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 +#: src/modules/initramfscfg/main.py:99 +msgid "No root mount point is given for

{!s}
to use." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 +#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 +#: src/modules/rawfs/main.py:172 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:399 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:400 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:405 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:406 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 +#: src/modules/unpackfs/main.py:446 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:423 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:427 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:433 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:447 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/displaymanager/main.py:515 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:516 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:577 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:578 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:661 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:662 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:736 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:737 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:768 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:769 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:895 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:896 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:978 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" diff --git a/lang/python/hu/LC_MESSAGES/python.po b/lang/python/hu/LC_MESSAGES/python.po index 3fe19a8ec..eece1030a 100644 --- a/lang/python/hu/LC_MESSAGES/python.po +++ b/lang/python/hu/LC_MESSAGES/python.po @@ -5,7 +5,7 @@ # # Translators: # Adriaan de Groot , 2018 -# Balázs Meskó , 2018 +# Balázs Meskó , 2018 # miku84, 2019 # Lajos Pasztor , 2019 # diff --git a/lang/python/lv/LC_MESSAGES/python.mo b/lang/python/lv/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..f6651cf375a665bdc32888dbe73cb0784d499e9a GIT binary patch literal 415 zcmYL@QBT4!6oobVv`3$PxFkv-TH1oqQL+%kVTd3LPTuP%V`j8VTL%6R|DM0aP7^rE zm!6xRn|ppP&c9EbP92wyE617R)=|lK2>01_Z=m~dNWTtZ`QZDAP3yWOs3HJ2t^iG3?k8=UZ*Z@3l)Teo6xn~-~o^Ab0` z>3A9*o6;8XhDur?EsDPiSHX(C#YN6D*@I-wwGlRWk4MNq=BiUGp;0IkwajG7!2ihX zp(ca8^rC#Ld5%U(Zwv!j{Ea5)^x)qH4S7vT5KySsp|YeFPzrq@;NnmVoaqB~L%Z4Y GPJRIf0&*At literal 0 HcmV?d00001 diff --git a/lang/python/lv/LC_MESSAGES/python.po b/lang/python/lv/LC_MESSAGES/python.po new file mode 100644 index 000000000..50d7ca7e4 --- /dev/null +++ b/lang/python/lv/LC_MESSAGES/python.po @@ -0,0 +1,338 @@ +# 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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Latvian (https://www.transifex.com/calamares/teams/20061/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" + +#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 +#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 +#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 +msgid "Configuration Error" +msgstr "" + +#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 +#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 +#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 +#: src/modules/initramfscfg/main.py:99 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 +#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 +#: src/modules/rawfs/main.py:172 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:399 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:400 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:405 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:406 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 +#: src/modules/unpackfs/main.py:446 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:423 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:427 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:433 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:447 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/displaymanager/main.py:515 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:516 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:577 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:578 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:661 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:662 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:736 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:737 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:768 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:769 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:895 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:896 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:978 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" diff --git a/lang/python/sv/LC_MESSAGES/python.mo b/lang/python/sv/LC_MESSAGES/python.mo index e903d55a925630030f02844ab74caef4486b65ba..20667a99cb68885e8344edcfc7e137421b6ddfda 100644 GIT binary patch delta 3198 zcmbW1TWl0n7{|{RYAv*da;YG;JrqGMEw_RoEl{w43Z;f%Ach#HyVKoacW3I%Y@t@N zPiVZM$wcu1Fp)MyA4sH$2@fSC8;$xRiIE3QNQfbj5Tk^|gy@66Z)UfYQe)ytPk(b} z&-pI@^L_K~${#o9ug#kJkz(v(KEd2yrj!BSo60}N%tw@Z0oE3I2sW`k2Oo#u!&Z0$ z&V%zSlv)SZ7MX6O664@4~tlL!zZB!pMswh*O%dJ);Hh`cn{8p zm6eghMNk51hhpadTmT1Q9Xtu=!1M4iSb&Z27ubw{^%oDdyjVId+PDesW8DoU)6bw7 z{2GdZ>reu^2jyJ#bX0W)B@h!zLT^J!=sc7_uEKhF8@AzJRaPmr5bl8MVG<&Z zIt^FAt8g_etBwq|LNRaY($nfVoG(uy{t!PMfR(ZZ8__g zp(Jp8Hu`Vl;VdsC@*8j~oQh7HU?1YEE`f4>Ba|9?sSf=m5{DOZSML`$T!13&4^T3`38lI#c_{{(pairP60`CkThv=n zYUd0TCGWr`Z~=#jMQw*ttOub40#InN1-TKjhqMIT6hS)1Gz1A6H4HJL#drcob1BCTFJvEUi3qe`b!vtWz2S_ zj4jM{OwNWwG8Or!M$57Pnx~CS3O-Dt5mqq8VQH-AL268ViT`lO9X-tysbxr2i+rWA zk_WC*RWi3R+n6G!j2#ie>?w3bw}wNm^BJb7OQzuvC8iah586z0#>g~cG1 zELFLg8IJb2lQ6fq@s?a)!thN!Xt>FR-m&&o;d>o7G8t{zI-YVJ$Jegu=Um%NXw!8a zSIZtfXy>w=Sg9gY-hk(u*|?u6ncDDwY;89Z!QM(8RFyY18;OMWOt;^Pi!&o@;!XRG zc5`-1#_Tuo6heXsmXu$fX?STJg^|!X+wz0oYvu*l%Inv-X4dI9A2!zOI@w9hjod9i zA6sF0eHmjwXARp(nv%8MYbA58;aiTaj~E^T#hq+l#`MkL(~7mv^;)(#_Fl^wUaHq? z=42YLIoH$!PEMx`V(?SEDQ;--9Vg@IJ|mvS0oFVp+0DerHx*s6`FpHn%J1ybN!P@I zJMQP2$}_Px?#tw2a&{y|!ZAH88PBP0jj9%8IA%8w~|`@N6s@T&nuGVZYO3 zackWfBji>@pu_p9}YtR$DW+v?WaffbYIb)RHkClbW(q^eq!EScA1(}0Jf=OaPb7tO;Vaj+`U}J3JLO!> z&rg($WN8`GH70gVU67yAuw{2?mv87E$My9jZhGCqusyk-*v$Hoi!-jqT6aItH@(E9 z6H#lW3^H*Im%#fCsql2vPJVErwt3&~oQ-)yEY%#)uo2<)1p(c^s8W-2N4`65A@PszAY}-r~hWVmM*hxg5 x*kvvDKs;?`nzcuXB;{gcpFgqF5Tn>?{ZtNNeXZP!xOz9?0t+HFy^$c6(!4??1mv{gk9wz9Ukuyqk>gD~mA zfr=u62v(v&(jzybiHL+CLj8+K+(`KT-oC_>Oh5DP?z}VeJTo0>?5j$?3a0lPVkxbd z_RcY;39pai4>6i<%uM`C}b-2p68*6#KiXnW3v+xI&;gk%0r2q^lC^Q5oFfyB{^~ z7^MXF+6pfdCkDW#V+ zU0DSmd5czm5lx5h|Ik9Xgi@baQAj~+B+Hb*3BHUSy`dfmaNN;t;nfP zUC)U+sl2>1&fwb#j*a9e?C<;mTN>zh*LTO-+;tuC*!GV2F1KNOXCl!VTh-pSv!kAV zTiiYke74O6>+Ji2=eDOX$Nnk|+S{SxRA=a!WA}wCQ{Te}oK)Y``;I+2?VEj6++|Nr KAF#JdX8r*mPnw

, 2020 +# Tobias Olausson , 2020 # #, fuzzy msgid "" @@ -14,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Luna Jernberg , 2020\n" +"Last-Translator: Tobias Olausson , 2020\n" "Language-Team: Swedish (https://www.transifex.com/calamares/teams/20061/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -113,7 +114,7 @@ msgstr "Ingen monteringspunkt för root partition" #: src/modules/unpackfs/main.py:400 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" -msgstr "" +msgstr "globalstorage innehåller ingen \"rootMountPoint\"-nyckel, så gör inget" #: src/modules/unpackfs/main.py:405 msgid "Bad mount point for root partition" @@ -121,7 +122,7 @@ msgstr "Dålig monteringspunkt för root partition" #: src/modules/unpackfs/main.py:406 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "rootMountPoint är \"{}\", vilket inte finns, så gör inget" #: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 #: src/modules/unpackfs/main.py:446 @@ -141,6 +142,8 @@ msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" +"Kunde inte hitta unsquashfs, se till att du har paketet squashfs-tools " +"installerat" #: src/modules/unpackfs/main.py:447 msgid "The destination \"{}\" in the target system is not a directory" @@ -159,6 +162,8 @@ msgstr "Kunde inte modifiera tjänst" msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"Anrop till systemctl {arg!s}i chroot returnerade felkod " +"{num!s}." #: src/modules/services-systemd/main.py:72 #: src/modules/services-systemd/main.py:76 @@ -175,7 +180,7 @@ msgstr "Kunde inte inaktivera systemd målsystem {name!s}." #: src/modules/services-systemd/main.py:80 msgid "Cannot mask systemd unit {name!s}." -msgstr "" +msgstr "Kan inte maskera systemd unit {name!s}" #: src/modules/services-systemd/main.py:82 msgid "" @@ -224,36 +229,42 @@ msgstr "Konfigurera OpenRC tjänster" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "" +msgstr "Kan inte lägga till tjänsten {name!s} till körnivå {level!s}." #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "" +msgstr "Kan inte ta bort tjänsten {name!s} från körnivå {level!s}." #: src/modules/services-openrc/main.py:70 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" +"Okänt tjänst-anrop {arg!s}för tjänsten {name!s} i körnivå " +"{level!s}." #: src/modules/services-openrc/main.py:103 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" +"Anrop till rc-update {arg!s} i chroot returnerade felkod " +"{num!s}." #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "" +msgstr "Begärd körnivå existerar inte" #: src/modules/services-openrc/main.py:111 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" +"Sökvägen till körnivå {level!s} är {path!s}, som inte " +"existerar." #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "" +msgstr "Begärd tjänst existerar inte" #: src/modules/services-openrc/main.py:120 msgid "" @@ -308,7 +319,7 @@ msgstr "Kunde inte konfigurera LightDM" #: src/modules/displaymanager/main.py:737 msgid "No LightDM greeter installed." -msgstr "" +msgstr "Ingen LightDM greeter installerad." #: src/modules/displaymanager/main.py:768 msgid "Cannot write SLIM configuration file" @@ -332,7 +343,7 @@ msgstr "" #: src/modules/displaymanager/main.py:978 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "Konfiguration för displayhanteraren var inkomplett" #: src/modules/initramfscfg/main.py:41 msgid "Configuring initramfs." From 713774ab4090717764021b822071158056cdcacc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 12 Jun 2020 14:50:12 +0200 Subject: [PATCH 103/335] i18n: adjust tooling to renamed resource --- .tx/config | 7 +------ ci/txpush.sh | 2 +- ci/txstats.py | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.tx/config b/.tx/config index 3cf9489f6..686a98bbe 100644 --- a/.tx/config +++ b/.tx/config @@ -1,17 +1,12 @@ [main] host = https://www.transifex.com -[calamares.calamares-master] +[calamares.calamares] file_filter = lang/calamares_.ts source_file = lang/calamares_en.ts source_lang = en type = QT -[calamares.dummypythonqt] -file_filter = src/modules/dummypythonqt/lang//LC_MESSAGES/dummypythonqt.po -source_file = src/modules/dummypythonqt/lang/dummypythonqt.pot -source_lang = en - [calamares.fdo] file_filter = lang/desktop_.desktop source_file = calamares.desktop diff --git a/ci/txpush.sh b/ci/txpush.sh index dc8c8c413..00d8d401b 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -101,7 +101,7 @@ if test -n "$XMLLINT" ; then $XMLLINT --c14n11 "$TS_FILE" | { echo "" ; cat - ; } | $XMLLINT --format --encode utf-8 -o "$TS_FILE".new - && mv "$TS_FILE".new "$TS_FILE" fi -tx push --source --no-interactive -r calamares.calamares-master +tx push --source --no-interactive -r calamares.calamares tx push --source --no-interactive -r calamares.fdo diff --git a/ci/txstats.py b/ci/txstats.py index e78a8ad9c..139ebe523 100755 --- a/ci/txstats.py +++ b/ci/txstats.py @@ -58,7 +58,7 @@ def get_tx_stats(token, verbose): """ import requests - r = requests.get("https://api.transifex.com/organizations/calamares/projects/calamares/resources/calamares-master/", auth=("api", token)) + r = requests.get("https://api.transifex.com/organizations/calamares/projects/calamares/resources/calamares/", auth=("api", token)) if r.status_code != 200: return 1 From 55abe0247bb7ece86277230c56488c0457a72317 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 14 Jun 2020 23:42:25 +0200 Subject: [PATCH 104/335] [libcalamares] Fix tests on 32-bit platforms - The size of a 2GiB partition (in bytes) is larger than the largest 32-bit signed integer; we hit signed overflow while calculating 2^11 * 2^10 * 2^10 and the test fails. - Switch the whole table of sizes to qint64 instead. - For testing purposes only, introduce a _qi suffix for qint64. FIXES #1430 --- src/libcalamares/partition/Tests.cpp | 63 +++++++++++++++------------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/src/libcalamares/partition/Tests.cpp b/src/libcalamares/partition/Tests.cpp index 7719f2e84..e52b8edf1 100644 --- a/src/libcalamares/partition/Tests.cpp +++ b/src/libcalamares/partition/Tests.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -103,36 +103,43 @@ PartitionSizeTests::testUnitComparison() QCOMPARE( original_compare( u1, u2 ), PartitionSize::unitsComparable( u1, u2 ) ); } +/* Operator to make the table in testUnitNormalisation_data easier to write */ +constexpr qint64 operator""_qi( unsigned long long m ) +{ + return qint64( m ); +} + void PartitionSizeTests::testUnitNormalisation_data() { QTest::addColumn< SizeUnit >( "u1" ); QTest::addColumn< int >( "v" ); - QTest::addColumn< long >( "bytes" ); - - QTest::newRow( "none" ) << SizeUnit::None << 16 << -1L; - QTest::newRow( "none" ) << SizeUnit::None << 0 << -1L; - QTest::newRow( "none" ) << SizeUnit::None << -2 << -1L; - - QTest::newRow( "percent" ) << SizeUnit::Percent << 0 << -1L; - QTest::newRow( "percent" ) << SizeUnit::Percent << 16 << -1L; - QTest::newRow( "percent" ) << SizeUnit::Percent << -2 << -1L; - - QTest::newRow( "KiB" ) << SizeUnit::KiB << 0 << -1L; - QTest::newRow( "KiB" ) << SizeUnit::KiB << 1 << 1024L; - QTest::newRow( "KiB" ) << SizeUnit::KiB << 1000 << 1024000L; - QTest::newRow( "KiB" ) << SizeUnit::KiB << 1024 << 1024 * 1024L; - QTest::newRow( "KiB" ) << SizeUnit::KiB << -2 << -1L; - - QTest::newRow( "MiB" ) << SizeUnit::MiB << 0 << -1L; - QTest::newRow( "MiB" ) << SizeUnit::MiB << 1 << 1024 * 1024L; - QTest::newRow( "MiB" ) << SizeUnit::MiB << 1000 << 1024 * 1024000L; - QTest::newRow( "MiB" ) << SizeUnit::MiB << 1024 << 1024 * 1024 * 1024L; - QTest::newRow( "MiB" ) << SizeUnit::MiB << -2 << -1L; - - QTest::newRow( "GiB" ) << SizeUnit::GiB << 0 << -1L; - QTest::newRow( "GiB" ) << SizeUnit::GiB << 1 << 1024 * 1024 * 1024L; - QTest::newRow( "GiB" ) << SizeUnit::GiB << 2 << 2048 * 1024 * 1024L; + QTest::addColumn< qint64 >( "bytes" ); + + QTest::newRow( "none" ) << SizeUnit::None << 16 << -1_qi; + QTest::newRow( "none" ) << SizeUnit::None << 0 << -1_qi; + QTest::newRow( "none" ) << SizeUnit::None << -2 << -1_qi; + + QTest::newRow( "percent" ) << SizeUnit::Percent << 0 << -1_qi; + QTest::newRow( "percent" ) << SizeUnit::Percent << 16 << -1_qi; + QTest::newRow( "percent" ) << SizeUnit::Percent << -2 << -1_qi; + + QTest::newRow( "KiB" ) << SizeUnit::KiB << 0 << -1_qi; + QTest::newRow( "KiB" ) << SizeUnit::KiB << 1 << 1024_qi; + QTest::newRow( "KiB" ) << SizeUnit::KiB << 1000 << 1024000_qi; + QTest::newRow( "KiB" ) << SizeUnit::KiB << 1024 << 1024 * 1024_qi; + QTest::newRow( "KiB" ) << SizeUnit::KiB << -2 << -1_qi; + + QTest::newRow( "MiB" ) << SizeUnit::MiB << 0 << -1_qi; + QTest::newRow( "MiB" ) << SizeUnit::MiB << 1 << 1024 * 1024_qi; + QTest::newRow( "MiB" ) << SizeUnit::MiB << 1000 << 1024 * 1024000_qi; + QTest::newRow( "MiB" ) << SizeUnit::MiB << 1024 << 1024 * 1024 * 1024_qi; + QTest::newRow( "MiB" ) << SizeUnit::MiB << -2 << -1_qi; + + QTest::newRow( "GiB" ) << SizeUnit::GiB << 0 << -1_qi; + QTest::newRow( "GiB" ) << SizeUnit::GiB << 1 << 1024_qi * 1024 * 1024_qi; + // This one overflows 32-bits, which is why we want 64-bits for the whole table + QTest::newRow( "GiB" ) << SizeUnit::GiB << 2 << 2048_qi * 1024 * 1024_qi; } void @@ -140,7 +147,7 @@ PartitionSizeTests::testUnitNormalisation() { QFETCH( SizeUnit, u1 ); QFETCH( int, v ); - QFETCH( long, bytes ); + QFETCH( qint64, bytes ); - QCOMPARE( PartitionSize( v, u1 ).toBytes(), static_cast< qint64 >( bytes ) ); + QCOMPARE( PartitionSize( v, u1 ).toBytes(), bytes ); } From fe8459b7f09107a745f00da85100af3c727d7ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 15 Jun 2020 12:33:26 +0200 Subject: [PATCH 105/335] [CMake] fix typo --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a209e2d0..269b2e9b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -595,7 +595,7 @@ install( if( INSTALL_CONFIG ) install( FILES settings.conf - DESTINATIONshare/calamares + DESTINATION share/calamares ) endif() From c1b5426c6630b34fb83a144984bf532a1b919d2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sat, 21 Mar 2020 14:21:16 -0400 Subject: [PATCH 106/335] [partition] Add support for partition attributes --- src/libcalamares/utils/Variant.cpp | 13 +++++++++++++ src/libcalamares/utils/Variant.h | 5 +++++ src/modules/partition/core/PartitionCoreModule.cpp | 1 + src/modules/partition/core/PartitionLayout.cpp | 10 ++++++++++ src/modules/partition/core/PartitionLayout.h | 2 ++ src/modules/partition/partition.conf | 2 ++ 6 files changed, 33 insertions(+) diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index cf6ff91fe..e0156c35e 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -85,6 +85,19 @@ getInteger( const QVariantMap& map, const QString& key, qint64 d ) return result; } +quint64 +getUnsignedInteger( const QVariantMap& map, const QString& key, quint64 u ) +{ + quint64 result = u; + if ( map.contains( key ) ) + { + auto v = map.value( key ); + result = v.toString().toULongLong(nullptr, 0); + } + + return result; +} + double getDouble( const QVariantMap& map, const QString& key, double d ) { diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index a05d281c3..8405f7659 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -48,6 +48,11 @@ DLLEXPORT QString getString( const QVariantMap& map, const QString& key ); */ DLLEXPORT qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d ); +/** + * Get an unsigned integer value from a mapping; returns @p u if no value. + */ +DLLEXPORT quint64 getUnsignedInteger( const QVariantMap& map, const QString& key, quint64 u ); + /** * Get a double value from a mapping (integers are converted); returns @p d if no value. */ diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index aee1ab10f..5e0f8d363 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -884,6 +884,7 @@ PartitionCoreModule::initLayout( const QVariantList& config ) if ( !m_partLayout->addEntry( CalamaresUtils::getString( pentry, "name" ), CalamaresUtils::getString( pentry, "type" ), + CalamaresUtils::getUnsignedInteger( pentry, "attributes", 0 ), CalamaresUtils::getString( pentry, "mountPoint" ), CalamaresUtils::getString( pentry, "filesystem" ), CalamaresUtils::getSubMap( pentry, "features", ok ), diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 33d2a7679..2e573acd6 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -119,6 +119,7 @@ PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const bool PartitionLayout::addEntry( const QString& label, const QString& type, + quint64 attributes, const QString& mountPoint, const QString& fs, const QVariantMap& features, @@ -141,6 +142,7 @@ PartitionLayout::addEntry( const QString& label, entry.partLabel = label; entry.partType = type; + entry.partAttributes = attributes; entry.partMountPoint = mountPoint; PartUtils::findFS( fs, &entry.partFileSystem ); if ( entry.partFileSystem == FileSystem::Unknown ) @@ -250,6 +252,14 @@ PartitionLayout::execute( Device* dev, currentPartition->setType( part.partType ); #else cWarning() << "Ignoring type; requires KPMcore >= 4.2.0."; +#endif + } + if ( part.partAttributes ) + { +#if defined( WITH_KPMCORE42API ) + currentPartition->setAttributes( part.partAttributes ); +#else + cWarning() << "Ignoring attributes; requires KPMcore >= 4.2.0."; #endif } if ( !part.partFeatures.isEmpty() ) diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 5651ae995..d7af5df0c 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -42,6 +42,7 @@ public: { QString partLabel; QString partType; + quint64 partAttributes; QString partMountPoint; FileSystem::Type partFileSystem = FileSystem::Unknown; QVariantMap partFeatures; @@ -77,6 +78,7 @@ public: const QString& max = QString() ); bool addEntry( const QString& label, const QString& type, + quint64 attributes, const QString& mountPoint, const QString& fs, const QVariantMap& features, diff --git a/src/modules/partition/partition.conf b/src/modules/partition/partition.conf index f6cc34ee4..b04688138 100644 --- a/src/modules/partition/partition.conf +++ b/src/modules/partition/partition.conf @@ -106,6 +106,7 @@ defaultFileSystemType: "ext4" # size: 20% # minSize: 500M # maxSize: 10G +# attributes: 0xffff000000000003 # - name: "home" # type = "933ac7e1-2eb4-4f13-b844-0e14e2aef915" # filesystem: "ext4" @@ -128,6 +129,7 @@ defaultFileSystemType: "ext4" # and # partition name (gpt only; since KPMCore 4.2.0) # - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0) +# - attributes: partition attributes (optional parameter; gpt only; requires KPMCore >= 4.2.0) # - filesystem: filesystem type # - mountPoint: partition mount point # - size: partition size in bytes (append 'K', 'M' or 'G' for KiB, MiB or GiB) From 71249866df72be654a2456fbf1b0f452005bdec9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 12:45:29 +0200 Subject: [PATCH 107/335] CI: add tooling for schema validation The config files have fairly extensive documentation but no formal description; adding JSON-Schema into the mix makes it possible to write a machine-checkable description. --- ci/configvalidator.py | 110 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 ci/configvalidator.py diff --git a/ci/configvalidator.py b/ci/configvalidator.py new file mode 100644 index 000000000..e3b8ac24e --- /dev/null +++ b/ci/configvalidator.py @@ -0,0 +1,110 @@ +#! /usr/bin/env python3 +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# License-Filename: LICENSES/BSD2 +# +usage = """ +Validates a Calamares config file -- YAML syntax -- against a schema. + +The schema is also written in YAML syntax, but the schema itself +is JSON-schema. This is possible because all JSON is YAML, and most +YAML is JSON. The limited subset of YAML that Calamares uses is +JSON-representable, anyway. + +Usage: + configvalidator.py ... +""" + +# The schemata originally lived outside the Calamares repository, +# without documented tooling. By putting them in the repository +# with the example files and explicit tooling, there's a better +# chance of them catching problems and acting as documentation. + +dependencies = """ +Dependencies for this tool are: py-yaml and py-jsonschema. + + https://pyyaml.org/ + https://github.com/Julian/jsonschema + +Simple installation is `pip install pyyaml jsonschema` +""" + +ERR_IMPORT, ERR_USAGE, ERR_FILE_NOT_FOUND, ERR_SYNTAX, ERR_INVALID = range(1,6) + +### DEPENDENCIES +# +# +try: + from jsonschema import validate, SchemaError, ValidationError + from yaml import safe_load, YAMLError +except ImportError as e: + print(e) + print(dependencies) + exit(ERR_IMPORT) + +from os.path import exists +import sys + +### INPUT VALIDATION +# +# +if len(sys.argv) < 3: + print(usage) + exit(ERR_USAGE) + +schema_file_name = sys.argv[1] +config_file_names = sys.argv[2:] + +if not exists(schema_file_name): + print(usage) + print("\nSchema file '{}' does not exist.".format(schema_file_name)) + exit(ERR_FILE_NOT_FOUND) +for f in config_file_names: + if not exists(f): + print(usage) + print("\nYAML file '{}' does not exist.".format(f)) + exit(ERR_FILE_NOT_FOUND) + +### FILES SYNTAX CHECK +# +# +with open(schema_file_name, "r") as data: + try: + schema = safe_load(data) + except YAMLError as e: + print("Schema error: {} {}.".format(e.problem, e.problem_mark)) + print("\nSchema file '{}' is invalid YAML.".format(schema_file_name)) + exit(ERR_SYNTAX) + +try: + validate(instance={}, schema=schema) +except SchemaError as e: + print(e.message) + print("\nSchema file '{}' is invalid JSON-Schema.".format(schema_file_name)) + exit(ERR_INVALID) +except ValidationError: + # Just means that empty isn't valid, but the Schema itself is + pass + +configs = [] +for f in config_file_names: + config = None + with open(f, "r") as data: + try: + config = safe_load(data) + except YAMLError as e: + print("YAML error: {} {}.".format(e.problem, e.problem_mark)) + print("\nYAML file '{}' is invalid.".format(f)) + exit(ERR_SYNTAX) + if config is None: + print("YAML file '{}' is empty.".format(f)) + configs.append(config) + +### SCHEMA VALIDATION +# +# +# Here a ValidationError from jsonschema carries a lot of useful information, +# so just let it go. +for c in configs: + validate(instance=c, schema=schema) From deec0b862fbb34aec8de96b2457a102d78c16805 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 13:04:34 +0200 Subject: [PATCH 108/335] [finished] Add schema for config - Original schema from artoo@manjaro.org, modified for current JSON-Schema use --- src/modules/finished/finished.schema.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/modules/finished/finished.schema.yaml diff --git a/src/modules/finished/finished.schema.yaml b/src/modules/finished/finished.schema.yaml new file mode 100644 index 000000000..56a844f50 --- /dev/null +++ b/src/modules/finished/finished.schema.yaml @@ -0,0 +1,11 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/finished +type: object +properties: + restartNowEnabled: { type: boolean, default: true } # TODO:3.3: remove + restartNowChecked: { type: boolean, default: false } # TODO:3.3: remove + restartNowCommand: { type: string } + restartNowMode: { type: string, enum: [ never, user-unchecked, user-checked, always ] } + notifyOnFinished: { type: boolean } +additionalProperties: false From 2e850f23e600a6fc745543da5b2e9d92a13ea594 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 13:12:22 +0200 Subject: [PATCH 109/335] Changes: thanks Phil, and change-of-branch --- CHANGES | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES b/CHANGES index b1b74f4ee..e53c59437 100644 --- a/CHANGES +++ b/CHANGES @@ -7,8 +7,11 @@ website will have to do for older versions. This release contains contributions from (alphabetically by first name): - Pablo Ovelleiro Corral + - Philip Müller ## Core ## + - The default branch for Calamares source repositories (calamares + and calamares-extensions) is now *calamares*. - External modules can now be built again, outside of the Calamares source and build-tree. From 62e7128ff616d0295e75cfbf8ce3f84a8e8b5bfb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 13:54:13 +0200 Subject: [PATCH 110/335] CMake: document WITH_ and BUILD_ a little more - also mark TODO:3.3: for incompatible / surprising changes for 3.3 --- CMakeLists.txt | 12 ++++++++---- src/modules/packagechooser/CMakeLists.txt | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 269b2e9b1..b643dbd51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,8 +27,12 @@ # USE_ : fills in SKIP_MODULES for modules called - # WITH_ : try to enable (these usually default to ON). For # a list of WITH_ grep CMakeCache.txt after running -# CMake once. +# CMake once. These affect the ABI offered by Calamares. +# - PYTHON (enable Python Job modules) +# - QML (enable QML UI View modules) +# - PYTHONQT # TODO:3.3: remove # BUILD_ : choose additional things to build +# - TESTING (standard CMake option) # DEBUG_ : special developer flags for debugging # # Example usage: @@ -51,12 +55,12 @@ option( INSTALL_CONFIG "Install configuration files" OFF ) option( INSTALL_POLKIT "Install Polkit configuration" ON ) option( INSTALL_COMPLETION "Install shell completions" OFF ) # Options for the calamares executable -option( WITH_KF5Crash "Enable crash reporting with KCrash." ON ) -option( WITH_KF5DBus "Use DBus service for unique-application." OFF ) +option( WITH_KF5Crash "Enable crash reporting with KCrash." ON ) # TODO:3.3: WITH->BUILD (this isn't an ABI thing) +option( WITH_KF5DBus "Use DBus service for unique-application." OFF ) # TODO:3.3: WITH->BUILD # When adding WITH_* that affects the ABI offered by libcalamares, # also update libcalamares/CalamaresConfig.h.in option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON ) -option( WITH_PYTHONQT "Enable Python view modules API (deprecated, requires PythonQt)." OFF ) +option( WITH_PYTHONQT "Enable Python view modules API (deprecated, requires PythonQt)." OFF ) # TODO:3.3: remove option( WITH_QML "Enable QML UI options." ON ) # Possible debugging flags are: diff --git a/src/modules/packagechooser/CMakeLists.txt b/src/modules/packagechooser/CMakeLists.txt index d85eda8e2..d949829de 100644 --- a/src/modules/packagechooser/CMakeLists.txt +++ b/src/modules/packagechooser/CMakeLists.txt @@ -5,6 +5,7 @@ set( _extra_src "" ) ### OPTIONAL AppData XML support in PackageModel # # +# TODO:3.3:WITH->BUILD (this doesn't affect the ABI offered by Calamares) option( WITH_APPDATA "Support appdata: items in PackageChooser (requires QtXml)" ON ) if ( WITH_APPDATA ) find_package(Qt5 COMPONENTS Xml) From 0dbc44d3887c237c800e9e274ff9870fe1989566 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 14:06:26 +0200 Subject: [PATCH 111/335] CMake: update Python3-finding - mark for updates in 3.3: update to CMake 3.12 and use the more-modern Python modules for it then. --- CMakeLists.txt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b643dbd51..4506e9f6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ # One special target is "show-version", which can be built # to obtain the version number from here. +# TODO:3.3: Require CMake 3.12 cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES VERSION 3.2.26 @@ -326,15 +327,27 @@ if( NOT KF5DBusAddons_FOUND ) set( WITH_KF5DBus OFF ) endif() +# TODO:3.3: Use FindPython3 instead +find_package( PythonInterp ${PYTHONLIBS_VERSION} ) +set_package_properties( + PythonInterp PROPERTIES + DESCRIPTION "Python 3 interpreter." + URL "https://python.org" + PURPOSE "Python 3 interpreter for certain tests." +) +if ( PYTHONINTERP_FOUND ) + message(STATUS "Found Python 3 interpreter ${PYTHON_EXECUTABLE}") +endif() find_package( PythonLibs ${PYTHONLIBS_VERSION} ) set_package_properties( PythonLibs PROPERTIES DESCRIPTION "C interface libraries for the Python 3 interpreter." - URL "http://python.org" + URL "https://python.org" PURPOSE "Python 3 is used for Python job modules." ) if ( PYTHONLIBS_FOUND ) + # TODO:3.3: Require Boost + CMake; sort out Boost::Python # Since Boost provides CMake config files (starting with Boost 1.70. # or so) the mess that is the Calamares find code picks the wrong # bits. Suppress those CMake config files, as suggested by @jmrcpn @@ -345,7 +358,7 @@ if ( PYTHONLIBS_FOUND ) Boost PROPERTIES PURPOSE "Boost.Python is used for Python job modules." ) - + # TODO:3.3: Remove PythonQt support find_package( PythonQt ) set_package_properties( PythonQt PROPERTIES DESCRIPTION "A Python embedding solution for Qt applications." From b48c2745c149a608a9c3dc47ec6c0e18b660cb11 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 14:38:13 +0200 Subject: [PATCH 112/335] CI: apply schema-validation to the example config files - Any config file with a schema gets a test (validate-) to test the file. --- src/modules/CMakeLists.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 533c704f8..0b81c4b3f 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -66,3 +66,21 @@ endforeach() include( CalamaresAddTranslations ) add_calamares_python_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) + +# TODO:3.3: Use FindPython3 +if ( BUILD_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE ) + # The tests for each config file are independent of whether the + # module is enabled or not: the config file should match its schema + # regardless. + foreach( SUBDIRECTORY ${SUBDIRECTORIES} ) + set( _schema_file "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${SUBDIRECTORY}.schema.yaml" ) + set( _conf_file "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${SUBDIRECTORY}.conf" ) + if ( EXISTS "${_schema_file}" AND EXISTS "${_conf_file}" ) + add_test( + NAME validate-${SUBDIRECTORY} + COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" "${_schema_file}" "${_conf_file}" + ) + endif() + endforeach() +endif() + From a0d56acabee57a845c004483baf944a578c18fbc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 15:37:19 +0200 Subject: [PATCH 113/335] CI: verbose schema-failure diagnostics --- ci/configvalidator.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ci/configvalidator.py b/ci/configvalidator.py index e3b8ac24e..858c53224 100644 --- a/ci/configvalidator.py +++ b/ci/configvalidator.py @@ -79,8 +79,9 @@ with open(schema_file_name, "r") as data: try: validate(instance={}, schema=schema) +# While developing the schemata, get full exceptions from schema failure except SchemaError as e: - print(e.message) + print(e) print("\nSchema file '{}' is invalid JSON-Schema.".format(schema_file_name)) exit(ERR_INVALID) except ValidationError: @@ -101,10 +102,15 @@ for f in config_file_names: print("YAML file '{}' is empty.".format(f)) configs.append(config) +assert len(configs) == len(config_file_names), "Not all configurations loaded." + ### SCHEMA VALIDATION # # -# Here a ValidationError from jsonschema carries a lot of useful information, -# so just let it go. -for c in configs: - validate(instance=c, schema=schema) +for c, f in zip(configs, config_file_names): + try: + validate(instance=c, schema=schema) + except ValidationError as e: + print(e) + print("\nConfig file '{}' does not validate in schema.".format(f)) + exit(ERR_INVALID) From df183d40269e63bc8406ee7e2df7d9ce24795583 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 16:03:28 +0200 Subject: [PATCH 114/335] [welcome] Add schema for welcome config - Note that this is missing *languageIcon* so if that gets uncommented, it will fail validation. - While here decide that should be right up front in object (mappings) declaration. --- src/modules/finished/finished.schema.yaml | 2 +- src/modules/welcome/welcome.schema.yaml | 36 +++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/modules/welcome/welcome.schema.yaml diff --git a/src/modules/finished/finished.schema.yaml b/src/modules/finished/finished.schema.yaml index 56a844f50..53189c7fa 100644 --- a/src/modules/finished/finished.schema.yaml +++ b/src/modules/finished/finished.schema.yaml @@ -1,6 +1,7 @@ --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/finished +additionalProperties: false type: object properties: restartNowEnabled: { type: boolean, default: true } # TODO:3.3: remove @@ -8,4 +9,3 @@ properties: restartNowCommand: { type: string } restartNowMode: { type: string, enum: [ never, user-unchecked, user-checked, always ] } notifyOnFinished: { type: boolean } -additionalProperties: false diff --git a/src/modules/welcome/welcome.schema.yaml b/src/modules/welcome/welcome.schema.yaml new file mode 100644 index 000000000..56a79be06 --- /dev/null +++ b/src/modules/welcome/welcome.schema.yaml @@ -0,0 +1,36 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/welcome +additionalProperties: false +type: object +properties: + # TODO:3.3: drop the string alternatives and put the URL part in Branding + showSupportUrl: { anyOf: [ { type: boolean, default: true }, { type: string } ] } + showKnownIssuesUrl: { anyOf: [ { type: boolean, default: true }, { type: string } ] } + showReleaseNotesUrl: { anyOf: [ { type: boolean, default: true }, { type: string } ] } + showDonateUrl: { anyOf: [ { type: boolean, default: true }, { type: string } ] } + + requirements: + additionalProperties: false + type: object + properties: + requiredStorage: { type: number } + requiredRam: { type: number } + internetCheckUrl: { type: string } + check: + type: array + items: { type: string, enum: [storage, ram, power, internet, root, screen], unique: true } + required: # Key-name in the config-file + type: array + items: { type: string, enum: [storage, ram, power, internet, root, screen], unique: true } + required: [ requiredStorage, requiredRam, check ] # Schema keyword + + # TODO: refactor, this is reused in locale + geoip: + additionalProperties: false + type: object + properties: + style: { type: string, enum: [ none, fixed, xml, json ] } + url: { type: string } + selector: { type: string } + required: [ style, url, selector ] From 4a07bd4ae3ad297b48ee520f099434fa456e88bb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 16:06:56 +0200 Subject: [PATCH 115/335] CI: import all the rest of the YAML schema - These have **not** been fixed for validation, so the schema's themselves will fail to load. This is a consequence of variations in JSON-Schema representations through various drafts. Fixing the schemata is fairly straightforward. This gives us 19 new tests, all of which fail. --- src/modules/bootloader/bootloader.schema.yaml | 18 ++++++++++ .../displaymanager/displaymanager.schema.yaml | 16 +++++++++ src/modules/fstab/fstab.schema.yaml | 19 +++++++++++ src/modules/grubcfg/grubcfg.schema.yaml | 15 +++++++++ src/modules/initcpio/initcpio.schema.yaml | 7 ++++ src/modules/keyboard/keyboard.schema.yaml | 8 +++++ src/modules/license/license.schema.yaml | 17 ++++++++++ src/modules/locale/locale.schema.yaml | 10 ++++++ .../luksopenswaphookcfg.schema.yaml | 7 ++++ src/modules/machineid/machineid.schema.yaml | 9 +++++ src/modules/mount/mount.schema.yaml | 24 ++++++++++++++ src/modules/netinstall/netinstall.schema.yaml | 7 ++++ src/modules/packages/packages.schema.yaml | 33 +++++++++++++++++++ src/modules/partition/partition.schema.yaml | 11 +++++++ .../plymouthcfg/plymouthcfg.schema.yaml | 7 ++++ src/modules/removeuser/removeuser.schema.yaml | 7 ++++ src/modules/umount/umount.schema.yaml | 8 +++++ src/modules/unpackfs/unpackfs.schema.yaml | 14 ++++++++ src/modules/users/users.schema.yaml | 18 ++++++++++ 19 files changed, 255 insertions(+) create mode 100644 src/modules/bootloader/bootloader.schema.yaml create mode 100644 src/modules/displaymanager/displaymanager.schema.yaml create mode 100644 src/modules/fstab/fstab.schema.yaml create mode 100644 src/modules/grubcfg/grubcfg.schema.yaml create mode 100644 src/modules/initcpio/initcpio.schema.yaml create mode 100644 src/modules/keyboard/keyboard.schema.yaml create mode 100644 src/modules/license/license.schema.yaml create mode 100644 src/modules/locale/locale.schema.yaml create mode 100644 src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml create mode 100644 src/modules/machineid/machineid.schema.yaml create mode 100644 src/modules/mount/mount.schema.yaml create mode 100644 src/modules/netinstall/netinstall.schema.yaml create mode 100644 src/modules/packages/packages.schema.yaml create mode 100644 src/modules/partition/partition.schema.yaml create mode 100644 src/modules/plymouthcfg/plymouthcfg.schema.yaml create mode 100644 src/modules/removeuser/removeuser.schema.yaml create mode 100644 src/modules/umount/umount.schema.yaml create mode 100644 src/modules/unpackfs/unpackfs.schema.yaml create mode 100644 src/modules/users/users.schema.yaml diff --git a/src/modules/bootloader/bootloader.schema.yaml b/src/modules/bootloader/bootloader.schema.yaml new file mode 100644 index 000000000..45e8d4996 --- /dev/null +++ b/src/modules/bootloader/bootloader.schema.yaml @@ -0,0 +1,18 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/bootloader +additionalProperties: false +type: object +properties: + efiBootLoader: { type: string, required: true } + kernel: { type: string, required: true } + img: { type: string, required: true } + fallback: { type: str } + timeout: { type: str } + bootloaderEntryName: { type: str } + kernelLine: { type: str } + fallbackKernelLine: { type: str } + grubInstall: { type: string, required: true } + grubMkconfig: { type: string, required: true } + grubCfg: { type: string, required: true } + efiBootloaderId: { type: str } diff --git a/src/modules/displaymanager/displaymanager.schema.yaml b/src/modules/displaymanager/displaymanager.schema.yaml new file mode 100644 index 000000000..a16af732f --- /dev/null +++ b/src/modules/displaymanager/displaymanager.schema.yaml @@ -0,0 +1,16 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/displaymanager +additionalProperties: false +type: object +properties: + "displaymanagers": + type: seq + sequence: + - { type: string, required: true, enum: [slim, sddm, lightdm, gdm, mdm, lxdm, kdm] } + "defaultDesktopEnvironment": + type: map + mapping: + "executable": { type: str } + "desktopFile": { type: str } + "basicSetup": { type: boolean, default: false } diff --git a/src/modules/fstab/fstab.schema.yaml b/src/modules/fstab/fstab.schema.yaml new file mode 100644 index 000000000..1c2bf459c --- /dev/null +++ b/src/modules/fstab/fstab.schema.yaml @@ -0,0 +1,19 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/fstab +additionalProperties: false +type: object +properties: + "mountOptions": + type: map + mapping: + "default": { type: string, required: true } + "btrfs": { type: string, required: true } + "ssdExtraMountOptions": + type: map + mapping: + "ext4": { type: string, required: true } + "jfs": { type: string, required: true } + "xfs": { type: string, required: true } + "swap": { type: string, required: true } + "btrfs": { type: string, required: true } diff --git a/src/modules/grubcfg/grubcfg.schema.yaml b/src/modules/grubcfg/grubcfg.schema.yaml new file mode 100644 index 000000000..10aa34c2b --- /dev/null +++ b/src/modules/grubcfg/grubcfg.schema.yaml @@ -0,0 +1,15 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/grubcfg +additionalProperties: false +type: object +properties: + "overwrite": { type: boolean, default: false } + "defaults": + type: map + mapping: + "GRUB_TIMEOUT": { type: int, required: true } + "GRUB_DEFAULT": { type: string, required: true } + "GRUB_DISABLE_SUBMENU": { type: boolean, default: true } + "GRUB_TERMINAL_OUTPUT": { type: string, required: true } + "GRUB_DISABLE_RECOVERY": { type: boolean, default: true } diff --git a/src/modules/initcpio/initcpio.schema.yaml b/src/modules/initcpio/initcpio.schema.yaml new file mode 100644 index 000000000..db81ba68e --- /dev/null +++ b/src/modules/initcpio/initcpio.schema.yaml @@ -0,0 +1,7 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/initcpio +additionalProperties: false +type: object +properties: + kernel: { type: string, required: true } diff --git a/src/modules/keyboard/keyboard.schema.yaml b/src/modules/keyboard/keyboard.schema.yaml new file mode 100644 index 000000000..33175b84d --- /dev/null +++ b/src/modules/keyboard/keyboard.schema.yaml @@ -0,0 +1,8 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/finished +additionalProperties: keyboard +type: object +properties: + xOrgConfFileName: { type: string, required: true } + convertedKeymapPath: { type: string, required: true } diff --git a/src/modules/license/license.schema.yaml b/src/modules/license/license.schema.yaml new file mode 100644 index 000000000..62bd07035 --- /dev/null +++ b/src/modules/license/license.schema.yaml @@ -0,0 +1,17 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/license +additionalProperties: false +type: object +properties: + "entries": + type: seq + sequence: + - type: map + mapping: + "id": { type: str } + "name": { type: str } + "vendor": { type: str } + "type": { type: str } + "url": { type: str } + "required": { type: boolean, default: false } diff --git a/src/modules/locale/locale.schema.yaml b/src/modules/locale/locale.schema.yaml new file mode 100644 index 000000000..41c3ad487 --- /dev/null +++ b/src/modules/locale/locale.schema.yaml @@ -0,0 +1,10 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/locale +additionalProperties: false +type: object +properties: + "region": { type: str } + "zone": { type: str } + "localeGenPath": { type: string, required: true } + "geoipUrl": { type: str } diff --git a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml new file mode 100644 index 000000000..660e06d0b --- /dev/null +++ b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml @@ -0,0 +1,7 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/luksopenswaphookcfg +additionalProperties: false +type: object +properties: + "configFilePath": { type: string, required: true } diff --git a/src/modules/machineid/machineid.schema.yaml b/src/modules/machineid/machineid.schema.yaml new file mode 100644 index 000000000..588a7fa4e --- /dev/null +++ b/src/modules/machineid/machineid.schema.yaml @@ -0,0 +1,9 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/machineid +additionalProperties: false +type: object +properties: + "systemd": { type: boolean, default: true } + "dbus": { type: boolean, default: true } + "symlink": { type: boolean, default: true } diff --git a/src/modules/mount/mount.schema.yaml b/src/modules/mount/mount.schema.yaml new file mode 100644 index 000000000..8a81d9462 --- /dev/null +++ b/src/modules/mount/mount.schema.yaml @@ -0,0 +1,24 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/mount +additionalProperties: false +type: object +properties: + "extraMounts": + type: seq + sequence: + - type: map + mapping: + "device": { type: string, required: true } + "fs": { type: str } + "mountPoint": { type: string, required: true } + "options": { type: str } + "extraMountsEfi": + type: seq + sequence: + - type: map + mapping: + "device": { type: string, required: true } + "fs": { type: str } + "mountPoint": { type: string, required: true } + "options": { type: str } diff --git a/src/modules/netinstall/netinstall.schema.yaml b/src/modules/netinstall/netinstall.schema.yaml new file mode 100644 index 000000000..8420ea501 --- /dev/null +++ b/src/modules/netinstall/netinstall.schema.yaml @@ -0,0 +1,7 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/netinstall +additionalProperties: false +type: object +properties: + groupsUrl: { type: string, required: true } diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml new file mode 100644 index 000000000..8b8a9eb1d --- /dev/null +++ b/src/modules/packages/packages.schema.yaml @@ -0,0 +1,33 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/packages +additionalProperties: false +type: object +properties: + "backend": { type: string, required: true, enum: [packagekit, zypp, yum, dnf, urpmi, apt, pacman, portage, entropy] } + "update_db": { type: boolean, default: true } + "operations": + type: seq + sequence: + - type: map + mapping: + "install": + type: seq + sequence: + - { type: text } + "remove": + type: seq + sequence: + - { type: text } + "localInstall": + type: seq + sequence: + - { type: text } + "try_install": + type: seq + sequence: + - { type: text } + "try_remove": + type: seq + sequence: + - { type: text } diff --git a/src/modules/partition/partition.schema.yaml b/src/modules/partition/partition.schema.yaml new file mode 100644 index 000000000..198123dd5 --- /dev/null +++ b/src/modules/partition/partition.schema.yaml @@ -0,0 +1,11 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/partition +additionalProperties: false +type: object +properties: + efiSystemPartition: { type: string, required: true } + ensureSuspendToDisk: { type: boolean, default: true } + drawNestedPartitions: { type: boolean, default: false } + alwaysShowPartitionLabels: { type: boolean, default: true } + defaultFileSystemType: { type: string, required: true } diff --git a/src/modules/plymouthcfg/plymouthcfg.schema.yaml b/src/modules/plymouthcfg/plymouthcfg.schema.yaml new file mode 100644 index 000000000..b15db1527 --- /dev/null +++ b/src/modules/plymouthcfg/plymouthcfg.schema.yaml @@ -0,0 +1,7 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/plymouthcfg +additionalProperties: false +type: object +properties: + plymouth_theme: { type: str } diff --git a/src/modules/removeuser/removeuser.schema.yaml b/src/modules/removeuser/removeuser.schema.yaml new file mode 100644 index 000000000..7ed6cfbbe --- /dev/null +++ b/src/modules/removeuser/removeuser.schema.yaml @@ -0,0 +1,7 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/removeuser +additionalProperties: false +type: object +properties: + "username": { type: string, required: true } diff --git a/src/modules/umount/umount.schema.yaml b/src/modules/umount/umount.schema.yaml new file mode 100644 index 000000000..b76a14ac6 --- /dev/null +++ b/src/modules/umount/umount.schema.yaml @@ -0,0 +1,8 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/umount +additionalProperties: false +type: object +properties: + "srcLog": { type: str } + "destLog": { type: str } diff --git a/src/modules/unpackfs/unpackfs.schema.yaml b/src/modules/unpackfs/unpackfs.schema.yaml new file mode 100644 index 000000000..0d6f0955a --- /dev/null +++ b/src/modules/unpackfs/unpackfs.schema.yaml @@ -0,0 +1,14 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/unpackfs +additionalProperties: false +type: object +properties: + "unpack": + type: seq + sequence: + - type: map + mapping: + "source": { type: string, required: true } + "sourcefs": { type: str } + "destination": { type: str } diff --git a/src/modules/users/users.schema.yaml b/src/modules/users/users.schema.yaml new file mode 100644 index 000000000..b667df7f6 --- /dev/null +++ b/src/modules/users/users.schema.yaml @@ -0,0 +1,18 @@ +--- +$schema: https://json-schema.org/schema# +$id: https://calamares.io/schemas/users +additionalProperties: false +type: object +properties: + "defaultGroups": + required: true + type: seq + sequence: + - { type: str } + "autologinGroup": { type: string, required: true } + "doAutologin": { type: boolean, default: true } + "sudoersGroup": { type: string, required: true } + "setRootPassword": { type: boolean, default: true } + "availableShells": { type: str } + "avatarFilePath": { type: str } + "doReusePassword": { type: boolean, default: true } From 0cd894036363069c5a22abb62eb6b6ae3d2c169c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 16:16:07 +0200 Subject: [PATCH 116/335] [bootloader] Fix up schema --- src/modules/bootloader/bootloader.schema.yaml | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/modules/bootloader/bootloader.schema.yaml b/src/modules/bootloader/bootloader.schema.yaml index 45e8d4996..4670ea3db 100644 --- a/src/modules/bootloader/bootloader.schema.yaml +++ b/src/modules/bootloader/bootloader.schema.yaml @@ -4,15 +4,30 @@ $id: https://calamares.io/schemas/bootloader additionalProperties: false type: object properties: - efiBootLoader: { type: string, required: true } - kernel: { type: string, required: true } - img: { type: string, required: true } - fallback: { type: str } - timeout: { type: str } - bootloaderEntryName: { type: str } - kernelLine: { type: str } - fallbackKernelLine: { type: str } - grubInstall: { type: string, required: true } - grubMkconfig: { type: string, required: true } - grubCfg: { type: string, required: true } - efiBootloaderId: { type: str } + efiBootLoader: { type: string } + kernel: { type: string } + img: { type: string } + fallback: { type: string } + timeout: { type: string } # Inserted verbatim + bootloaderEntryName: { type: string } + kernelLine: { type: string } + fallbackKernelLine: { type: string } + + # Programs + grubInstall: { type: string } + grubMkconfig: { type: string } + grubCfg: { type: string } + grubProbe: { type: string } + efiBootMgr: { type: string } + + efiBootloaderId: { type: string } + installEFIFallback: { type: boolean } + +required: + - efiBootLoader + - kernel + - img + - grubInstall + - grubMkconfig + - grubCfg + - grubProbe From f2a8f0fcddb77c5d6fca8edabbd66122afc69475 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 17:17:59 +0200 Subject: [PATCH 117/335] =?UTF-8?q?Changes:=20thank=20Ga=C3=ABl=20and=20me?= =?UTF-8?q?ntion=20removal=20of=20-tools?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES b/CHANGES index e53c59437..e874dc866 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ website will have to do for older versions. # 3.2.26 (unreleased) # This release contains contributions from (alphabetically by first name): + - Gaël PORTAY - Pablo Ovelleiro Corral - Philip Müller @@ -14,6 +15,10 @@ This release contains contributions from (alphabetically by first name): and calamares-extensions) is now *calamares*. - External modules can now be built again, outside of the Calamares source and build-tree. + - The repository *calamares-tools* has been removed. The idea behind + the tooling was to provide schema validation for Calamares configuration + files. This has been merged into the primary repository, where it + is now part of the test suite. ## Modules ## - *locale* put some more places into the correct timezone **visually**; From 635f53a8044fe2b607865b56236eb0b8f4805ff3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 16 Jun 2020 17:36:59 +0200 Subject: [PATCH 118/335] CI: add a BUILD_SCHEMA_TESTING - ON by default, so if tests are built and the script works, those tests will run as well. - Check that the script works by invoking it once. --- CMakeLists.txt | 19 +++++++++++++++++++ ci/configvalidator.py | 12 ++++++++++++ src/modules/CMakeLists.txt | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4506e9f6c..9795da8ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ # - PYTHONQT # TODO:3.3: remove # BUILD_ : choose additional things to build # - TESTING (standard CMake option) +# - SCHEMA_TESTING (requires Python, see ci/configvalidator.py) # DEBUG_ : special developer flags for debugging # # Example usage: @@ -63,6 +64,10 @@ option( WITH_KF5DBus "Use DBus service for unique-application." OFF ) # TODO:3. option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON ) option( WITH_PYTHONQT "Enable Python view modules API (deprecated, requires PythonQt)." OFF ) # TODO:3.3: remove option( WITH_QML "Enable QML UI options." ON ) +# +# Additional parts to build +option( BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON ) + # Possible debugging flags are: # - DEBUG_TIMEZONES draws latitude and longitude lines on the timezone @@ -337,6 +342,20 @@ set_package_properties( ) if ( PYTHONINTERP_FOUND ) message(STATUS "Found Python 3 interpreter ${PYTHON_EXECUTABLE}") + if ( BUILD_SCHEMA_TESTING ) + # The configuration validator script has some dependencies, + # and if they are not installed, don't run. If errors out + # with exit(1) on missing dependencies. + exec_program( ${PYTHON_EXECUTABLE} ARGS "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" -x RETURN_VALUE _validator_deps ) + # It should never succeed, but only returns 1 when the imports fail + if ( _validator_deps EQUAL 1 ) + message(STATUS "BUILD_SCHEMA_TESTING dependencies are missing." ) + set( BUILD_SCHEMA_TESTING OFF ) + endif() + endif() +else() + # Can't run schema tests without Python3. + set( BUILD_SCHEMA_TESTING OFF ) endif() find_package( PythonLibs ${PYTHONLIBS_VERSION} ) set_package_properties( diff --git a/ci/configvalidator.py b/ci/configvalidator.py index 858c53224..9d1bc21a5 100644 --- a/ci/configvalidator.py +++ b/ci/configvalidator.py @@ -14,6 +14,15 @@ JSON-representable, anyway. Usage: configvalidator.py ... + configvalidator.py -x + +Exits with value 0 on success, otherwise: + 1 on missing dependencies + 2 on invalid command-line arguments + 3 on missing files + 4 if files have invalid syntax + 5 if files fail to validate +Use -x as only command-line argument to check the imports only. """ # The schemata originally lived outside the Calamares repository, @@ -50,6 +59,9 @@ import sys # # if len(sys.argv) < 3: + # Special-case: called with -x to just test the imports + if len(sys.argv) == 2 and sys.argv[1] == "-x": + exit(0) print(usage) exit(ERR_USAGE) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 0b81c4b3f..08e5a8520 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -68,7 +68,7 @@ include( CalamaresAddTranslations ) add_calamares_python_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) # TODO:3.3: Use FindPython3 -if ( BUILD_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE ) +if ( BUILD_TESTING AND BUILD_SCHEMA_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE ) # The tests for each config file are independent of whether the # module is enabled or not: the config file should match its schema # regardless. From e68723f1c7f5619c532f433d86ef6a6712b2633c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Mon, 15 Jun 2020 10:16:13 -0400 Subject: [PATCH 119/335] [libcalamares] Handle integers prefixed with 0 or 0x - QString to-integer members detect if an integer string begins with "0x" (base 16) or "0", base 8; but QVariant members do not. - QString: the C language convention is used is base is set to 0. - Convert to QString and use its member toLongLong() and set base to 0 to detect integer strings begin with a prefix. --- src/libcalamares/utils/Variant.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index e0156c35e..b8173acfa 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -72,14 +72,7 @@ getInteger( const QVariantMap& map, const QString& key, qint64 d ) if ( map.contains( key ) ) { auto v = map.value( key ); - if ( v.type() == QVariant::Int ) - { - result = v.toInt(); - } - else if ( v.type() == QVariant::LongLong ) - { - result = v.toLongLong(); - } + result = v.toString().toLongLong(nullptr, 0); } return result; From e84193a2cb5ddeffea7558d44311482e0fca44e2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 00:20:25 +0200 Subject: [PATCH 120/335] Docs: add a FreeBSD port directory (copy it to sysutils/calamares) --- data/FreeBSD/Makefile | 34 +++++++ data/FreeBSD/distinfo | 3 + data/FreeBSD/pkg-descr | 14 +++ data/FreeBSD/pkg-plist | 224 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 275 insertions(+) create mode 100644 data/FreeBSD/Makefile create mode 100644 data/FreeBSD/distinfo create mode 100644 data/FreeBSD/pkg-descr create mode 100644 data/FreeBSD/pkg-plist diff --git a/data/FreeBSD/Makefile b/data/FreeBSD/Makefile new file mode 100644 index 000000000..520a05638 --- /dev/null +++ b/data/FreeBSD/Makefile @@ -0,0 +1,34 @@ +# $FreeBSD$ + +PORTNAME= calamares +DISTVERSION= 3.2.25 +CATEGORIES= sysutils +MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${DISTVERSION}/ + +MAINTAINER= adridg@FreeBSD.org +COMMENT= GUI System installer and OEM configurator + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libyaml-cpp.so:devel/yaml-cpp \ + libpwquality.so:security/libpwquality \ + libboost_python${PYTHON_SUFFIX}.so:devel/boost-python-libs + +USES= cmake compiler:c++17-lang gettext kde:5 pkgconfig \ + python:3.3+ qt:5 +USE_QT= concurrent core dbus declarative gui \ + network quickcontrols2 svg widgets xml \ + buildtools_build linguist_build qmake_build +USE_KDE= coreaddons dbusaddons parts service \ + ecm_build +USE_LDCONFIG= yes + +CMAKE_OFF= WITH_KF5Crash \ + INSTALL_CONFIG \ + INSTALL_COMPLETION \ + INSTALL_POLKIT +CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_KPMcore +CMAKE_ARGS= -DSKIP_MODULES="webview" + +.include diff --git a/data/FreeBSD/distinfo b/data/FreeBSD/distinfo new file mode 100644 index 000000000..e333963a8 --- /dev/null +++ b/data/FreeBSD/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1592339404 +SHA256 (calamares-3.2.25.tar.gz) = 797ce33db7d4e4c06bbccef95f6c4023f7628e91bd142896695565fed4ae8c4b +SIZE (calamares-3.2.25.tar.gz) = 3580197 diff --git a/data/FreeBSD/pkg-descr b/data/FreeBSD/pkg-descr new file mode 100644 index 000000000..39cb4335c --- /dev/null +++ b/data/FreeBSD/pkg-descr @@ -0,0 +1,14 @@ +Calamares is an installer framework. By design it is very customizable, +in order to satisfy a wide variety of needs and use cases. + +Calamares aims to be easy, usable, beautiful, pragmatic, inclusive and +distribution-agnostic. + +Got a Linux distribution but no system installer? Grab Calamares, mix +and match any number of Calamares modules (or write your own in Python +or C++), throw together some branding, package it up and you are ready +to ship! + +(The above applies to FreeBSD as well) + +WWW: https://calamares.io/ diff --git a/data/FreeBSD/pkg-plist b/data/FreeBSD/pkg-plist new file mode 100644 index 000000000..7f588b7a9 --- /dev/null +++ b/data/FreeBSD/pkg-plist @@ -0,0 +1,224 @@ +bin/calamares +include/libcalamares/CalamaresConfig.h +include/libcalamares/CppJob.h +include/libcalamares/DllMacro.h +include/libcalamares/GlobalStorage.h +include/libcalamares/Job.h +include/libcalamares/JobExample.h +include/libcalamares/JobQueue.h +include/libcalamares/ProcessJob.h +include/libcalamares/PythonHelper.h +include/libcalamares/PythonJob.h +include/libcalamares/PythonJobApi.h +include/libcalamares/Settings.h +include/libcalamares/utils/BoostPython.h +include/libcalamares/utils/CalamaresUtilsSystem.h +include/libcalamares/utils/CommandList.h +include/libcalamares/utils/Dirs.h +include/libcalamares/utils/Entropy.h +include/libcalamares/utils/Logger.h +include/libcalamares/utils/NamedEnum.h +include/libcalamares/utils/NamedSuffix.h +include/libcalamares/utils/PluginFactory.h +include/libcalamares/utils/RAII.h +include/libcalamares/utils/Retranslator.h +include/libcalamares/utils/String.h +include/libcalamares/utils/Tests.h +include/libcalamares/utils/UMask.h +include/libcalamares/utils/Units.h +include/libcalamares/utils/Variant.h +include/libcalamares/utils/Yaml.h +include/libcalamares/utils/moc-warnings.h +lib/calamares/libcalamares.so +lib/calamares/modules/bootloader/main.py +lib/calamares/modules/bootloader/module.desc +lib/calamares/modules/bootloader/test.yaml +lib/calamares/modules/contextualprocess/libcalamares_job_contextualprocess.so +lib/calamares/modules/contextualprocess/module.desc +lib/calamares/modules/displaymanager/main.py +lib/calamares/modules/displaymanager/module.desc +lib/calamares/modules/dracut/main.py +lib/calamares/modules/dracut/module.desc +lib/calamares/modules/dracutlukscfg/libcalamares_job_dracutlukscfg.so +lib/calamares/modules/dracutlukscfg/module.desc +lib/calamares/modules/dummycpp/libcalamares_job_dummycpp.so +lib/calamares/modules/dummycpp/module.desc +lib/calamares/modules/dummyprocess/module.desc +lib/calamares/modules/dummypython/main.py +lib/calamares/modules/dummypython/module.desc +lib/calamares/modules/finished/libcalamares_viewmodule_finished.so +lib/calamares/modules/finished/module.desc +lib/calamares/modules/fstab/main.py +lib/calamares/modules/fstab/module.desc +lib/calamares/modules/fstab/test.yaml +lib/calamares/modules/grubcfg/main.py +lib/calamares/modules/grubcfg/module.desc +lib/calamares/modules/hostinfo/libcalamares_job_hostinfo.so +lib/calamares/modules/hostinfo/module.desc +lib/calamares/modules/hwclock/main.py +lib/calamares/modules/hwclock/module.desc +lib/calamares/modules/initcpio/libcalamares_job_initcpio.so +lib/calamares/modules/initcpio/module.desc +lib/calamares/modules/initcpiocfg/main.py +lib/calamares/modules/initcpiocfg/module.desc +lib/calamares/modules/initramfs/libcalamares_job_initramfs.so +lib/calamares/modules/initramfs/module.desc +lib/calamares/modules/initramfscfg/encrypt_hook +lib/calamares/modules/initramfscfg/encrypt_hook_nokey +lib/calamares/modules/initramfscfg/main.py +lib/calamares/modules/initramfscfg/module.desc +lib/calamares/modules/interactiveterminal/libcalamares_viewmodule_interactiveterminal.so +lib/calamares/modules/interactiveterminal/module.desc +lib/calamares/modules/keyboard/libcalamares_viewmodule_keyboard.so +lib/calamares/modules/keyboard/module.desc +lib/calamares/modules/keyboardq/libcalamares_viewmodule_keyboardq.so +lib/calamares/modules/keyboardq/module.desc +lib/calamares/modules/license/libcalamares_viewmodule_license.so +lib/calamares/modules/license/module.desc +lib/calamares/modules/locale/libcalamares_viewmodule_locale.so +lib/calamares/modules/locale/module.desc +lib/calamares/modules/localecfg/main.py +lib/calamares/modules/localecfg/module.desc +lib/calamares/modules/localeq/libcalamares_viewmodule_localeq.so +lib/calamares/modules/localeq/module.desc +lib/calamares/modules/luksbootkeyfile/libcalamares_job_luksbootkeyfile.so +lib/calamares/modules/luksbootkeyfile/module.desc +lib/calamares/modules/luksopenswaphookcfg/main.py +lib/calamares/modules/luksopenswaphookcfg/module.desc +lib/calamares/modules/machineid/libcalamares_job_machineid.so +lib/calamares/modules/machineid/module.desc +lib/calamares/modules/mount/main.py +lib/calamares/modules/mount/module.desc +lib/calamares/modules/mount/test.yaml +lib/calamares/modules/netinstall/libcalamares_viewmodule_netinstall.so +lib/calamares/modules/netinstall/module.desc +lib/calamares/modules/networkcfg/main.py +lib/calamares/modules/networkcfg/module.desc +lib/calamares/modules/notesqml/libcalamares_viewmodule_notesqml.so +lib/calamares/modules/notesqml/module.desc +lib/calamares/modules/oemid/libcalamares_viewmodule_oemid.so +lib/calamares/modules/oemid/module.desc +lib/calamares/modules/openrcdmcryptcfg/main.py +lib/calamares/modules/openrcdmcryptcfg/module.desc +lib/calamares/modules/packagechooser/libcalamares_viewmodule_packagechooser.so +lib/calamares/modules/packagechooser/module.desc +lib/calamares/modules/packages/main.py +lib/calamares/modules/packages/module.desc +lib/calamares/modules/packages/test.yaml +lib/calamares/modules/plymouthcfg/main.py +lib/calamares/modules/plymouthcfg/module.desc +lib/calamares/modules/preservefiles/libcalamares_job_preservefiles.so +lib/calamares/modules/preservefiles/module.desc +lib/calamares/modules/rawfs/main.py +lib/calamares/modules/rawfs/module.desc +lib/calamares/modules/removeuser/libcalamares_job_removeuser.so +lib/calamares/modules/removeuser/module.desc +lib/calamares/modules/services-openrc/main.py +lib/calamares/modules/services-openrc/module.desc +lib/calamares/modules/services-systemd/main.py +lib/calamares/modules/services-systemd/module.desc +lib/calamares/modules/shellprocess/libcalamares_job_shellprocess.so +lib/calamares/modules/shellprocess/module.desc +lib/calamares/modules/summary/libcalamares_viewmodule_summary.so +lib/calamares/modules/summary/module.desc +lib/calamares/modules/tracking/libcalamares_viewmodule_tracking.so +lib/calamares/modules/tracking/module.desc +lib/calamares/modules/umount/main.py +lib/calamares/modules/umount/module.desc +lib/calamares/modules/unpackfs/main.py +lib/calamares/modules/unpackfs/module.desc +lib/calamares/modules/unpackfs/runtests.sh +lib/calamares/modules/users/libcalamares_viewmodule_users.so +lib/calamares/modules/users/module.desc +lib/calamares/modules/welcome/libcalamares_viewmodule_welcome.so +lib/calamares/modules/welcome/module.desc +lib/calamares/modules/welcomeq/libcalamares_viewmodule_welcomeq.so +lib/calamares/modules/welcomeq/module.desc +lib/cmake/Calamares/CMakeColors.cmake +lib/cmake/Calamares/CalamaresAddBrandingSubdirectory.cmake +lib/cmake/Calamares/CalamaresAddLibrary.cmake +lib/cmake/Calamares/CalamaresAddModuleSubdirectory.cmake +lib/cmake/Calamares/CalamaresAddPlugin.cmake +lib/cmake/Calamares/CalamaresAddTest.cmake +lib/cmake/Calamares/CalamaresAddTranslations.cmake +lib/cmake/Calamares/CalamaresAutomoc.cmake +lib/cmake/Calamares/CalamaresConfig.cmake +lib/cmake/Calamares/CalamaresConfigVersion.cmake +lib/cmake/Calamares/CalamaresLibraryDepends-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/Calamares/CalamaresLibraryDepends.cmake +lib/cmake/Calamares/CalamaresUse.cmake +lib/libcalamares.so +lib/libcalamares.so.3.2.25 +lib/libcalamaresui.so +lib/libcalamaresui.so.3.2.25 +man/man8/calamares.8.gz +share/applications/calamares.desktop +%%DATADIR%%/branding/default/banner.png +%%DATADIR%%/branding/default/branding.desc +%%DATADIR%%/branding/default/lang/calamares-default_ar.qm +%%DATADIR%%/branding/default/lang/calamares-default_en.qm +%%DATADIR%%/branding/default/lang/calamares-default_eo.qm +%%DATADIR%%/branding/default/lang/calamares-default_fr.qm +%%DATADIR%%/branding/default/lang/calamares-default_nl.qm +%%DATADIR%%/branding/default/languages.png +%%DATADIR%%/branding/default/show.qml +%%DATADIR%%/branding/default/squid.png +%%DATADIR%%/branding/default/stylesheet.qss +%%DATADIR%%/qml/calamares/slideshow/BackButton.qml +%%DATADIR%%/qml/calamares/slideshow/ForwardButton.qml +%%DATADIR%%/qml/calamares/slideshow/NavButton.qml +%%DATADIR%%/qml/calamares/slideshow/Presentation.qml +%%DATADIR%%/qml/calamares/slideshow/Slide.qml +%%DATADIR%%/qml/calamares/slideshow/SlideCounter.qml +%%DATADIR%%/qml/calamares/slideshow/qmldir +share/icons/hicolor/scalable/apps/calamares.svg +share/locale/ar/LC_MESSAGES/calamares-python.mo +share/locale/as/LC_MESSAGES/calamares-python.mo +share/locale/ast/LC_MESSAGES/calamares-python.mo +share/locale/be/LC_MESSAGES/calamares-python.mo +share/locale/bg/LC_MESSAGES/calamares-python.mo +share/locale/ca/LC_MESSAGES/calamares-python.mo +share/locale/cs_CZ/LC_MESSAGES/calamares-python.mo +share/locale/da/LC_MESSAGES/calamares-python.mo +share/locale/de/LC_MESSAGES/calamares-python.mo +share/locale/el/LC_MESSAGES/calamares-python.mo +share/locale/en_GB/LC_MESSAGES/calamares-python.mo +share/locale/eo/LC_MESSAGES/calamares-python.mo +share/locale/es/LC_MESSAGES/calamares-python.mo +share/locale/es_MX/LC_MESSAGES/calamares-python.mo +share/locale/es_PR/LC_MESSAGES/calamares-python.mo +share/locale/et/LC_MESSAGES/calamares-python.mo +share/locale/eu/LC_MESSAGES/calamares-python.mo +share/locale/fi_FI/LC_MESSAGES/calamares-python.mo +share/locale/fr/LC_MESSAGES/calamares-python.mo +share/locale/gl/LC_MESSAGES/calamares-python.mo +share/locale/he/LC_MESSAGES/calamares-python.mo +share/locale/hi/LC_MESSAGES/calamares-python.mo +share/locale/hr/LC_MESSAGES/calamares-python.mo +share/locale/hu/LC_MESSAGES/calamares-python.mo +share/locale/id/LC_MESSAGES/calamares-python.mo +share/locale/is/LC_MESSAGES/calamares-python.mo +share/locale/it_IT/LC_MESSAGES/calamares-python.mo +share/locale/ja/LC_MESSAGES/calamares-python.mo +share/locale/ko/LC_MESSAGES/calamares-python.mo +share/locale/lt/LC_MESSAGES/calamares-python.mo +share/locale/ml/LC_MESSAGES/calamares-python.mo +share/locale/mr/LC_MESSAGES/calamares-python.mo +share/locale/nb/LC_MESSAGES/calamares-python.mo +share/locale/nl/LC_MESSAGES/calamares-python.mo +share/locale/pl/LC_MESSAGES/calamares-python.mo +share/locale/pt_BR/LC_MESSAGES/calamares-python.mo +share/locale/pt_PT/LC_MESSAGES/calamares-python.mo +share/locale/ro/LC_MESSAGES/calamares-python.mo +share/locale/ru/LC_MESSAGES/calamares-python.mo +share/locale/sk/LC_MESSAGES/calamares-python.mo +share/locale/sl/LC_MESSAGES/calamares-python.mo +share/locale/sq/LC_MESSAGES/calamares-python.mo +share/locale/sr/LC_MESSAGES/calamares-python.mo +share/locale/sr@latin/LC_MESSAGES/calamares-python.mo +share/locale/sv/LC_MESSAGES/calamares-python.mo +share/locale/th/LC_MESSAGES/calamares-python.mo +share/locale/tr_TR/LC_MESSAGES/calamares-python.mo +share/locale/uk/LC_MESSAGES/calamares-python.mo +share/locale/zh_CN/LC_MESSAGES/calamares-python.mo +share/locale/zh_TW/LC_MESSAGES/calamares-python.mo From dda4ab0b2e44fc35524e1d49d94cddc178a2dff2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 10:06:33 +0200 Subject: [PATCH 121/335] [tracking] Improve naming - give the on-some-checkbox-state-changed slots better names - while here, refactor is-any-actual-tracking-option-checked - improve other debug messages, to be a whole sentence --- src/modules/tracking/TrackingPage.cpp | 30 +++++++++++++-------------- src/modules/tracking/TrackingPage.h | 11 ++++++++-- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index e42ae2312..fa5cba2bb 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -41,14 +41,14 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) CALAMARES_RETRANSLATE_SLOT( &TrackingPage::retranslate ); ui->noneCheckBox->setChecked( true ); - connect( ui->noneCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::noneChecked ); - connect( ui->installCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::otherChecked ); - connect( ui->machineCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::otherChecked ); - connect( ui->userCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::otherChecked ); + connect( ui->noneCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonNoneChecked ); + connect( ui->installCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); + connect( ui->machineCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); + connect( ui->userCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); connect( ui->installCheckBox, &QCheckBox::stateChanged, [ this ]( int s ) { cDebug() << "Checkbox install changed" << s; } ); connect( config->installTracking(), &TrackingStyleConfig::trackingChanged, [ config ]() { cDebug() << - "Install tracking changed" << config->installTracking()->isEnabled(); } ) ; + "Install tracking configuration changed to " << config->installTracking()->isEnabled(); } ) ; connect( config, &Config::generalPolicyChanged, [ this ]( const QString& url ) { this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); @@ -87,20 +87,25 @@ TrackingPage::retranslate() .arg( product ) ); } -void TrackingPage::noneChecked(int state) +bool TrackingPage::anyOtherChecked() const +{ + return ui->installCheckBox->isChecked() || ui->machineCheckBox->isChecked() || ui->userCheckBox->isChecked(); +} + + +void TrackingPage::buttonNoneChecked(int state) { if ( state ) { - cDebug() << "Unchecking all due to none box"; + cDebug() << "Unchecking all other buttons because 'None' was checked"; ui->installCheckBox->setChecked( false ); ui->machineCheckBox->setChecked( false ); ui->userCheckBox->setChecked( false ); } } -void TrackingPage::otherChecked(int state) +void TrackingPage::buttonChecked(int state) { - cDebug() << "Other checked" << state; if ( state ) { // Can't have none checked, if another one is @@ -108,12 +113,7 @@ void TrackingPage::otherChecked(int state) } else { - if ( ui->installCheckBox->isChecked() || ui->machineCheckBox->isChecked() || ui->userCheckBox->isChecked() ) - { - // One of them is still checked, leave *none* alone - ; - } - else + if ( !anyOtherChecked() ) { ui->noneCheckBox->setChecked( true ); } diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index e4c465fbc..1a995870d 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -37,6 +37,13 @@ class TrackingPage : public QWidget public: explicit TrackingPage( Config* config, QWidget* parent = nullptr ); + /** @brief is any of the enable-tracking buttons checked? + * + * Returns true if any one or more of install, machine or user + * tracking is enabled. + */ + bool anyOtherChecked() const; + public Q_SLOTS: void retranslate(); @@ -45,14 +52,14 @@ public Q_SLOTS: * @p state will be non-zero when the box is checked; this * **unchecks** all the other boxes. */ - void noneChecked( int state ); + void buttonNoneChecked( int state ); /** @brief Some other checkbox changed * * This may check the *none* button if all the others are * now unchecked. */ - void otherChecked( int state ); + void buttonChecked( int state ); private: Ui::TrackingPage* ui; From c797a30a72050a525785c24917de56a7f5a73ce4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 10:10:20 +0200 Subject: [PATCH 122/335] [tracking] Bold more relevant parts of level-descriptions --- src/modules/tracking/TrackingPage.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index fa5cba2bb..cb7e5a10a 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -76,14 +76,14 @@ TrackingPage::retranslate() .arg( product ) ); ui->installExplanation->setText( tr( "By selecting this you will send information about your installation and hardware. This information " - "will only be sent once after the installation finishes." ) ); + "will only be sent once after the installation finishes." ) ); ui->machineExplanation->setText( - tr( "By selecting this you will periodically send information about your machine installation, " + tr( "By selecting this you will periodically send information about your machine installation, " "hardware and applications, to %1." ) .arg( product ) ); ui->userExplanation->setText( - tr( "By selecting this you will regularly send information about your " - "user installation, hardware, applications and application usage patterns, to %1." ) + tr( "By selecting this you will regularly send information about your " + "user installation, hardware, applications and application usage patterns, to %1." ) .arg( product ) ); } From 4d6a5d0cb537d9af4968f0b68a2cc274b38fa11f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 10:36:35 +0200 Subject: [PATCH 123/335] [tracking] Use KMacroExpander instead of homebrew for install-URL --- src/modules/tracking/TrackingJobs.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 18d01c7ca..0b27eab05 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -24,6 +24,8 @@ #include "utils/CalamaresUtilsSystem.h" #include "utils/Logger.h" +#include + #include #include @@ -79,14 +81,13 @@ TrackingInstallJob::addJob( Calamares::JobList& list, InstallTrackingConfig* con { if ( config->isEnabled() ) { - QString installUrl = config->installTrackingUrl(); const auto* s = CalamaresUtils::System::instance(); - - QString memory, disk; - memory.setNum( s->getTotalMemoryB().first ); - disk.setNum( s->getTotalDiskB() ); - - installUrl.replace( "$CPU", s->getCpuDescription() ).replace( "$MEMORY", memory ).replace( "$DISK", disk ); + QHash map { std::initializer_list< std::pair< QString, QString > > { + { QStringLiteral("CPU"), s->getCpuDescription() }, + { QStringLiteral("MEMORY"), QString::number( s->getTotalMemoryB().first ) }, + { QStringLiteral("DISK"), QString::number( s->getTotalDiskB() ) } + } }; + QString installUrl = KMacroExpander::expandMacros( config->installTrackingUrl(), map ); cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; From cb2909f6d875fa90f15f50f45f633ff8e8f59b13 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 10:18:08 +0200 Subject: [PATCH 124/335] [tracking] Rename "neon" tracking KDE neon does not do this kind of tracking -- although it was originally requested by KDE neon, no server roll-out was done once the privacy policy was thought out. --- src/modules/tracking/Config.cpp | 2 +- src/modules/tracking/Config.h | 2 +- src/modules/tracking/TrackingJobs.cpp | 12 ++++++------ src/modules/tracking/TrackingJobs.h | 6 +++--- src/modules/tracking/TrackingViewStep.cpp | 8 -------- src/modules/tracking/tracking.conf | 4 ++-- 6 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 2dc91c2a9..a75522529 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -129,7 +129,7 @@ MachineTrackingConfig::MachineTrackingConfig( QObject* parent ) static bool isValidMachineTrackingStyle( const QString& s ) { - static QStringList knownStyles { "neon" }; + static QStringList knownStyles { "updatemanager" }; return knownStyles.contains( s ); } diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 26dcf2f4f..0bdff260a 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -118,7 +118,7 @@ private: * * When machine tracking is on, the installed system will report * back ("call home") at some point. This can mean Debian pop-con, - * or KDE neon maching tracking, or something else. The kind + * or updatemanager maching tracking, or something else. The kind * of configuration depends on the style of tracking that is enabled. */ class MachineTrackingConfig : public TrackingStyleConfig diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 0b27eab05..70e45e2eb 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -101,9 +101,9 @@ TrackingMachineJob::addJob( Calamares::JobList& list, MachineTrackingConfig* con if ( config->isEnabled() ) { const auto style = config->machineTrackingStyle(); - if ( style == "neon" ) + if ( style == "updatemanager" ) { - list.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) ); + list.append( Calamares::job_ptr( new TrackingMachineUpdateManagerJob() ) ); } else { @@ -114,25 +114,25 @@ TrackingMachineJob::addJob( Calamares::JobList& list, MachineTrackingConfig* con QString -TrackingMachineNeonJob::prettyName() const +TrackingMachineUpdateManagerJob::prettyName() const { return tr( "Machine feedback" ); } QString -TrackingMachineNeonJob::prettyDescription() const +TrackingMachineUpdateManagerJob::prettyDescription() const { return prettyName(); } QString -TrackingMachineNeonJob::prettyStatusMessage() const +TrackingMachineUpdateManagerJob::prettyStatusMessage() const { return tr( "Configuring machine feedback." ); } Calamares::JobResult -TrackingMachineNeonJob::exec() +TrackingMachineUpdateManagerJob::exec() { static const auto script = QStringLiteral( R"x( diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index 76e7dbed9..dd5ca6b92 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -76,13 +76,13 @@ public: static void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); }; -/** @brief Tracking machines, KDE neon style +/** @brief Tracking machines, update-manager style * * The machine has a machine-id, and this is sed(1)'ed into the * update-manager configuration, to report the machine-id back - * to KDE neon servers. + * to distro servers. */ -class TrackingMachineNeonJob : public TrackingMachineJob +class TrackingMachineUpdateManagerJob : public TrackingMachineJob { Q_OBJECT public: diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 491fef12a..2cbfe4ae2 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -34,14 +34,6 @@ CALAMARES_PLUGIN_FACTORY_DEFINITION( TrackingViewStepFactory, registerPlugin< TrackingViewStep >(); ) -/** @brief Is @p s a valid machine-tracking style. */ -static bool -isValidStyle( const QString& s ) -{ - static QStringList knownStyles { "neon" }; - return knownStyles.contains( s ); -} - TrackingViewStep::TrackingViewStep( QObject* parent ) : Calamares::ViewStep( parent ) , m_config( new Config( this ) ) diff --git a/src/modules/tracking/tracking.conf b/src/modules/tracking/tracking.conf index 46ba7fed6..8569f0935 100644 --- a/src/modules/tracking/tracking.conf +++ b/src/modules/tracking/tracking.conf @@ -77,11 +77,11 @@ install: # The machine area has one specific configuration key: # style: This string specifies what kind of tracking configuration # needs to be done. There is currently only one valid -# style, "neon", which edits two files in the installed +# style, "updatemanager", which edits two files in the installed # system to enable system-tracking. machine: enabled: false - style: neon + style: updatemanager # The user area is not yet implemented, and has no specific configuration. user: From 48d0c5beeb3587a815d990b8e95f5003eb6f99a2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 11:02:59 +0200 Subject: [PATCH 125/335] [tracking] Do user tracking in the job queue --- src/modules/tracking/TrackingViewStep.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 2cbfe4ae2..125d17974 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -111,6 +111,8 @@ TrackingViewStep::jobs() const Calamares::JobList l; TrackingInstallJob::addJob( l, m_config->installTracking() ); TrackingMachineJob::addJob( l, m_config->machineTracking() ); + TrackingUserJob::addJob( l, m_config->userTracking() ); + cDebug() << Logger::SubEntry << l.count() << "jobs queued."; return l; } From 9433311f2404066b94eafdf56dd041c8e370f1f8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 11:17:48 +0200 Subject: [PATCH 126/335] [tracking] Explain which tracking style is disabled by URL-validation --- src/modules/tracking/Config.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index a75522529..30c6c30d1 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -87,7 +87,7 @@ TrackingStyleConfig::validateUrl( QString& urlString ) { if ( m_state != DisabledByConfig ) { - cError() << "URL" << urlString << "is not valid; disabling this tracking type."; + cError() << "URL" << urlString << "is not valid; disabling tracking type" << objectName(); m_state = DisabledByConfig; emit trackingChanged(); } @@ -109,6 +109,7 @@ TrackingStyleConfig::setConfigurationMap( const QVariantMap& config ) InstallTrackingConfig::InstallTrackingConfig( QObject* parent ) : TrackingStyleConfig( parent ) { + setObjectName( "InstallTrackingConfig" ); } void @@ -123,6 +124,7 @@ InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap MachineTrackingConfig::MachineTrackingConfig( QObject* parent ) : TrackingStyleConfig( parent ) { + setObjectName( "MachineTrackingConfig" ); } /** @brief Is @p s a valid machine-tracking style. */ @@ -146,6 +148,7 @@ MachineTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap UserTrackingConfig::UserTrackingConfig( QObject* parent ) : TrackingStyleConfig( parent ) { + setObjectName( "UserTrackingConfig" ); } static bool From 756e3084dc421a2db0cc3e0bb1110b3d3751df8d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 11:30:12 +0200 Subject: [PATCH 127/335] [tracking] Simplify updatemanager job - sed all the URI lines with a simple replacement - document policy requirements --- src/modules/tracking/TrackingJobs.cpp | 20 +++++++++----------- src/modules/tracking/tracking.conf | 14 ++++++++++---- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 70e45e2eb..3d8ea27f1 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -134,17 +134,15 @@ TrackingMachineUpdateManagerJob::prettyStatusMessage() const Calamares::JobResult TrackingMachineUpdateManagerJob::exec() { - static const auto script = QStringLiteral( - R"x( -MACHINE_ID=`cat /etc/machine-id` -sed -i "s,URI =.*,URI = http://releases.neon.kde.org/meta-release/${MACHINE_ID}," /etc/update-manager/meta-release -sed -i "s,URI_LTS =.*,URI_LTS = http://releases.neon.kde.org/meta-release-lts/${MACHINE_ID}," /etc/update-manager/meta-release -true -)x" ); - int r = CalamaresUtils::System::instance()->targetEnvCall( "/bin/sh", - QString(), // Working dir - script, - std::chrono::seconds( 1 ) ); + static const auto script = QStringLiteral( "sed -i '/^URI/s,${MACHINE_ID},'`cat /etc/machine-id`',' /etc/update-manager/meta-release || true" ); + + auto res = CalamaresUtils::System::instance()->runCommand( + CalamaresUtils::System::RunLocation::RunInTarget, + QStringList { QStringLiteral( "/bin/sh" ) }, + QString(), // Working dir + script, // standard input + std::chrono::seconds( 1 ) ); + int r = res.first; if ( r == 0 ) { diff --git a/src/modules/tracking/tracking.conf b/src/modules/tracking/tracking.conf index 8569f0935..88d1e7b59 100644 --- a/src/modules/tracking/tracking.conf +++ b/src/modules/tracking/tracking.conf @@ -34,8 +34,10 @@ # Each area has a key *policy*, which is a Url to be opened when # the user clicks on the corresponding Help button for an explanation # of the details of that particular kind of tracking. If no policy -# is set, the help button is hidden. The example policy links -# go to Calamares' generic user manual. +# is set, that tracking style is disabled. The example policy links +# go to Calamares' generic user manual (which is a terrible idea +# for distro's: you have GDPR obligations under most of these tracking +# styles, so do your homework). # # Each area may have other configuration keys, depending on the # area and how it needs to be configured. @@ -48,8 +50,7 @@ --- # This is the global policy; it is displayed as a link on the page. # If blank or commented out, no link is displayed on the tracking -# page. It is recommended to either provide policy URLs for each -# area, *or* one general link, and not to mix them. +# page. You **must** provide policy links per-area as well. policy: "https://github.com/calamares/calamares/wiki/Use-Guide#installation-tracking" # This is the default level to enable for tracking. If commented out, @@ -79,9 +80,14 @@ install: # needs to be done. There is currently only one valid # style, "updatemanager", which edits two files in the installed # system to enable system-tracking. +# +# Per-style documentation: +# - updatemanager replaces the literal string "${MACHINE_ID}" with the contents of +# /etc/machine-id, in lines starting with "URI" in the file /etc/update-manager/meta-release machine: enabled: false style: updatemanager + policy: "https://github.com/calamares/calamares/wiki/Use-Guide#machine-tracking" # The user area is not yet implemented, and has no specific configuration. user: From 8c1685d2cf327fc97f71a37a728c21b43ac07697 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 12:20:35 +0200 Subject: [PATCH 128/335] [tracking] Connect UI to configuration - policy buttons open the policy URL - hide tracking levels that are not configurable --- src/modules/tracking/TrackingPage.cpp | 33 +++++++++++++++++++++------ src/modules/tracking/TrackingPage.h | 10 ++++++++ 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index cb7e5a10a..d206a20a3 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -29,7 +29,6 @@ #include "utils/Logger.h" #include "utils/Retranslator.h" -#include #include #include @@ -42,13 +41,26 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) ui->noneCheckBox->setChecked( true ); connect( ui->noneCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonNoneChecked ); - connect( ui->installCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); - connect( ui->machineCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); - connect( ui->userCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); - connect( ui->installCheckBox, &QCheckBox::stateChanged, [ this ]( int s ) { cDebug() << "Checkbox install changed" << s; } ); - connect( config->installTracking(), &TrackingStyleConfig::trackingChanged, [ config ]() { cDebug() << - "Install tracking configuration changed to " << config->installTracking()->isEnabled(); } ) ; + // Each "panel" of configuration has the same kind of setup, + // where the xButton and xCheckBox is connected to the xTracking + // configuration object; that takes macro-trickery, unfortunately. +#define trackingSetup(x) { \ + connect( ui->x ## CheckBox, &QCheckBox::stateChanged, \ + this, &TrackingPage::buttonChecked ); \ + connect( ui->x ## CheckBox, &QCheckBox::stateChanged, \ + config->x ## Tracking(), QOverload::of( &TrackingStyleConfig::setTracking ) ); \ + connect( config->x ## Tracking(), &TrackingStyleConfig::trackingChanged, \ + this, [ this, config ]() { this->trackerChanged( config->x ## Tracking(), this->ui->x ## Group, this->ui->x ## CheckBox);} ); \ + connect( ui->x ## PolicyButton, &QAbstractButton::clicked, \ + config, [ config ] { QString url( config->x ## Tracking()->policy() ); if ( !url.isEmpty() ) { QDesktopServices::openUrl( url ); } } ); \ +} + + trackingSetup( install ) + trackingSetup( machine ) + trackingSetup( user ) + +#undef trackingSetup connect( config, &Config::generalPolicyChanged, [ this ]( const QString& url ) { this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); @@ -119,3 +131,10 @@ void TrackingPage::buttonChecked(int state) } } } + +void +TrackingPage::trackerChanged(TrackingStyleConfig* config, QWidget* panel, QCheckBox* check) +{ + panel->setVisible( config->isConfigurable() ); + check->setChecked( config->isEnabled() ); +} diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index 1a995870d..48599ead4 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -21,6 +21,7 @@ #include "TrackingType.h" +#include #include #include @@ -30,6 +31,7 @@ class TrackingPage; } class Config; +class TrackingStyleConfig; class TrackingPage : public QWidget { @@ -62,6 +64,14 @@ public Q_SLOTS: void buttonChecked( int state ); private: + /** @brief Apply the tracking configuration to the UI + * + * If the config cannot be changed (disabled in config) then + * hide the UI parts on the @p panel; otherwise show it + * and set @p check state to whether the user has enabled it. + */ + void trackerChanged( TrackingStyleConfig* subconfig, QWidget* panel, QCheckBox* check); + Ui::TrackingPage* ui; }; From 45aac7db6658eacbb8095cf712fc87e24fdb96d0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 07:53:40 -0400 Subject: [PATCH 129/335] CI: update clang-format In clang-format 10, SpaceInEmptyBlock is introduced, and defaults to true .. which is different from the earlier formatting versions did. For now, refuse clang-format 10, and search specifically also for clang-format-9.0.1 because that's what I have on my laptop. At some point, switch in the config option and then require clang-format 10 or later (because earlier versions refuse to run with an unknown config option) --- .clang-format | 1 + ci/calamaresstyle | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index cc430e627..187c3638f 100644 --- a/.clang-format +++ b/.clang-format @@ -26,6 +26,7 @@ ReflowComments: "false" SortIncludes: "true" SpaceAfterCStyleCast: "false" SpacesBeforeTrailingComments: "2" +# SpaceInEmptyBlock: "true" SpacesInAngles: "true" SpacesInParentheses: "true" SpacesInSquareBrackets: "true" diff --git a/ci/calamaresstyle b/ci/calamaresstyle index 6a8285124..44f9fe91f 100755 --- a/ci/calamaresstyle +++ b/ci/calamaresstyle @@ -13,7 +13,7 @@ export LANG LC_ALL LC_NUMERIC AS=$( which astyle ) -CF_VERSIONS="clang-format-7 clang-format-8 clang-format70 clang-format80 clang-format" +CF_VERSIONS="clang-format-7 clang-format-8 clang-format70 clang-format80 clang-format-9.0.1 clang-format" for _cf in $CF_VERSIONS do # Not an error if this particular clang-format isn't found @@ -26,6 +26,8 @@ test -n "$CF" || { echo "! No clang-format ($CF_VERSIONS) found in PATH"; exit 1 test -x "$AS" || { echo "! $AS is not executable."; exit 1 ; } test -x "$CF" || { echo "! $CF is not executable."; exit 1 ; } +expr `"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1` '<' 10 > /dev/null || { echo "! $CF is version 10 or later, needs different .clang-format" ; exit 1 ; } + set -e any_dirs=no From 789561be6a6c4f1ff280c6c01bb4688ca3b97bfb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 14:14:06 +0200 Subject: [PATCH 130/335] [tracking] Apply coding style --- src/modules/tracking/Config.cpp | 28 ++++++------ src/modules/tracking/TrackingJobs.cpp | 25 +++++------ src/modules/tracking/TrackingPage.cpp | 53 +++++++++++++---------- src/modules/tracking/TrackingPage.h | 2 +- src/modules/tracking/TrackingViewStep.cpp | 1 - 5 files changed, 58 insertions(+), 51 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 30c6c30d1..723465862 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -47,7 +47,7 @@ TrackingStyleConfig::TrackingStyleConfig( QObject* parent ) { } -TrackingStyleConfig::~TrackingStyleConfig() { } +TrackingStyleConfig::~TrackingStyleConfig() {} void TrackingStyleConfig::setTracking( bool enabled ) @@ -179,20 +179,20 @@ Config::Config( QObject* parent ) static void enableLevelsBelow( Config* config, TrackingType level ) { - switch( level ) + switch ( level ) { - case TrackingType::UserTracking: - config->userTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); - FALLTHRU; - case TrackingType::MachineTracking: - config->machineTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); - FALLTHRU; - case TrackingType::InstallTracking: - config->installTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); - break; - case TrackingType::NoTracking: - config->noTracking( true ); - break; + case TrackingType::UserTracking: + config->userTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); + FALLTHRU; + case TrackingType::MachineTracking: + config->machineTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); + FALLTHRU; + case TrackingType::InstallTracking: + config->installTracking()->setTracking( TrackingStyleConfig::TrackingState::EnabledByUser ); + break; + case TrackingType::NoTracking: + config->noTracking( true ); + break; } } diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 3d8ea27f1..cd885194c 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -36,7 +36,7 @@ TrackingInstallJob::TrackingInstallJob( const QString& url ) { } -TrackingInstallJob::~TrackingInstallJob() { } +TrackingInstallJob::~TrackingInstallJob() {} QString TrackingInstallJob::prettyName() const @@ -82,11 +82,10 @@ TrackingInstallJob::addJob( Calamares::JobList& list, InstallTrackingConfig* con if ( config->isEnabled() ) { const auto* s = CalamaresUtils::System::instance(); - QHash map { std::initializer_list< std::pair< QString, QString > > { - { QStringLiteral("CPU"), s->getCpuDescription() }, - { QStringLiteral("MEMORY"), QString::number( s->getTotalMemoryB().first ) }, - { QStringLiteral("DISK"), QString::number( s->getTotalDiskB() ) } - } }; + QHash< QString, QString > map { std::initializer_list< std::pair< QString, QString > > { + { QStringLiteral( "CPU" ), s->getCpuDescription() }, + { QStringLiteral( "MEMORY" ), QString::number( s->getTotalMemoryB().first ) }, + { QStringLiteral( "DISK" ), QString::number( s->getTotalDiskB() ) } } }; QString installUrl = KMacroExpander::expandMacros( config->installTrackingUrl(), map ); cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; @@ -134,14 +133,14 @@ TrackingMachineUpdateManagerJob::prettyStatusMessage() const Calamares::JobResult TrackingMachineUpdateManagerJob::exec() { - static const auto script = QStringLiteral( "sed -i '/^URI/s,${MACHINE_ID},'`cat /etc/machine-id`',' /etc/update-manager/meta-release || true" ); + static const auto script = QStringLiteral( + "sed -i '/^URI/s,${MACHINE_ID},'`cat /etc/machine-id`',' /etc/update-manager/meta-release || true" ); - auto res = CalamaresUtils::System::instance()->runCommand( - CalamaresUtils::System::RunLocation::RunInTarget, - QStringList { QStringLiteral( "/bin/sh" ) }, - QString(), // Working dir - script, // standard input - std::chrono::seconds( 1 ) ); + auto res = CalamaresUtils::System::instance()->runCommand( CalamaresUtils::System::RunLocation::RunInTarget, + QStringList { QStringLiteral( "/bin/sh" ) }, + QString(), // Working dir + script, // standard input + std::chrono::seconds( 1 ) ); int r = res.first; if ( r == 0 ) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index d206a20a3..c9234d01c 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -45,27 +45,33 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) // Each "panel" of configuration has the same kind of setup, // where the xButton and xCheckBox is connected to the xTracking // configuration object; that takes macro-trickery, unfortunately. -#define trackingSetup(x) { \ - connect( ui->x ## CheckBox, &QCheckBox::stateChanged, \ - this, &TrackingPage::buttonChecked ); \ - connect( ui->x ## CheckBox, &QCheckBox::stateChanged, \ - config->x ## Tracking(), QOverload::of( &TrackingStyleConfig::setTracking ) ); \ - connect( config->x ## Tracking(), &TrackingStyleConfig::trackingChanged, \ - this, [ this, config ]() { this->trackerChanged( config->x ## Tracking(), this->ui->x ## Group, this->ui->x ## CheckBox);} ); \ - connect( ui->x ## PolicyButton, &QAbstractButton::clicked, \ - config, [ config ] { QString url( config->x ## Tracking()->policy() ); if ( !url.isEmpty() ) { QDesktopServices::openUrl( url ); } } ); \ -} +#define trackingSetup( x ) \ + { \ + connect( ui->x##CheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); \ + connect( ui->x##CheckBox, \ + &QCheckBox::stateChanged, \ + config->x##Tracking(), \ + QOverload< bool >::of( &TrackingStyleConfig::setTracking ) ); \ + connect( config->x##Tracking(), &TrackingStyleConfig::trackingChanged, this, [this, config]() { \ + this->trackerChanged( config->x##Tracking(), this->ui->x##Group, this->ui->x##CheckBox ); \ + } ); \ + connect( ui->x##PolicyButton, &QAbstractButton::clicked, config, [config] { \ + QString url( config->x##Tracking()->policy() ); \ + if ( !url.isEmpty() ) \ + { \ + QDesktopServices::openUrl( url ); \ + } \ + } ); \ + } - trackingSetup( install ) - trackingSetup( machine ) - trackingSetup( user ) + trackingSetup( install ) trackingSetup( machine ) trackingSetup( user ) #undef trackingSetup - connect( config, &Config::generalPolicyChanged, [ this ]( const QString& url ) { - this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); - } ); - connect( ui->generalPolicyLabel, &QLabel::linkActivated, [ config ] { + connect( config, &Config::generalPolicyChanged, [this]( const QString& url ) { + this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); + } ); + connect( ui->generalPolicyLabel, &QLabel::linkActivated, [config] { QString url( config->generalPolicy() ); if ( !url.isEmpty() ) { @@ -99,13 +105,15 @@ TrackingPage::retranslate() .arg( product ) ); } -bool TrackingPage::anyOtherChecked() const +bool +TrackingPage::anyOtherChecked() const { - return ui->installCheckBox->isChecked() || ui->machineCheckBox->isChecked() || ui->userCheckBox->isChecked(); + return ui->installCheckBox->isChecked() || ui->machineCheckBox->isChecked() || ui->userCheckBox->isChecked(); } -void TrackingPage::buttonNoneChecked(int state) +void +TrackingPage::buttonNoneChecked( int state ) { if ( state ) { @@ -116,7 +124,8 @@ void TrackingPage::buttonNoneChecked(int state) } } -void TrackingPage::buttonChecked(int state) +void +TrackingPage::buttonChecked( int state ) { if ( state ) { @@ -133,7 +142,7 @@ void TrackingPage::buttonChecked(int state) } void -TrackingPage::trackerChanged(TrackingStyleConfig* config, QWidget* panel, QCheckBox* check) +TrackingPage::trackerChanged( TrackingStyleConfig* config, QWidget* panel, QCheckBox* check ) { panel->setVisible( config->isConfigurable() ); check->setChecked( config->isEnabled() ); diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index 48599ead4..7df43b846 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -70,7 +70,7 @@ private: * hide the UI parts on the @p panel; otherwise show it * and set @p check state to whether the user has enabled it. */ - void trackerChanged( TrackingStyleConfig* subconfig, QWidget* panel, QCheckBox* check); + void trackerChanged( TrackingStyleConfig* subconfig, QWidget* panel, QCheckBox* check ); Ui::TrackingPage* ui; }; diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 125d17974..8a80b2b57 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -122,4 +122,3 @@ TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { m_config->setConfigurationMap( configurationMap ); } - From 5623d8086bce1785bb26d505d12c5d5595aeaa28 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 14:27:23 +0200 Subject: [PATCH 131/335] [tracking] Apply coding style - massage trackingSetup macro to look like a function call --- src/modules/tracking/TrackingPage.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index c9234d01c..2dfc6050a 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -46,6 +46,7 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) // where the xButton and xCheckBox is connected to the xTracking // configuration object; that takes macro-trickery, unfortunately. #define trackingSetup( x ) \ + do \ { \ connect( ui->x##CheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonChecked ); \ connect( ui->x##CheckBox, \ @@ -62,15 +63,17 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) QDesktopServices::openUrl( url ); \ } \ } ); \ - } + } while ( false ) - trackingSetup( install ) trackingSetup( machine ) trackingSetup( user ) + trackingSetup( install ); + trackingSetup( machine ); + trackingSetup( user ); #undef trackingSetup - connect( config, &Config::generalPolicyChanged, [this]( const QString& url ) { - this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); - } ); + connect( config, &Config::generalPolicyChanged, [this]( const QString& url ) { + this->ui->generalPolicyLabel->setVisible( !url.isEmpty() ); + } ); connect( ui->generalPolicyLabel, &QLabel::linkActivated, [config] { QString url( config->generalPolicy() ); if ( !url.isEmpty() ) From 3f55d415e980ef521fd538f5ee9526f53bd91f0c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 14:26:14 +0200 Subject: [PATCH 132/335] [tracking] Make names of user-tracking styles consistent - use kuserfeedback instead of "kde", to name the technology, not the community --- src/modules/tracking/Config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 723465862..51e51e7c8 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -154,7 +154,7 @@ UserTrackingConfig::UserTrackingConfig( QObject* parent ) static bool isValidUserTrackingStyle( const QString& s ) { - static QStringList knownStyles { "kde" }; + static QStringList knownStyles { "kuserfeedback" }; return knownStyles.contains( s ); } From 98ab4330c45143201f4f5ce9202c9e95939383a0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 14:52:48 +0200 Subject: [PATCH 133/335] [tracking] expand documentation of configuration --- src/modules/tracking/tracking.conf | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/modules/tracking/tracking.conf b/src/modules/tracking/tracking.conf index 88d1e7b59..533d0e0dd 100644 --- a/src/modules/tracking/tracking.conf +++ b/src/modules/tracking/tracking.conf @@ -28,7 +28,7 @@ # policy applies. # # Each area has a key *enabled*. If the area is enabled, it is shown to -# the user. This defaults to off, which means no tracking would be +# the user. This defaults to false, which means no tracking would be # configured or enabled by Calamares. # # Each area has a key *policy*, which is a Url to be opened when @@ -53,9 +53,11 @@ # page. You **must** provide policy links per-area as well. policy: "https://github.com/calamares/calamares/wiki/Use-Guide#installation-tracking" -# This is the default level to enable for tracking. If commented out, +# This is the default area to enable for tracking. If commented out, # empty, or otherwise invalid, "none" is used, so no tracking by default. -default: user +# Setting an area here also checks the areas before it (install, machine, +# then user) by default -- subject to those areas being enabled at all. +# default: user # The install area has one specific configuration key: # url: this URL (remember to include the protocol, and prefer https) @@ -73,22 +75,28 @@ default: user install: enabled: false policy: "https://github.com/calamares/calamares/wiki/Use-Guide#installation-tracking" - # url: "https://example.com/install.php?c=$CPU&m=$MEMORY" + url: "https://example.com/install.php?c=$CPU&m=$MEMORY" # The machine area has one specific configuration key: # style: This string specifies what kind of tracking configuration -# needs to be done. There is currently only one valid -# style, "updatemanager", which edits two files in the installed -# system to enable system-tracking. +# needs to be done. See below for valid styles. # -# Per-style documentation: -# - updatemanager replaces the literal string "${MACHINE_ID}" with the contents of +# Available styles: +# - *updatemanager* replaces the literal string "${MACHINE_ID}" with the contents of # /etc/machine-id, in lines starting with "URI" in the file /etc/update-manager/meta-release machine: enabled: false style: updatemanager policy: "https://github.com/calamares/calamares/wiki/Use-Guide#machine-tracking" -# The user area is not yet implemented, and has no specific configuration. +# The user area has one specific configuration key: +# style: This string specifies what kind of tracking configuration +# needs to be done. See below for valid styles. +# +# Available styles: +# - *kuserfeedback* sets up KUserFeedback tracking (applicable to the KDE +# Plasma Desktop) for each KUserFeedback area listed in *areas*. user: enabled: false + style: kuserfeedback + areas: [ PlasmaUserFeedback ] From e834ce532c35931386eb3e50bf3ff9cce2e84d81 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 15:02:01 +0200 Subject: [PATCH 134/335] [libcalamares] Add variant-map getStringList() convenience --- src/libcalamares/utils/Variant.cpp | 16 +++++++++++++++- src/libcalamares/utils/Variant.h | 7 ++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index cf6ff91fe..dc20e73b2 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * @@ -65,6 +65,20 @@ getString( const QVariantMap& map, const QString& key ) return QString(); } +QStringList +getStringList( const QVariantMap& map, const QString& key ) +{ + if ( map.contains( key ) ) + { + auto v = map.value( key ); + if ( v.type() == QVariant::StringList ) + { + return v.toStringList(); + } + } + return QStringList(); +} + qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d ) { diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index a05d281c3..643d8ae98 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * @@ -43,6 +43,11 @@ DLLEXPORT bool getBool( const QVariantMap& map, const QString& key, bool d ); */ DLLEXPORT QString getString( const QVariantMap& map, const QString& key ); +/** + * Get a string list from a mapping; returns empty list if no value. + */ +DLLEXPORT QStringList getStringList( const QVariantMap& map, const QString& key ); + /** * Get an integer value from a mapping; returns @p d if no value. */ From 9b8d591b5dc63279d6bcbd9b6ddb3a78cd59d9d6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 15:11:11 +0200 Subject: [PATCH 135/335] [tracking] Configure user-tracking areas --- src/modules/tracking/Config.cpp | 2 ++ src/modules/tracking/Config.h | 2 ++ src/modules/tracking/TrackingJobs.cpp | 14 ++++++++++---- src/modules/tracking/TrackingJobs.h | 6 ++++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 51e51e7c8..6d9dbb10b 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -165,6 +165,8 @@ UserTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) m_userTrackingStyle = CalamaresUtils::getString( configurationMap, "style" ); validate( m_userTrackingStyle, isValidUserTrackingStyle ); + + m_userTrackingAreas = CalamaresUtils::getStringList( configurationMap, "areas" ); } diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 0bdff260a..fb279ea93 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -149,9 +149,11 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ); QString userTrackingStyle() { return m_userTrackingStyle; } + QStringList userTrackingAreas() const { return m_userTrackingAreas; } private: QString m_userTrackingStyle; + QStringList m_userTrackingAreas; // fine-grained areas }; class Config : public QObject diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index cd885194c..35d51ce64 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -169,7 +169,8 @@ TrackingUserJob::addJob( Calamares::JobList& list, UserTrackingConfig* config ) const auto style = config->userTrackingStyle(); if ( style == "kuserfeedback" ) { - list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob() ) ); + list.append( + Calamares::job_ptr( new TrackingKUserFeedbackJob( QString( "root" ), config->userTrackingAreas() ) ) ); } else { @@ -178,6 +179,12 @@ TrackingUserJob::addJob( Calamares::JobList& list, UserTrackingConfig* config ) } } +TrackingKUserFeedbackJob::TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ) + : m_username( username ) + , m_areas( areas ) +{ +} + QString TrackingKUserFeedbackJob::prettyName() const { @@ -206,10 +213,9 @@ TrackingKUserFeedbackJob::exec() FeedbackLevel=16 )x"; - for ( const QString& area : QStringList { "PlasmaUserFeedback" } ) + for ( const QString& area : m_areas ) { - // TODO: get the configured user name - QString path = QStringLiteral( "/home/%1/.config/%2" ).arg( QString(), area ); + QString path = QStringLiteral( "/home/%1/.config/%2" ).arg( m_username, area ); cDebug() << "Configuring KUserFeedback" << path; int r = CalamaresUtils::System::instance()->createTargetFile( path, config ); diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index dd5ca6b92..c65c8f621 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -114,10 +114,16 @@ public: class TrackingKUserFeedbackJob : public Calamares::Job { public: + TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ); + QString prettyName() const override; QString prettyDescription() const override; QString prettyStatusMessage() const override; Calamares::JobResult exec() override; + +private: + QString m_username; + QStringList m_areas; }; #endif From 47b0fa5d55f4a9f44089c3c4dba3c06fbbe2d317 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 15:24:21 +0200 Subject: [PATCH 136/335] [tracking] Get username from gs --- src/modules/tracking/TrackingJobs.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 35d51ce64..2087804ec 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -20,6 +20,8 @@ #include "Config.h" +#include "GlobalStorage.h" +#include "JobQueue.h" #include "network/Manager.h" #include "utils/CalamaresUtilsSystem.h" #include "utils/Logger.h" @@ -166,11 +168,20 @@ TrackingUserJob::addJob( Calamares::JobList& list, UserTrackingConfig* config ) { if ( config->isEnabled() ) { + const auto* gs = Calamares::JobQueue::instance()->globalStorage(); + static const auto key = QStringLiteral( "username" ); + QString username = ( gs && gs->contains( key ) ) ? gs->value( key ).toString() : QString(); + + if ( username.isEmpty() ) + { + cWarning() << "No username is set in GlobalStorage, skipping user-tracking."; + return; + } + const auto style = config->userTrackingStyle(); if ( style == "kuserfeedback" ) { - list.append( - Calamares::job_ptr( new TrackingKUserFeedbackJob( QString( "root" ), config->userTrackingAreas() ) ) ); + list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob( username, config->userTrackingAreas() ) ) ); } else { From 8ad221311d64d2469bf22fa03c73961f9c3be995 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 17 Jun 2020 15:31:53 +0200 Subject: [PATCH 137/335] [tracking] Can't uncheck 'none' box by itself - If the 'no tracking' box is checked, then the way to uncheck it is to tick some **other** box. - It doesn't make sense to unselect 'none' and then have .. none selected. --- src/modules/tracking/TrackingPage.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 2dfc6050a..618e1bc8f 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -40,6 +40,7 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent ) CALAMARES_RETRANSLATE_SLOT( &TrackingPage::retranslate ); ui->noneCheckBox->setChecked( true ); + ui->noneCheckBox->setEnabled( false ); connect( ui->noneCheckBox, &QCheckBox::stateChanged, this, &TrackingPage::buttonNoneChecked ); // Each "panel" of configuration has the same kind of setup, @@ -124,6 +125,7 @@ TrackingPage::buttonNoneChecked( int state ) ui->installCheckBox->setChecked( false ); ui->machineCheckBox->setChecked( false ); ui->userCheckBox->setChecked( false ); + ui->noneCheckBox->setEnabled( false ); } } @@ -133,6 +135,7 @@ TrackingPage::buttonChecked( int state ) if ( state ) { // Can't have none checked, if another one is + ui->noneCheckBox->setEnabled( true ); ui->noneCheckBox->setChecked( false ); } else @@ -140,6 +143,7 @@ TrackingPage::buttonChecked( int state ) if ( !anyOtherChecked() ) { ui->noneCheckBox->setChecked( true ); + ui->noneCheckBox->setEnabled( false ); } } } From fc91b4ce602bbf08cbe8162df2086205f21c471f Mon Sep 17 00:00:00 2001 From: demmm Date: Wed, 17 Jun 2020 16:52:59 +0200 Subject: [PATCH 138/335] [localeq] use js to get the hasInternet status switching between Map.qml & Offline.qml now happens properly --- src/modules/localeq/localeq.qml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/modules/localeq/localeq.qml b/src/modules/localeq/localeq.qml index 0abdebfc9..ffd87f5b5 100644 --- a/src/modules/localeq/localeq.qml +++ b/src/modules/localeq/localeq.qml @@ -34,6 +34,32 @@ Page { //Needs to come from .conf/geoip property var hasInternet: true + function getInt(format) { + var requestURL = "https://example.org/"; + var xhr = new XMLHttpRequest; + + xhr.onreadystatechange = function() { + if (xhr.readyState === XMLHttpRequest.DONE) { + + if (xhr.status !== 200) { + console.log("Disconnected!!"); + var connected = false + hasInternet = connected + return; + } + + else { + console.log("Connected!!"); + } + } + } + xhr.open("GET", requestURL, true); + xhr.send(); + } + Component.onCompleted: { + getInt(); + } + Loader { id: image anchors.horizontalCenter: parent.horizontalCenter From 1b11cc90c43e1d31af444c2e585be79d02e2ab80 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 18 Jun 2020 13:37:43 +0200 Subject: [PATCH 139/335] [tracking] Polish the phrase for 'none' a bit --- src/modules/tracking/page_trackingstep.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/tracking/page_trackingstep.ui b/src/modules/tracking/page_trackingstep.ui index 4383d312d..55a4df094 100644 --- a/src/modules/tracking/page_trackingstep.ui +++ b/src/modules/tracking/page_trackingstep.ui @@ -69,7 +69,7 @@ margin-left: 2em; - <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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> true From b9b79f11a418ba251bfa08e19032448e7117b0e4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 18 Jun 2020 14:47:33 +0200 Subject: [PATCH 140/335] [unpackfs] Prevent accidental 0777 permissions on / FIXES #1418 --- src/modules/unpackfs/main.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/modules/unpackfs/main.py b/src/modules/unpackfs/main.py index ace289092..00de4165d 100644 --- a/src/modules/unpackfs/main.py +++ b/src/modules/unpackfs/main.py @@ -388,6 +388,22 @@ def get_supported_filesystems(): return ["file"] + get_supported_filesystems_kernel() +def repair_root_permissions(root_mount_point): + """ + If the / of the system gets permission 777, change it down + to 755. Any other permission is left alone. This + works around standard behavior from squashfs where + permissions are (easily, accidentally) set to 777. + """ + existing_root_mode = os.stat(root_mount_point).st_mode & 0o777 + if existing_root_mode == 0o777: + try: + os.chmod(root_mount_point, 0o755) # Want / to be rwxr-xr-x + except OSError as e: + utils.warning("Could not set / to safe permissions: {}".format(e)) + # But ignore it + + def run(): """ Unsquash filesystem. @@ -457,6 +473,9 @@ def run(): is_first = False - unpackop = UnpackOperation(unpack) - - return unpackop.run() + repair_root_permissions(root_mount_point) + try: + unpackop = UnpackOperation(unpack) + return unpackop.run() + finally: + repair_root_permissions(root_mount_point) From b2fcc61987ae6759cf7ed1bfe645c6ee41cddfc5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 18 Jun 2020 14:53:19 +0200 Subject: [PATCH 141/335] Changes: pre-release housekeeping --- CHANGES | 2 +- CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index c14167de5..82b70f9af 100644 --- a/CHANGES +++ b/CHANGES @@ -3,7 +3,7 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. -# 3.2.26 (unreleased) # +# 3.2.26 (2020-06-18) # This release contains contributions from (alphabetically by first name): - Anke Boersma diff --git a/CMakeLists.txt b/CMakeLists.txt index 9795da8ae..aa5ced95b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ project( CALAMARES VERSION 3.2.26 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From 0155d051aabbef8420a9bfb53d43dd1d6c8c0b12 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 18 Jun 2020 14:54:44 +0200 Subject: [PATCH 142/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_az.ts | 3827 +++++++++++++++++++++++++++++++++++++++ lang/calamares_az_AZ.ts | 3827 +++++++++++++++++++++++++++++++++++++++ lang/calamares_hi.ts | 330 ++-- 3 files changed, 7836 insertions(+), 148 deletions(-) create mode 100644 lang/calamares_az.ts create mode 100644 lang/calamares_az_AZ.ts diff --git a/lang/calamares_az.ts b/lang/calamares_az.ts new file mode 100644 index 000000000..fc250af64 --- /dev/null +++ b/lang/calamares_az.ts @@ -0,0 +1,3827 @@ + + + + + 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 + + + + + Reload Stylesheet + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + 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::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Waiting for %n module(s). + + + + + + + + (%n second(s)) + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + + + + + Would you like to paste the install log to the web? + + + + + Error + + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + 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: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + 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> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + + + + + &Back + + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + + + + + &Next + + + + + &Cancel + + + + + %1 Setup Program + + + + + %1 Installer + + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <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. + + + + + + + + <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 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. + + + + + 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. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + 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. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</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. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + 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 + + + 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. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + 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 + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <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 setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</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'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB 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. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + 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. + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + 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 + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <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> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + 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 + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + login + + + + + 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> + + + + + Computer Name + + + + + 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> + + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + 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 + size[number] filesystem[name] + + + + + 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>%3</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. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + 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. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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 + + + %1 (%2) + + + + + Requirements checking for module <i>%1</i> is complete. + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Default Keyboard Model + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + RemoveUserJob + + + Remove live user from target system + + + + + 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: + + + + + 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>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + 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'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + 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 %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <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 %1MiB <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 %1MiB <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 setup procedure. + + + + + 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> + + + + + <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 + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your username is too long. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + + + + + Value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + 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 + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + 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. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + + + + + + Layouts + + + + + + Keyboard Layout + + + + + Models + + + + + Variants + + + + + Test your keyboard + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + diff --git a/lang/calamares_az_AZ.ts b/lang/calamares_az_AZ.ts new file mode 100644 index 000000000..65191f080 --- /dev/null +++ b/lang/calamares_az_AZ.ts @@ -0,0 +1,3827 @@ + + + + + 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 + + + + + Reload Stylesheet + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + 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::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Waiting for %n module(s). + + + + + + + + (%n second(s)) + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + + + + + Would you like to paste the install log to the web? + + + + + Error + + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + 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: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + 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> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + + + + + &Back + + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + + + + + &Next + + + + + &Cancel + + + + + %1 Setup Program + + + + + %1 Installer + + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <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. + + + + + + + + <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 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. + + + + + 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. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + 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. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</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. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + 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 + + + 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. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + 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 + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <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 setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</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'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB 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. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + 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. + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + 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 + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <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> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + 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 + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + login + + + + + 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> + + + + + Computer Name + + + + + 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> + + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + 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 + size[number] filesystem[name] + + + + + 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>%3</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. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + 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. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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 + + + %1 (%2) + + + + + Requirements checking for module <i>%1</i> is complete. + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Default Keyboard Model + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + RemoveUserJob + + + Remove live user from target system + + + + + 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: + + + + + 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>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + 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'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + 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 %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <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 %1MiB <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 %1MiB <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 setup procedure. + + + + + 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> + + + + + <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 + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your username is too long. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + + + + + Value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + 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 + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + 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. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + + + + + + Layouts + + + + + + Keyboard Layout + + + + + Models + + + + + Variants + + + + + Test your keyboard + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + diff --git a/lang/calamares_hi.ts b/lang/calamares_hi.ts index 60121a630..2d47397e6 100644 --- a/lang/calamares_hi.ts +++ b/lang/calamares_hi.ts @@ -16,7 +16,7 @@ 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. - यह सिस्टम <strong>BIOS</strong>बूट वातावरण के साथ शुरू किया गया।<br><br>BIOS वातावरण से स्टार्टअप विन्यस्त करने के लिए इंस्टॉलर को <strong>GRUB</strong> जैसे बूट लोडर को, या तो विभाजन की शुरुआत में या फिर <strong>मास्टर बूट रिकॉर्ड</strong> पर विभाजन तालिका की शुरुआत में इंस्टॉल (सुझाया जाता है) करना होगा। यह स्वत: होता है, परंतु अगर आप मैनुअल विभाजन करना चुनते है; तो आपको इसे खुद ही बनाना होगा। + यह सिस्टम <strong>BIOS</strong>बूट वातावरण के साथ शुरू किया गया।<br><br>BIOS वातावरण से स्टार्टअप विन्यस्त करने के लिए इंस्टॉलर को <strong>GRUB</strong> जैसे बूट लोडर को, या तो विभाजन की शुरुआत में या फिर <strong>Master Boot Record</strong> पर विभाजन तालिका की शुरुआत में इंस्टॉल (सुझाया जाता है) करना होगा। यह स्वत: होता है, परंतु अगर आप मैनुअल विभाजन करना चुनते है; तो आपको इसे खुद ही बनाना होगा। @@ -65,7 +65,7 @@ GlobalStorage - ग्लोबल स्टोरेज + GlobalStorage @@ -80,7 +80,7 @@ Type: - प्रकार : + प्रकार @@ -111,7 +111,7 @@ Debug information - डीबग जानकारी + डीबग संबंधी जानकारी @@ -145,7 +145,7 @@ Done - पूर्ण हुआ + पूर्ण @@ -161,7 +161,7 @@ Run command '%1' in target system. - लक्षित सिस्टम में कमांड '%1' चलाएँ। + लक्षित सिस्टम पर कमांड '%1' चलाएँ। @@ -189,17 +189,17 @@ Working directory %1 for python job %2 is not readable. - पाइथन कार्य %2 के लिए कार्यरत डायरेक्टरी %1 रीड करने योग्य नहीं है। + पाइथन कार्य %2 हेतु कार्यरत डायरेक्टरी %1 रीड योग्य नहीं है। Bad main script file - ख़राब मुख्य स्क्रिप्ट फ़ाइल + गलत मुख्य स्क्रिप्ट फ़ाइल Main script file %1 for python job %2 is not readable. - पाइथन कार्य %2 हेतु मुख्य स्क्रिप्ट फ़ाइल %1 रीड करने योग्य नहीं है। + पाइथन कार्य %2 हेतु मुख्य स्क्रिप्ट फ़ाइल %1 रीड योग्य नहीं है। @@ -212,17 +212,17 @@ Loading ... - + लोड हो रहा है ... QML Step <i>%1</i>. - + QML चरण <i>%1</i>। Loading failed. - + लोड करना विफल रहा। @@ -259,12 +259,12 @@ Installation Failed - इंस्टॉल विफल रहा + इंस्टॉल विफल रहा। Would you like to paste the install log to the web? - + क्या आप इंस्टॉल प्रक्रिया की लॉग फ़ाइल इंटरनेट पर पेस्ट करना चाहेंगे ? @@ -291,12 +291,12 @@ Install Log Paste URL - + इंस्टॉल प्रक्रिया की लॉग फ़ाइल पेस्ट करें The upload was unsuccessful. No web-paste was done. - अपलोड असफल रहा। कोई वेब-पेस्ट नही किया गया। + अपलोड विफल रहा। इंटरनेट पर पेस्ट नहीं हो सका। @@ -331,7 +331,7 @@ 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> - %2 इंस्टॉल करने हेतु %1 इंस्टॉलर आपकी डिस्क में बदलाव करने वाला है।<br/><strong>आप इन बदलावों को पूर्ववत नहीं कर पाएंगे।</strong> + %2 इंस्टॉल करने के लिए %1 इंस्टॉलर आपकी डिस्क में बदलाव करने वाला है।<br/><strong>आप इन बदलावों को पूर्ववत नहीं कर पाएंगे।</strong> @@ -428,7 +428,7 @@ The installer will quit and all changes will be lost. Unknown exception type - अपवाद का प्रकार अज्ञात + अपवाद का प्रकार अज्ञात है @@ -443,7 +443,7 @@ The installer will quit and all changes will be lost. Unfetchable Python error. - पहुँच से बाहर पाइथन त्रुटि। + अप्राप्य पाइथन त्रुटि। @@ -452,7 +452,8 @@ The installer will quit and all changes will be lost. Install log posted to: %1 - + इंस्टॉल प्रक्रिया की लॉग फ़ाइल, यहाँ पेस्ट की गई : +%1 @@ -460,7 +461,7 @@ The installer will quit and all changes will be lost. Show debug information - डीबग जानकारी दिखाएँ + डीबग संबंधी जानकारी दिखाएँ @@ -519,12 +520,12 @@ The installer will quit and all changes will be lost. After: - बाद में : + बाद में: <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - + <strong>मैनुअल विभाजन</strong><br/>आप स्वयं भी विभाजन बना व उनका आकार बदल सकते है। UEFI इंस्टॉल के लिए GPT विभाजन तालिका और <strong>fat32 512Mb का /boot विभाजन होना जरूरी है</strong>, या तो पहले से मौजूद को ही बिना फॉर्मेट किए इस्तेमाल करें या फिर नया बनाएँ। @@ -534,7 +535,7 @@ The installer will quit and all changes will be lost. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - <strong>छोटा करने हेतु विभाजन चुनें, फिर नीचे bar से उसका आकर सेट करें</strong> + <strong>छोटा करने के लिए विभाजन चुनें, फिर नीचे bar से उसका आकर सेट करें</strong> @@ -544,12 +545,12 @@ The installer will quit and all changes will be lost. Boot loader location: - बूट लोडर का स्थान : + बूट लोडर का स्थान: <strong>Select a partition to install on</strong> - <strong>इंस्टॉल हेतु विभाजन चुनें</strong> + <strong>इंस्टॉल के लिए विभाजन चुनें</strong> @@ -651,7 +652,7 @@ The installer will quit and all changes will be lost. Cleared all mounts for %1 - %1 हेतु सभी माउंट हटा दिए गए + %1 के लिए सभी माउंट हटा दिए गए @@ -726,7 +727,7 @@ The installer will quit and all changes will be lost. Network Installation. (Disabled: Incorrect configuration) - + नेटवर्क इंस्टॉल। (निष्क्रिय : गलत विन्यास) @@ -736,7 +737,7 @@ The installer will quit and all changes will be lost. Network Installation. (Disabled: internal error) - + नेटवर्क इंस्टॉल। (निष्क्रिय : आंतरिक त्रुटि) @@ -746,27 +747,27 @@ The installer will quit and all changes will be lost. This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - यह कंप्यूटर %1 को सेटअप करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> + यह कंप्यूटर %1 सेटअप करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - यह कंप्यूटर %1 को इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> + यह कंप्यूटर %1 इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - यह कंप्यूटर %1 को सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ को निष्क्रिय किया जा सकता हैं। + यह कंप्यूटर %1 सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ निष्क्रिय कर दी जाएँगी। This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - यह कंप्यूटर %1 को इंस्टॉल करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ को निष्क्रिय किया जा सकता हैं। + यह कंप्यूटर %1 इंस्टॉल करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ निष्क्रिय कर दी जाएँगी। This program will ask you some questions and set up %2 on your computer. - यह प्रोग्राम एक प्रश्नावली के आधार पर आपके कंप्यूटर पर %2 को सेट करेगा। + यह प्रोग्राम प्रश्नावली के माध्यम से आपके कंप्यूटर पर %2 को सेट करेगा। @@ -781,7 +782,7 @@ The installer will quit and all changes will be lost. <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1 के लिए Calamares इंस्टॉलर में आपका स्वागत है।</h1> + <h1>%1 हेतु Calamares इंस्टॉलर में आपका स्वागत है।</h1> @@ -992,7 +993,7 @@ The installer will quit and all changes will be lost. Create Volume Group - वॉल्यूम समूह बनाएँ + वॉल्यूम समूह बनाएं @@ -1397,7 +1398,7 @@ The installer will quit and all changes will be lost. is running the installer as an administrator (root) - + इंस्टॉलर को प्रबंधक(रुट) के अंतर्गत चला रहा है @@ -1412,7 +1413,7 @@ The installer will quit and all changes will be lost. has a screen large enough to show the whole installer - + स्क्रीन का माप इंस्टॉलर को पूर्णतया प्रदर्शित करने में सक्षम हो @@ -1563,7 +1564,7 @@ The installer will quit and all changes will be lost. <h1>License Agreement</h1> - + <h1>लाइसेंस अनुबंध</h1> @@ -1573,27 +1574,27 @@ The installer will quit and all changes will be lost. Please review the End User License Agreements (EULAs). - + कृपया लक्षित उपयोक्ता लाइसेंस अनुबंधों (EULAs) की समीक्षा करें। This setup procedure will install proprietary software that is subject to licensing terms. - + यह सेटअप प्रक्रिया लाइसेंस शर्तों के अधीन अमुक्त सॉफ्टवेयर को इंस्टॉल करेगी। If you do not agree with the terms, the setup procedure cannot continue. - + यदि आप शर्तों से असहमत है, तो सेटअप प्रक्रिया जारी नहीं रखी जा सकती। This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + यह सेटअप प्रक्रिया अतिरिक्त सुविधाएँ प्रदान करने व उपयोक्ता अनुभव में वृद्धि हेतु लाइसेंस शर्तों के अधीन अमुक्त सॉफ्टवेयर को इंस्टॉल कर सकती है। If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + यदि आप शर्तों से असहमत है, तो अमुक्त सॉफ्टवेयर इंस्टाल नहीं किया जाएगा व उनके मुक्त विकल्प उपयोग किए जाएँगे। @@ -1609,7 +1610,7 @@ The installer will quit and all changes will be lost. URL: %1 - + यूआरएल : %1 @@ -1646,7 +1647,7 @@ The installer will quit and all changes will be lost. File: %1 - + फ़ाइल : %1 @@ -1656,12 +1657,12 @@ The installer will quit and all changes will be lost. Show the license text - + लाइसेंस लेख दिखाएँ Open license agreement in browser. - + लाइसेंस अनुबंध को ब्राउज़र में खोलें। @@ -1719,35 +1720,35 @@ The installer will quit and all changes will be lost. Configuring LUKS key file. - LUKS कुंजी फाइल विन्यस्त करना। + LUKS कुंजी फ़ाइल विन्यस्त करना। No partitions are defined. - कोई विभाजन परिभाषित नहीं हैं। + कोई विभाजन परिभाषित नहीं है। Encrypted rootfs setup error - एन्क्रिप्टेड rootfs सेटअप में त्रुटि + एन्क्रिप्टेड रुट फ़ाइल सिस्टम सेटअप करने में त्रुटि Root partition %1 is LUKS but no passphrase has been set. - रूट विभाजन %1 LUKS है, लेकिन कोई कूटशब्द सेट नहीं किया गया है। + रुट विभाजन %1, LUKS है परंतु कोई कूटशब्द सेट नहीं है। Could not create LUKS key file for root partition %1. - रूट विभाजन %1 हेतु LUKS कुंजी फाइल बनाने में विफल। + रुट विभाजन %1 हेतु LUKS कुंजी फ़ाइल बनाई नहीं जा सकी। Could not configure LUKS key file on partition %1. - + विभाजन %1 हेतु LUKS कुंजी फ़ाइल विन्यस्त नहीं हो सकी। @@ -1755,7 +1756,7 @@ The installer will quit and all changes will be lost. Generate machine-id. - मशीन-आईडी उत्पन्न करना। + मशीन-आईडी उत्पन्न करें। @@ -1765,7 +1766,7 @@ The installer will quit and all changes will be lost. No root mount point is set for MachineId. - + मशीन-आईडी हेतु कोई रुट माउंट पॉइंट सेट नहीं है। @@ -1779,92 +1780,92 @@ The installer will quit and all changes will be lost. Office software - + ऑफिस सॉफ्टवेयर Office package - + ऑफिस पैकेज Browser software - + ब्राउज़र सॉफ्टवेयर Browser package - + ब्राउज़र पैकेज Web browser - + वेब ब्राउज़र Kernel - + कर्नेल Services - + सेवाएँ Login - + लॉगिन Desktop - + डेस्कटॉप Applications - + अनुप्रयोग Communication - + संचार Development - + सॉफ्टवेयर विकास Office - + ऑफिस Multimedia - + मल्टीमीडिया Internet - + इंटरनेट Theming - + थीम Gaming - + खेल Utilities - + साधन @@ -1872,7 +1873,7 @@ The installer will quit and all changes will be lost. Notes - + नोट्स @@ -1911,17 +1912,17 @@ The installer will quit and all changes will be lost. Password is too short - कूटशब्द काफ़ी छोटा है + कूटशब्द बहुत छोटा है Password is too long - कूटशब्द काफ़ी लंबा है + कूटशब्द बहुत लंबा है Password is too weak - कूटशब्द काफ़ी कमज़ोर है + कूटशब्द बहुत कमज़ोर है @@ -2016,7 +2017,7 @@ The installer will quit and all changes will be lost. The password is too short - कूटशब्द काफ़ी छोटा है + कूटशब्द बहुत छोटा है @@ -2076,7 +2077,7 @@ The installer will quit and all changes will be lost. Password generation failed - required entropy too low for settings - कूटशब्द बनाना विफल रहा - सेटिंग्स के लिए आवश्यक एन्ट्रापी काफ़ी कम है + कूटशब्द बनाना विफल रहा - सेटिंग्स के लिए आवश्यक entropy बहुत कम है @@ -2151,7 +2152,7 @@ The installer will quit and all changes will be lost. Password is empty - पासवर्ड खाली है + कूटशब्द रिक्त है @@ -2164,7 +2165,7 @@ The installer will quit and all changes will be lost. Product Name - उत्पाद का नाम​ + वस्तु का नाम @@ -2174,7 +2175,7 @@ The installer will quit and all changes will be lost. Long Product Description - लंबा उत्पाद विवरण + वस्तु का विस्तृत विवरण @@ -2184,7 +2185,7 @@ The installer will quit and all changes will be lost. Please pick a product from the list. The selected product will be installed. - कृप्या सूची से उत्पाद का चुनाव करें। चयनित उत्पाद इंस्टॉल किया जायेगा। + सूची में से वस्तु विशेष का चयन करें। चयनित वस्तु इंस्टॉल कर दी जाएगी। @@ -2241,7 +2242,7 @@ The installer will quit and all changes will be lost. Your Full Name - आपका पूरा नाम​ + आपके पूरा नाम @@ -2266,18 +2267,18 @@ The installer will quit and all changes will be lost. Computer Name - कंप्यूटर का नाम​ + कंप्यूटर का नाम 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> - <small>एक ही कूटशब्द दो बार दर्ज़ करें, ताकि उसे टाइप त्रुटि के लिए जांचा जा सके। एक उचित कूटशब्द में अक्षर, अंक व विराम चिन्हों का मेल होता है, उसमें कम-से-कम आठ अक्षर होने चाहिए, और उसे नियमित अंतराल पर बदलते रहना चाहिए।</small> + <small>एक ही कूटशब्द दो बार दर्ज़ करें, ताकि उसे टाइप त्रुटि के लिए जांचा जा सके । एक अच्छे कूटशब्द में अक्षर, अंक व विराम चिन्हों का मेल होता है, उसमें कम-से-कम आठ अक्षर होने चाहिए, और उसे नियमित अंतराल पर बदलते रहना चाहिए।</small> @@ -2289,22 +2290,22 @@ The installer will quit and all changes will be lost. Repeat Password - कूटशब्द दोबारा दर्ज करें + कूटशब्द पुनः दर्ज करें When this box is checked, password-strength checking is done and you will not be able to use a weak password. - डब्बे को चिह्नित करने पर पासवर्ड की मज़बूती की जांच होगी ओर आप कमज़ोर पासवर्ड उपयोग नही कर पाएँगे। + यह बॉक्स टिक करने के परिणाम स्वरुप कूटशब्द-क्षमता की जाँच होगी व आप कमज़ोर कूटशब्द उपयोग नहीं कर पाएंगे। Require strong passwords. - मज़बूत पासवर्डस की आवश्यकता। + मज़बूत कूटशब्द आवश्यक हैं। Log in automatically without asking for the password. - कूटशब्द पूछे बिना स्वतः लॉग इन करें। + कूटशब्द बिना पूछे ही स्वतः लॉग इन करें। @@ -2314,7 +2315,7 @@ The installer will quit and all changes will be lost. Choose a password for the administrator account. - प्रबंधक अकाउंट हेतु कूटशब्द चुनें। + प्रबंधक अकाउंट के लिए कूटशब्द चुनें। @@ -2373,7 +2374,7 @@ The installer will quit and all changes will be lost. Free Space - रिक्त स्पेस + खाली स्पेस @@ -2412,7 +2413,7 @@ The installer will quit and all changes will be lost. Storage de&vice: - स्टोरेज डिवाइस (&v): + डिवाइस (&v): @@ -2545,7 +2546,7 @@ The installer will quit and all changes will be lost. After: - बाद में : + बाद में: @@ -2555,12 +2556,12 @@ The installer will quit and all changes will be lost. 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>%3</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. - + %1 आरंभ करने हेतु EFI सिस्टम विभाजन ज़रूरी है।<br/><br/>EFI सिस्टम विभाजन को विन्यस्त करने के लिए, वापस जाएँ और चुनें या बनाएँ एक FAT32 फ़ाइल सिस्टम जिस पर <strong>%3</strong> flag चालू हो व माउंट पॉइंट <strong>%2</strong>हो।<br/><br/>आप बिना सेट करें भी आगे बढ़ सकते है पर सिस्टम चालू नहीं होगा। An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + %1 को शुरू करने हेतु EFI सिस्टम विभाजन ज़रूरी है।<br/><br/>विभाजन को माउंट पॉइंट <strong>%2</strong> के साथ विन्यस्त किया गया परंतु उसका <strong>%3</strong> फ्लैग सेट नहीं था।<br/> फ्लैग सेट करने के लिए, वापस जाएँ और विभाजन को edit करें।<br/><br/>आप बिना सेट करें भी आगे बढ़ सकते है पर सिस्टम चालू नहीं होगा। @@ -2570,12 +2571,12 @@ The installer will quit and all changes will be lost. Option to use GPT on BIOS - + BIOS पर GPT उपयोग करने के लिए विकल्प A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + GPT विभाजन तालिका सभी सिस्टम हेतु सबसे उत्तम विकल्प है। यह इंस्टॉलर BIOS सिस्टम के सेटअप को भी समर्थन करता है। <br/><br/>BIOS पर GPT विभाजन तालिका को विन्यस्त करने हेतु, (अगर अब तक नहीं करा है तो) वापस जाकर विभाजन तालिका GPT पर सेट करें, फिर एक 8 MB का बिना फॉर्मेट हुआ विभाजन बनाए जिस पर <strong>bios_grub</strong> का flag हो।<br/><br/>यह बिना फॉर्मेट हुआ 8 MB का विभाजन %1 को BIOS सिस्टम पर GPT के साथ शुरू करने के लिए आवश्यक है। @@ -2595,7 +2596,7 @@ The installer will quit and all changes will be lost. There are no partitions to install on. - + इंस्टॉल हेतु कोई विभाजन नहीं हैं। @@ -2671,7 +2672,7 @@ There was no output from the command. Output: -आउटपुट : +आउटपुट: @@ -2774,27 +2775,27 @@ Output: File not found - फाइल नहीं मिली + फ़ाइल नहीं मिली Path <pre>%1</pre> must be an absolute path. - + फ़ाइल पथ <pre>%1</pre> निरपेक्ष होना चाहिए। Could not create new random file <pre>%1</pre>. - + नवीन यादृच्छिक फ़ाइल <pre>%1</pre>नहीं बनाई जा सकी। No product - कोई उत्पाद नहीं + कोई वस्तु नहीं No description provided. - कोई विवरण मौजूद नहीं + कोई विवरण प्रदान नहीं किया गया। @@ -2844,7 +2845,7 @@ Output: Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - चुनें कि %1 को कहाँ इंस्टॉल करना है।<br/><font color="red">चेतावनी : </font> यह चयनित विभाजन पर मौजूद सभी फ़ाइलों को हटा देगा। + चुनें कि %1 को कहाँ इंस्टॉल करना है।<br/><font color="red">चेतावनी: </font> यह चयनित विभाजन पर मौजूद सभी फ़ाइलों को हटा देगा। @@ -2854,7 +2855,7 @@ Output: %1 cannot be installed on empty space. Please select an existing partition. - %1 को खाली स्पेस पर इंस्टॉल नहीं किया जा सकता। कृपया कोई मौजूदा विभाजन चुनें। + %1 को खाली स्पेस पर इंस्टॉल नहीं किया जा सकता।कृपया कोई मौजूदा विभाजन चुनें। @@ -2884,7 +2885,7 @@ Output: <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. - <strong>%4</strong><br/><br/>%2 के लिए विभाजन %1 काफ़ी छोटा है। कृपया कम-से-कम %3 GiB की क्षमता वाला कोई विभाजन चुनें। + <strong>%4</strong><br/><br/>%2 के लिए विभाजन %1 बहुत छोटा है।कृपया कम-से-कम %3 GiB की क्षमता वाला कोई विभाजन चुनें । @@ -2906,7 +2907,7 @@ Output: EFI system partition: - EFI सिस्टम विभाजन : + EFI सिस्टम विभाजन: @@ -3260,7 +3261,7 @@ Output: Cannot set password for user %1. - उपयोक्ता %1 हेतु पासवर्ड सेट नहीं किया जा सकता। + उपयोक्ता %1 के लिए पासवर्ड सेट नहीं किया जा सकता। @@ -3298,12 +3299,12 @@ Output: Cannot set timezone, - समय क्षेत्र सेट नहीं हो सका, + समय क्षेत्र सेट नहीं हो सका। Cannot open /etc/timezone for writing - राइट करने हेतु /etc /timezone खोला नहीं जा सका + राइट करने हेतु /etc /timezone खोला नहीं जा सका। @@ -3462,32 +3463,32 @@ Output: Your username is too long. - आपका उपयोक्ता नाम काफ़ी लंबा है। + आपका उपयोक्ता नाम बहुत लंबा है। Your username must start with a lowercase letter or underscore. - + आपके उपयोक्ता नाम का आरंभ lowercase अक्षर या अंडरस्कोर(_) से ही होना चाहिए। Only lowercase letters, numbers, underscore and hyphen are allowed. - + केवल lowercase अक्षर, अंक, अंडरस्कोर(_) व हाइफ़न(-) का उपयोग ही मान्य है। Your hostname is too short. - आपका होस्ट नाम काफ़ी छोटा है। + आपका होस्ट नाम बहुत छोटा है। Your hostname is too long. - आपका होस्ट नाम काफ़ी लंबा है। + आपका होस्ट नाम बहुत लंबा है। Only letters, numbers, underscore and hyphen are allowed. - + केवल अक्षर, अंक, अंडरस्कोर(_) व हाइफ़न(-) का उपयोग ही मान्य है। @@ -3508,12 +3509,12 @@ Output: Key - + कुंजी Value - + मान @@ -3521,7 +3522,7 @@ Output: Create Volume Group - वॉल्यूम समूह बनाएँ + वॉल्यूम समूह बनाएं @@ -3580,7 +3581,7 @@ Output: Select application and system language - ऐप्लिकेशन व सिस्टम भाषा चुनें + अनुप्रयोग व सिस्टम भाषा चुनें @@ -3590,17 +3591,17 @@ Output: Open donations website - दान करने की वेबसाइट खोलें + दान हेतु वेबसाइट खोलें &Donate - &दान करें + दान करें (&D) Open help and support website - मदद व सहायता की वेबसाइट खोलें + सहायता हेतु वेबसाइट खोलें @@ -3620,7 +3621,7 @@ Output: Open release notes website - + प्रकाशन नोट्स हेतु वेबसाइट खोलें @@ -3665,7 +3666,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>के लिए %3</strong><br/><br/>प्रतिलिप्याधिकार 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>प्रतिलिप्याधिकार 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/><a href="https://calamares.io/team/">Calamares टीम</a> व <a href="https://www.transifex.com/calamares/calamares/">Calamares अनुवादक टीम</a> का धन्यवाद।<br/><br/><a href="https://calamares.io/">Calamares</a> का विकास <br/><a href="http://www.blue-systems.com/">ब्लू सिस्टम्स</a> - लिब्रेटिंग सॉफ्टवेयर द्वारा प्रायोजित है। @@ -3700,12 +3701,23 @@ Output: development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/> + <strong>%2<br/> + के लिए %3</strong><br/><br/> + प्रतिलिप्याधिकार 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> + प्रतिलिप्याधिकार 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + <a href='https://calamares.io/team/'>the Calamares टीम</a> + व <a href='https://www.transifex.com/calamares/calamares/'>Calamares + अनुवादक टीम</a>को धन्यवाद।<br/><br/> + <a href='https://calamares.io/'>Calamares</a> + का विकास <br/> + <a href='http://www.blue-systems.com/'>ब्लू सिस्टम्स</a> - + लिब्रेटिंग सॉफ्टवेयर द्वारा प्रायोजित है। Back - + वापस @@ -3713,44 +3725,44 @@ Output: Keyboard Model - + कुंजीपटल मॉडल Pick your preferred keyboard model or use the default one based on the detected hardware - + अपना कुंजीपटल मॉडल चुनें या फिर हार्डवेयर आधारित डिफ़ॉल्ट मॉडल उपयोग करें Refresh - + रिफ्रेश करें Layouts - + अभिन्यास Keyboard Layout - + कुंजीपटल अभिन्यास Models - + मॉडल Variants - + भिन्न रूप Test your keyboard - + अपना कुंजीपटल जाँचें @@ -3759,7 +3771,8 @@ Output: <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>ये उदाहरण रिलीज़ नोट्स हैं।</p> @@ -3787,12 +3800,32 @@ Output: </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> + <p>यह एक उदाहरण QML फ़ाइल है, जो फ्लिक योग्य सामग्री युक्त रिच टेक्स्ट के विकल्प प्रदर्शित करती है।</p> + + <p>रिच टेक्स्ट के साथ QML एचटीएमएल टैग उपयोग कर सकता है, फ्लिक योग्य सामग्री टचस्क्रीन में उपयोगी होती है।</p> + + <p><b>यह बोल्ड टेक्स्ट है</b></p> + <p><i>यह तिरछा टेक्स्ट है</i></p> + <p><u>यह रेखांकित टेक्स्ट है</u></p> + <p><center>यह टेक्स्ट केंद्र-संरेखित होगा।</center></p> + <p><s>यह स्ट्राइकथ्रू है</s></p> + + <p>कोड उदाहरण : + <code>ls -l /home</code></p> + + <p><b>सूचियाँ :</b></p> + <ul> + <li>इंटेल सीपीयू सिस्टम</li> + <li>एएमडी सीपीयू सिस्टम</li> + </ul> + + <p>ऊर्ध्वाधर स्क्रॉलबार समायोज्य है, वर्तमान चौड़ाई 10 पर सेट है।</p> Back - + वापस @@ -3801,32 +3834,33 @@ Output: <h3>Welcome to the %1 <quote>%2</quote> installer</h3> <p>This program will ask you some questions and set up %1 on your computer.</p> - + <h3>%1 <quote>%2</quote>इंस्टॉलर में आपका स्वागत है</h3> + <p>यह प्रोग्राम प्रश्नावली के माध्यम से आपके कंप्यूटर पर %1 को सेट करेगा।</p> About - + बारे में Support - + सहायता Known issues - + ज्ञात समस्याएँ Release notes - + रिलीज़ नोट्स Donate - + दान करें From 13d8b85de2b4794dba924ee280185af587aa012c Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 18 Jun 2020 14:54:45 +0200 Subject: [PATCH 143/335] i18n: [python] Automatic merge of Transifex translations --- lang/python/az/LC_MESSAGES/python.mo | Bin 0 -> 384 bytes lang/python/az/LC_MESSAGES/python.po | 336 ++++++++++++++++++++++++ lang/python/az_AZ/LC_MESSAGES/python.mo | Bin 0 -> 403 bytes lang/python/az_AZ/LC_MESSAGES/python.po | 336 ++++++++++++++++++++++++ lang/python/hi/LC_MESSAGES/python.mo | Bin 10929 -> 11474 bytes lang/python/hi/LC_MESSAGES/python.po | 12 +- 6 files changed, 678 insertions(+), 6 deletions(-) create mode 100644 lang/python/az/LC_MESSAGES/python.mo create mode 100644 lang/python/az/LC_MESSAGES/python.po create mode 100644 lang/python/az_AZ/LC_MESSAGES/python.mo create mode 100644 lang/python/az_AZ/LC_MESSAGES/python.po diff --git a/lang/python/az/LC_MESSAGES/python.mo b/lang/python/az/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..e7b9aa3c33e09c98ab64184228fe1c71e327e34c GIT binary patch literal 384 zcmYL@!A=4(5QZ^&>d~`@ns|U{X%~$yC3`?z3{hl*EB9e3OUZ7#X^SB5;p_P%?>6x$>NPZalR@&(JTszScJfB}T7B=E!J4X2Mvh6~{?`@X~*d z@hqOck0x(uDk^Op8QWYg$m1rrB-I?FWJ0FmQ`R2x1Ws_=VZj4oAz@t{Fn)V?&AiYn zsC)ytAgO?o6&`<%Du1{i=KnCw7ij1xVGy*$RvmF8WA^Bs|{Lua?4)SY>)4RnBoZ nm+laiW7wml*cd3tP@B?ntg64!Mx7r1Z=, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Azerbaijani (https://www.transifex.com/calamares/teams/20061/az/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: az\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" + +#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 +#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 +#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 +msgid "Configuration Error" +msgstr "" + +#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 +#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 +#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 +#: src/modules/initramfscfg/main.py:99 +msgid "No root mount point is given for

{!s}
to use." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 +#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 +#: src/modules/rawfs/main.py:172 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:399 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:400 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:405 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:406 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 +#: src/modules/unpackfs/main.py:446 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:423 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:427 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:433 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:447 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/displaymanager/main.py:515 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:516 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:577 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:578 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:661 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:662 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:736 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:737 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:768 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:769 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:895 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:896 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:978 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" diff --git a/lang/python/az_AZ/LC_MESSAGES/python.mo b/lang/python/az_AZ/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..4c1bf9a19a2913f41a37517d2f12ed173aaf1c9a GIT binary patch literal 403 zcmYL@-%i3X6vi=nwM(zPI3`{|w6sH`qhuEoharkAI7#%zlu<^>XqUDK@*cjP&tiuO ze9158oSc8(@9D`;&FRQ-=D2ViJFXm+0>`^+wq2}d_DZx`@XVtA6pgtyLP-iq)P0H` zV;IMy*Z%Ou8}U+Uiv}haQ*^(|4N4USFBzf{{}R;>dSI4QXc7MokpPi4_=H~HToNbm znaO;`a*k5YmK35b*ApfdObVzUiU!o@)|Q51yk4)HRx@eDjBlEmTH=fqY{@h?*t#1A zw+OlQG24DdAGqNS`h)o3-ft4GtEA=9qV&6Twk+RRToz2o4rFtt4Y%Q2+C#x%uKG6P w8pSeGQz3H-!9>`-bqc#*UQ(, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Azerbaijani (Azerbaijan) (https://www.transifex.com/calamares/teams/20061/az_AZ/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: az_AZ\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" + +#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 +#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 +#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 +msgid "Configuration Error" +msgstr "" + +#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 +#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 +#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 +#: src/modules/initramfscfg/main.py:99 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 +#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 +#: src/modules/rawfs/main.py:172 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:399 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:400 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:405 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:406 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 +#: src/modules/unpackfs/main.py:446 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:423 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:427 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:433 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:447 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/displaymanager/main.py:515 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:516 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:577 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:578 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:661 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:662 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:736 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:737 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:768 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:769 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:895 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:896 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:978 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" diff --git a/lang/python/hi/LC_MESSAGES/python.mo b/lang/python/hi/LC_MESSAGES/python.mo index 2732db6edb9ccc6419583a2b8ef473ca77c0a4b6..8b12ae6dcc5a26193270026013bc989f3e606943 100644 GIT binary patch delta 1781 zcmY+?drVtZ9Ki9@hPrjiHkg0~Mh~wE4g!HqC!k}K4YzE;Igu@6LD)(|SSj{lg0(60 zwHf9kT*)K>634BZB$AEBS6ooDXrll4NSIlS=HfzPG$#6w$zptbf4yDInp{5Tcev;G zJLh-LrOs~;Cw|P$no#`Od5U=+b1Kz~XR`RiZ~bjb?Zupo-B?C^9t-hHY{V733q7lp z+JX%k{V4yR!aDpK^H8l;YMW9CmCvA@xC1LNjCbQ3nfMdjK)izM@CJI&?Y0Y+qim!F zB~KR?VGQ%}EZ&LpSb$g1i{E1n_0?Yta+s)EW53vhj}mvFob((@!p~3=ETe4b2FkkZ z+vyT|QBGcuvJoH3fnGv6&^*dUuHr`g6`QHA+;=Edio0+t`jOVCY21ugu^ye-cEU!K z1cy*I^b|@DMX_Bin<%DV41(ElidV*1jFr+ zOvsKlbCZtaFgD>5K8)+R01_X@E%-W0;V)1URTkR?dvJ#MGPdIpzSBOO#X9^QTTt_z zw&KwQg9Zi$&f(|SflqpsdIUekgP5!B_xe#bIEnA$Kj_Ez_%6?32{-mlJcrWyHg2MH z^gK$wnhJY;9JdoEe#%UgRVuZIiBtFxeuF15Z#M9`!$Id&3gTzb7ztj$HHu>*WgAAsb_zidCSdCH+bn-~6;tM zR*_?yF_~3fDyJyT%nR(3toHYoxXt(>t0-p&qh=ner+>Q)x2wo4pN=b{+KpOQL3S%6 zIXW9q_ZbIV<&GvJ>Z)_>Hj=JJ#{;Qrt`}D29gOsbA_GHy9SQ2_&~WduK^==5N3;KE z?H@Sd3y*{&zJTrzhICmhUZ$&J@oGH~)bNUK%m#}BY9mcUZW+sJx(pJ+vjjL)Tiol0;^NAo@;BovADL( z53S@W%QUUzNrDe7^I6NBvy!7$a?1FssI2@&%e7-< zeQVC-jIn>Cx0^h3mN`K&mc1)Ek}peHbKWu+E%O4i6E|lsq_?!d)LZGdc%4_My2un; zWQn~zX_+6B#JE&Zkm}pC=rsN=Em delta 1334 zcmXZbTSyd97{Ku}>#mp0^_G`(tzA>oys(w6x~ZutR%>DymXei5P?#bKQJA?&7kUV~ zOukr2LHSTb*dS892ti;9mC;40$f&4?ZV1ssLH}>Z12ez#&Fp;VobQ~SZXRh2yo<9A zC|WgFDp#pRsWxn}a-+SsDdor6dGkV*T1tEfQ*aOqa1aNm4<4i^%SVl+-*GR~k3IEONk$Otn}7CMP*F%kD-JoaG{ z>gd8-n8)~Pl1?lS{-FHOZda-ST_`Kcm_e#uYe?k}$+!CdfvaPz^4@o%7F+Vkz+@ zY{Azk1AC*Csz*Q8;UET<)A>TD3FD}5EAB_xqbcN-`heB=3rnz&<+`yOdo)UlyNRRX z%(HUFq;jO_!w@--zY0;VA;Fy z4oV!&LCD4q%*O#N$A{>{5DrWQmSHXS;U0XPO#Ro;@o<7RU^_}|pzP&$l!4QoW}*Pf zfcJ0+6H}F1kE6H=|Dgx{Y;Y;|pclt*6@J5;=w`p_aWX(>GaaW(sV&%n^22eI8P4Gt zHn};;7{ft1j)(CY{zWPM5GPeis_|Ene5X*pe}&~(nxWK2?8Pd4g#8$>XHsrDXV8u1 z%gg~*koUWO?TLwv9c!FD6$9JI^Ab;MikR$%T=|$!>$55O bMpueq*Pmr37?(4jXhuTzxW%Z, YEAR. # # Translators: -# Panwar108 , 2019 +# Panwar108 , 2020 # #, fuzzy msgid "" @@ -13,7 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-30 23:13+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Panwar108 , 2019\n" +"Last-Translator: Panwar108 , 2020\n" "Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -84,7 +84,7 @@ msgstr "
{!s}
के उपयोग हेतु कोई विभ #: src/modules/openrcdmcryptcfg/main.py:34 msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt सेवा को विन्यस्त करना।" +msgstr "OpenRC dmcrypt सेवा विन्यस्त करना।" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -96,11 +96,11 @@ msgstr "rsync त्रुटि कोड {} के साथ विफल।" #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "इमेज फ़ाइल {}/{}, फ़ाइल {}/{} सम्पीड़ित की जा रही है" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "{} हेतु संपीड़न प्रक्रिया आरंभ हो रही है " #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 msgid "Failed to unpack image \"{}\"" @@ -129,7 +129,7 @@ msgstr "ख़राब unsquash विन्यास सेटिंग्स" #: src/modules/unpackfs/main.py:423 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "" +msgstr "\"{}\" ({}) हेतु फ़ाइल सिस्टम आपके वर्तमान कर्नेल द्वारा समर्थित नहीं है" #: src/modules/unpackfs/main.py:427 msgid "The source filesystem \"{}\" does not exist" From c284024b0eb28c616c1699377ad5213571585819 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 18 Jun 2020 15:47:18 +0200 Subject: [PATCH 144/335] i18n: Update English translations --- lang/calamares_en.ts | 544 +++++++++++------- lang/python.pot | 420 +++++++------- .../dummypythonqt/lang/dummypythonqt.pot | 18 +- 3 files changed, 542 insertions(+), 440 deletions(-) diff --git a/lang/calamares_en.ts b/lang/calamares_en.ts index 08ff2436c..ec80837bd 100644 --- a/lang/calamares_en.ts +++ b/lang/calamares_en.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Set up - + Install Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Job failed (%1) - + Programmed job failure was explicitly requested. Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Run command '%1' in target system. - + Run command '%1'. Run command '%1'. - + Running command %1 %2 Running command %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Running %1 operation. - + Bad working directory path Bad working directory path - + Working directory %1 for python job %2 is not readable. Working directory %1 for python job %2 is not readable. - + Bad main script file Bad main script file - + Main script file %1 for python job %2 is not readable. Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". Boost.Python error in job "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Requirements checking for module <i>%1</i> is complete. + - + Waiting for %n module(s). Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. System-requirements checking is complete. @@ -273,13 +278,13 @@
- + &Yes &Yes - + &No &No @@ -314,109 +319,109 @@ <br/>The following modules could not be loaded:
- + Continue with setup? Continue with setup? - + Continue with installation? Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> 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> - + &Set up now &Set up now - + &Install now &Install now - + Go &back Go &back - + &Set up &Set up - + &Install &Install - + Setup is complete. Close the setup program. Setup is complete. Close the setup program. - + The installation is complete. Close the installer. The installation is complete. Close the installer. - + Cancel setup without changing the system. Cancel setup without changing the system. - + Cancel installation without changing the system. Cancel installation without changing the system. - + &Next &Next - + &Back &Back - + &Done &Done - + &Cancel &Cancel - + Cancel setup? Cancel setup? - + Cancel installation? Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Do you really want to cancel the current install process? @@ -426,22 +431,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Unknown exception type - + unparseable Python error unparseable Python error - + unparseable Python traceback unparseable Python traceback - + Unfetchable Python error. Unfetchable Python error. @@ -459,32 +464,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information Show debug information - + &Back &Back - + &Next &Next - + &Cancel &Cancel - + %1 Setup Program %1 Setup Program - + %1 Installer %1 Installer @@ -681,18 +686,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. The command needs to know the user's name, but no username is defined. @@ -745,49 +750,49 @@ The installer will quit and all changes will be lost. Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> +
@@ -1224,37 +1229,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information Set partition information - + Install %1 on <strong>new</strong> %2 system partition. Install %1 on <strong>new</strong> %2 system partition. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - + Install %2 on %3 system partition <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>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Install boot loader on <strong>%1</strong>. - + Setting up mount points. Setting up mount points. @@ -1272,32 +1277,32 @@ The installer will quit and all changes will be lost. &Restart now
- + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> <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 setup program.</p></body></html> - + <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>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. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1305,27 +1310,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Finish - + Setup Complete Setup Complete - + Installation Complete Installation Complete - + The setup of %1 is complete. The setup of %1 is complete. - + The installation of %1 is complete. The installation of %1 is complete. @@ -1356,72 +1361,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source is plugged in to a power source - + The system is not plugged in to a power source. The system is not plugged in to a power source. - + is connected to the Internet is connected to the Internet - + The system is not connected to the Internet. The system is not connected to the Internet. - + is running the installer as an administrator (root) is running the installer as an administrator (root) - + The setup program is not running with administrator rights. The setup program is not running with administrator rights. - + The installer is not running with administrator rights. The installer is not running with administrator rights. - + has a screen large enough to show the whole installer has a screen large enough to show the whole installer - + The screen is too small to display the setup program. The screen is too small to display the setup program. - + The screen is too small to display the installer. The screen is too small to display the installer. @@ -1769,6 +1774,16 @@ The installer will quit and all changes will be lost. No root mount point is set for MachineId.
+ + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ The installer will quit and all changes will be lost. Set the OEM Batch Identifier to <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ The installer will quit and all changes will be lost. Partitions - + Install %1 <strong>alongside</strong> another operating system. Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 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>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Current: - + After: After: - + No EFI system partition configured 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>%3</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. 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI system partition flag not set - + Option to use GPT on BIOS Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted 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. 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. - + has at least one disk device available. has at least one disk device available. - + There are no partitions to install on. There are no partitions to install on. @@ -2660,14 +2688,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. There was no output from the command. - + Output: @@ -2676,52 +2704,52 @@ Output: - + External command crashed. External command crashed. - + Command <i>%1</i> crashed. Command <i>%1</i> crashed. - + External command failed to start. External command failed to start. - + Command <i>%1</i> failed to start. Command <i>%1</i> failed to start. - + Internal error when starting command. Internal error when starting command. - + Bad parameters for process job call. Bad parameters for process job call. - + External command failed to finish. External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. External command finished with errors. - + Command <i>%1</i> finished with exit code %2. Command <i>%1</i> finished with exit code %2. @@ -2729,32 +2757,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Requirements checking for module <i>%1</i> is complete. - - - + unknown unknown - + extended extended - + unformatted unformatted - + swap swap @@ -2808,6 +2831,15 @@ Output: Unpartitioned space or unknown partition table
+ + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Output: Form - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. 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. 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 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 an extended partition. Please select an existing primary or logical partition. - + %1 cannot be installed on this partition. %1 cannot be installed on this partition. - + Data partition (%1) Data partition (%1) - + Unknown system partition (%1) Unknown system partition (%1) - + %1 system partition (%2) %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>%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>%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. <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. The EFI system partition at %1 will be used for starting %2. - + EFI system partition: EFI system partition: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: For best results, please ensure that this computer: - + System requirements System requirements @@ -3045,27 +3092,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. This program will ask you some questions and set up %2 on your computer. @@ -3348,53 +3395,82 @@ Output: TrackingInstallJob - + Installation feedback Installation feedback - + Sending installation feedback. Sending installation feedback. - + Internal error in install-tracking. Internal error in install-tracking. - + HTTP request timed out. HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback - Machine feedback + Machine feedback - + Configuring machine feedback. - Configuring machine feedback. + Configuring machine feedback. - - + + Error in machine feedback configuration. - Error in machine feedback configuration. + Error in machine feedback configuration. - + Could not configure machine feedback correctly, script error %1. - Could not configure machine feedback correctly, script error %1. + Could not configure machine feedback correctly, script error %1. - + Could not configure machine feedback correctly, Calamares error %1. - Could not configure machine feedback correctly, Calamares error %1. + Could not configure machine feedback correctly, Calamares error %1. @@ -3411,8 +3487,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - - 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. - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 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 send information about your installation and hardware. This information will only be sent <b>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>periodically</b> send information about your installation, hardware and applications, to %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Feedback @@ -3629,42 +3705,42 @@ Output: &Release notes
- + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Welcome to the %1 installer.</h1> - + %1 support %1 support - + About %1 setup About %1 setup - + About %1 installer 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3672,7 +3748,7 @@ Output: WelcomeQmlViewStep - + Welcome Welcome @@ -3680,7 +3756,7 @@ Output: WelcomeViewStep - + Welcome Welcome @@ -3720,6 +3796,26 @@ Output: Back + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Back + + keyboardq @@ -3765,6 +3861,24 @@ Output: Test your keyboard + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3838,27 +3952,27 @@ Output: <p>This program will ask you some questions and set up %1 on your computer.</p> - + About About - + Support Support - + Known issues Known issues - + Release notes Release notes - + Donate Donate diff --git a/lang/python.pot b/lang/python.pot index 633f658fb..893f3d17f 100644 --- a/lang/python.pot +++ b/lang/python.pot @@ -2,350 +2,338 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: \n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installing one package." -msgstr[1] "Installing %(num)d packages." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removing one package." -msgstr[1] "Removing %(num)d packages." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Saving network configuration." - -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Configuration Error" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Unmount file systems." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and {suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." -msgstr "Filling up filesystems." +msgstr "" #: src/modules/unpackfs/main.py:257 msgid "rsync failed with error code {}." -msgstr "rsync failed with error code {}." +msgstr "" #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "Unpacking image {}/{}, file {}/{}" +msgstr "" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "Starting to unpack {}" +msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" -msgstr "Failed to unpack image \"{}\"" +msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" -msgstr "No mount point for root partition" +msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" -msgstr "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" -msgstr "Bad mount point for root partition" +msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" -msgstr "Bad unsquash configuration" +msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" -msgstr "The source filesystem \"{}\" does not exist" +msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -"Failed to find unsquashfs, make sure you have the squashfs-tools package " -"installed" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "The destination \"{}\" in the target system is not a directory" +msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." -msgstr "Configuring encrypted swap." +msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" -msgstr "Configure OpenRC services" +msgstr "" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "Cannot add service {name!s} to run-level {level!s}." +msgstr "" #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" #: src/modules/services-openrc/main.py:70 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" -"Unknown service-action {arg!s} for service {name!s} in run-" -"level {level!s}." #: src/modules/services-openrc/main.py:103 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" -"rc-update {arg!s} call in chroot returned error code {num!s}." #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "Target runlevel does not exist" +msgstr "" #: src/modules/services-openrc/main.py:111 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" -"The path for runlevel {level!s} is {path!s}, which does not " -"exist." #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "Target service does not exist" +msgstr "" #: src/modules/services-openrc/main.py:120 msgid "" -"The path for service {name!s} is {path!s}, which does not " -"exist." +"The path for service {name!s} is {path!s}, which does not exist." msgstr "" -"The path for service {name!s} is {path!s}, which does not " -"exist." - -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "Creating initramfs with dracut." - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "Failed to run dracut on the target" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "The exit code was {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Cannot write LXDM configuration file" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM config file {!s} does not exist" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" diff --git a/src/modules/dummypythonqt/lang/dummypythonqt.pot b/src/modules/dummypythonqt/lang/dummypythonqt.pot index 59be66f7e..13cc7ada3 100644 --- a/src/modules/dummypythonqt/lang/dummypythonqt.pot +++ b/src/modules/dummypythonqt/lang/dummypythonqt.pot @@ -2,41 +2,41 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: \n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "Click me!" +msgstr "" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "A new QLabel." +msgstr "" #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "Dummy PythonQt ViewStep" +msgstr "" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "The Dummy PythonQt Job" +msgstr "" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "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 "A status message for Dummy PythonQt Job." +msgstr "" From 665c425633a5c66f2e110fb8af0ccc4f82610c03 Mon Sep 17 00:00:00 2001 From: demmm Date: Thu, 18 Jun 2020 15:53:38 +0200 Subject: [PATCH 145/335] [CHANGES] add localeq & welcomeq additions --- CHANGES | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES b/CHANGES index 82b70f9af..d50207086 100644 --- a/CHANGES +++ b/CHANGES @@ -25,9 +25,13 @@ This release contains contributions from (alphabetically by first name): - *locale* put some more places into the correct timezone **visually**; for instance Norfolk Island gave up UTC+11.5 in 2015 and is now UTC+11, but Calamares still showed it in a zone separate from UTC+11. + - *localeq* can now properly switch between on & offline mode, + it detects internet status through js. - *packages* gained support for the Void Linux package manager, *xbps*. (thanks Pablo) - *tracking* now supports kuserfeedback configuration. + - *welcomeq* added the GEOIP configuration option, so locale can be + initially set according to IP address. # 3.2.25 (2020-06-06) # From 463545290e1586b0055e73b6471fc9692b93f764 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 18 Jun 2020 16:12:12 +0200 Subject: [PATCH 146/335] [users] Fix up schema syntax - Remove schema items *availableShells* and *avatarFilePath* because those have no implementation. --- src/modules/users/users.conf | 2 +- src/modules/users/users.schema.yaml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/modules/users/users.conf b/src/modules/users/users.conf index 174a60142..32f74978a 100644 --- a/src/modules/users/users.conf +++ b/src/modules/users/users.conf @@ -124,7 +124,7 @@ allowWeakPasswordsDefault: false # and rely on a correct configuration file in /etc/default/useradd # - set, non-empty, use that path as shell. No validation is done # that the shell actually exists or is executable. -# userShell: /bin/bash +userShell: /bin/bash # Hostname setting # diff --git a/src/modules/users/users.schema.yaml b/src/modules/users/users.schema.yaml index b667df7f6..a3bba5078 100644 --- a/src/modules/users/users.schema.yaml +++ b/src/modules/users/users.schema.yaml @@ -4,15 +4,15 @@ $id: https://calamares.io/schemas/users additionalProperties: false type: object properties: - "defaultGroups": - required: true - type: seq - sequence: - - { type: str } - "autologinGroup": { type: string, required: true } - "doAutologin": { type: boolean, default: true } - "sudoersGroup": { type: string, required: true } - "setRootPassword": { type: boolean, default: true } - "availableShells": { type: str } - "avatarFilePath": { type: str } - "doReusePassword": { type: boolean, default: true } + defaultGroups: + type: array + items: { type: string } + autologinGroup: { type: string } + doAutologin: { type: boolean, default: true } + sudoersGroup: { type: string } + setRootPassword: { type: boolean, default: true } + doReusePassword: { type: boolean, default: true } +required: + - defaultGroups + - autologinGroup + - sudoersGroup From 5da201246554e739ec2771773b1b72464035ff19 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 18 Jun 2020 16:23:32 +0200 Subject: [PATCH 147/335] [users] Expand schema to support the keys documented in users.conf - Now the documentation in the file and the source is leading to update the schema, but in future those should go hand-in-hand --- src/modules/users/users.schema.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/modules/users/users.schema.yaml b/src/modules/users/users.schema.yaml index a3bba5078..44cb9f71c 100644 --- a/src/modules/users/users.schema.yaml +++ b/src/modules/users/users.schema.yaml @@ -4,14 +4,34 @@ $id: https://calamares.io/schemas/users additionalProperties: false type: object properties: + # User shell, should be path to /bin/sh or so + userShell: { type: string } + # Group settings defaultGroups: type: array items: { type: string } autologinGroup: { type: string } - doAutologin: { type: boolean, default: true } sudoersGroup: { type: string } + # Skip login (depends on displaymanager support) + doAutologin: { type: boolean, default: true } + # Root password separate from user password? setRootPassword: { type: boolean, default: true } doReusePassword: { type: boolean, default: true } + # Passwords that don't pass a quality test + allowWeakPasswords: { type: boolean, default: false } + allowWeakPasswordsDefault: { type: boolean, default: false } + passwordRequirements: + additionalProperties: false + type: object + properties: + nonempty: { type: boolean, default: true } + minLength: { type: number } + maxLength: { type: number } + libpwquality: { type: array, items: { type: string } } # Don't know what libpwquality supports + # Hostname setting + setHostname: { type: string, enum: [ None, EtcFile, Hostnamed ] } + writeHostsFile: { type: boolean, default: true } + required: - defaultGroups - autologinGroup From ccff4edd914b32ef147a72eb890d04249fdc2192 Mon Sep 17 00:00:00 2001 From: demmm Date: Fri, 19 Jun 2020 17:05:29 +0200 Subject: [PATCH 148/335] [keyboard] fully functional QML module added missing components listed as ResponsiveBase, ListItemDelegate & ListViewTemplate parts of which were on nitrux keyboard.qml no longer uses buttons within ListView, can't work as buttons and have them visible see https://doc.qt.io/qt-5/qml-qtquick-listview.html#footerPositioning-prop set ListView as actually visible within a normal calamares window size --- src/modules/keyboardq/ListItemDelegate.qml | 63 ++++ src/modules/keyboardq/ListViewTemplate.qml | 22 ++ src/modules/keyboardq/ResponsiveBase.qml | 116 +++++++ src/modules/keyboardq/keyboard.jpg | Bin 0 -> 103372 bytes src/modules/keyboardq/keyboardq.qml | 379 ++++++++++----------- src/modules/keyboardq/keyboardq.qrc | 4 + 6 files changed, 390 insertions(+), 194 deletions(-) create mode 100644 src/modules/keyboardq/ListItemDelegate.qml create mode 100644 src/modules/keyboardq/ListViewTemplate.qml create mode 100644 src/modules/keyboardq/ResponsiveBase.qml create mode 100644 src/modules/keyboardq/keyboard.jpg diff --git a/src/modules/keyboardq/ListItemDelegate.qml b/src/modules/keyboardq/ListItemDelegate.qml new file mode 100644 index 000000000..2ad10144c --- /dev/null +++ b/src/modules/keyboardq/ListItemDelegate.qml @@ -0,0 +1,63 @@ +import io.calamares.ui 1.0 + +import QtQuick 2.10 +import QtQuick.Controls 2.10 +import QtQuick.Layouts 1.3 +import org.kde.kirigami 2.7 as Kirigami + +ItemDelegate { + + id: control + + + property alias label1 : _label1 + property alias label2 : _label2 + + hoverEnabled: true + + property bool isCurrentItem: ListView.isCurrentItem + background: Rectangle { + + color: isCurrentItem || hovered ? Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor + opacity: isCurrentItem || hovered ? 0.8 : 0.5 + } + + width: 490 //parent.width + height: 36 + + contentItem: RowLayout { + + anchors.fill: parent + anchors.margins: Kirigami.Units.smallSpacing + + Label { + + id: _label1 + Layout.fillHeight: true + Layout.fillWidth: true + horizontalAlignment: Qt.AlignLeft + color: isCurrentItem ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + } + + Label { + + id: _label2 + visible: text.length + Layout.fillHeight: true + Layout.maximumWidth: parent.width * 0.4 + horizontalAlignment: Qt.AlignRight + color: isCurrentItem ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + opacity: isCurrentItem ? 1 : 0.7 + font.weight: Font.Light + } + + Kirigami.Icon { + + source: "checkmark" + Layout.preferredWidth: 22 + Layout.preferredHeight: 22 + color: Kirigami.Theme.highlightedTextColor + visible: isCurrentItem + } + } +} diff --git a/src/modules/keyboardq/ListViewTemplate.qml b/src/modules/keyboardq/ListViewTemplate.qml new file mode 100644 index 000000000..eb160afab --- /dev/null +++ b/src/modules/keyboardq/ListViewTemplate.qml @@ -0,0 +1,22 @@ +import QtQuick 2.10 +import QtQuick.Controls 2.10 +import QtQuick.Layouts 1.3 +import org.kde.kirigami 2.7 as Kirigami + +ListView { + + id: control + + spacing: Kirigami.Units.smallSpacing + clip: true + boundsBehavior: Flickable.StopAtBounds + + Rectangle { + + z: parent.z - 1 + anchors.fill: parent + color: Kirigami.Theme.backgroundColor + radius: 5 + opacity: 0.7 + } +} diff --git a/src/modules/keyboardq/ResponsiveBase.qml b/src/modules/keyboardq/ResponsiveBase.qml new file mode 100644 index 000000000..c9f5c7091 --- /dev/null +++ b/src/modules/keyboardq/ResponsiveBase.qml @@ -0,0 +1,116 @@ +import QtQuick 2.10 +import QtQuick.Controls 2.10 +import QtQuick.Layouts 1.3 +import org.kde.kirigami 2.7 as Kirigami +import QtGraphicalEffects 1.0 + +import io.calamares.ui 1.0 +import io.calamares.core 1.0 + +Page { + + id: control + width: 800 //parent.width + height: 550 //parent.height + + Kirigami.Theme.backgroundColor: "#fafafa" + Kirigami.Theme.textColor: "#333" + + property string subtitle + property string message + + default property alias content : _content.data + property alias stackView: _stackView + + background: Item { + + id: _background + + Image { + + id: _wallpaper + height: parent.height + width: parent.width + + sourceSize.width: 800 + sourceSize.height: 550 + + fillMode: Image.PreserveAspectCrop + antialiasing: false + smooth: false + asynchronous: true + cache: true + + source: "keyboard.jpg" + } + + FastBlur { + + id: fastBlur + anchors.fill: parent + source: _wallpaper + radius: 32 + transparentBorder: false + cached: true + } + } + + ColumnLayout { + + id: _content + + anchors.fill: parent + spacing: Kirigami.Units.smallSpacing * 5 + anchors.margins: Kirigami.Units.smallSpacing * 5 + anchors.bottomMargin: 20 + + Label { + + Layout.fillWidth: true + Layout.preferredHeight: Math.min(implicitHeight, 200) + horizontalAlignment: Qt.AlignHCenter + wrapMode: Text.NoWrap + elide: Text.ElideMiddle + text: control.title + color: "white" + font.bold: true + font.weight: Font.Bold + font.pointSize: 24 + } + + Label { + + Layout.fillWidth: true + Layout.preferredHeight: Math.min(implicitHeight, 200) + horizontalAlignment: Qt.AlignHCenter + wrapMode: Text.Wrap + elide: Text.ElideMiddle + text: control.subtitle + color: "white" + font.weight: Font.Light + font.pointSize: 12 + } + + Label { + + Layout.fillWidth: true + Layout.preferredHeight: Math.min(implicitHeight, 200) + horizontalAlignment: Qt.AlignHCenter + wrapMode: Text.Wrap + elide: Text.ElideMiddle + text: control.message + color: "white" + font.weight: Font.Light + font.pointSize: 10 + } + + StackView { + + id: _stackView + Layout.fillHeight: true + Layout.preferredWidth: parent.width + clip: true + } + + } +} diff --git a/src/modules/keyboardq/keyboard.jpg b/src/modules/keyboardq/keyboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c0600fac5da2748cc80a4ba18e5b1df8e285465 GIT binary patch literal 103372 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../keyboard/kbd-model-map ../keyboard/images/restore.png keyboardq.qml + ListItemDelegate.qml + ListViewTemplate.qml + ResponsiveBase.qml + keyboard.jpg From f8db15adc49c13fb6cf89cabb1ce5f3a4c255d15 Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 21 Jun 2020 17:24:29 +0100 Subject: [PATCH 149/335] add pamac support --- src/modules/packages/main.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 3e29d72e1..6d81f9fe4 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -309,6 +309,24 @@ class PMPacman(PackageManager): def update_system(self): check_target_env_call(["pacman", "-Su", "--noconfirm"]) + + +class PMPamac(PackageManager): + backend = "pamac" + + def install(self, pkgs, from_local=False): + pamac_flags = "install" + + check_target_env_call([backend, pamac_flags + pkgs) + + def remove(self, pkgs): + check_target_env_call([backend, "remove"] + pkgs) + + def update_db(self): + check_target_env_call([backend, "update"]) + + def update_system(self): + check_target_env_call([backend, "upgrade"]) class PMPortage(PackageManager): From 75bba349bed99b1b65cad8079c4c22afd185060f Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 21 Jun 2020 18:03:21 +0100 Subject: [PATCH 150/335] Update main.py --- src/modules/packages/main.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 6d81f9fe4..633cb3a0f 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -313,20 +313,31 @@ class PMPacman(PackageManager): class PMPamac(PackageManager): backend = "pamac" + + def check_db_lock(self, lock="/var/lib/pacman/db.lck"): + # In case some error or crash, the database will be locked, + # resulting in remaining packages not being installed. + import os + if os.path.exists(lock): + check_target_env_call(["rm", lock) def install(self, pkgs, from_local=False): + self.check_db_lock() pamac_flags = "install" - check_target_env_call([backend, pamac_flags + pkgs) + check_target_env_call([backend, pamac_flags, "--no-confirm"] + pkgs) def remove(self, pkgs): - check_target_env_call([backend, "remove"] + pkgs) + self.check_db_lock() + check_target_env_call([backend, "remove", "--no-confirm"] + pkgs) def update_db(self): - check_target_env_call([backend, "update"]) + self.check_db_lock() + check_target_env_call([backend, "update", "--no-confirm"]) def update_system(self): - check_target_env_call([backend, "upgrade"]) + self.check_db_lock() + check_target_env_call([backend, "upgrade", "--no-confirm"]) class PMPortage(PackageManager): From 5bb49e252d1f15555befa7aba6724744e5488cce Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 21 Jun 2020 18:28:17 +0100 Subject: [PATCH 151/335] Update main.py --- src/modules/packages/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 633cb3a0f..1f4cef986 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -319,7 +319,7 @@ class PMPamac(PackageManager): # resulting in remaining packages not being installed. import os if os.path.exists(lock): - check_target_env_call(["rm", lock) + check_target_env_call(["rm", lock]) def install(self, pkgs, from_local=False): self.check_db_lock() From ddfd12019772929f8641645cd8368079263b30c8 Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 21 Jun 2020 23:43:31 +0100 Subject: [PATCH 152/335] add missing self --- src/modules/packages/main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 1f4cef986..f2fd135a4 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -325,19 +325,19 @@ class PMPamac(PackageManager): self.check_db_lock() pamac_flags = "install" - check_target_env_call([backend, pamac_flags, "--no-confirm"] + pkgs) + check_target_env_call([self.backend, pamac_flags, "--no-confirm"] + pkgs) def remove(self, pkgs): self.check_db_lock() - check_target_env_call([backend, "remove", "--no-confirm"] + pkgs) + check_target_env_call([self.backend, "remove", "--no-confirm"] + pkgs) def update_db(self): self.check_db_lock() - check_target_env_call([backend, "update", "--no-confirm"]) + check_target_env_call([self.backend, "update", "--no-confirm"]) def update_system(self): self.check_db_lock() - check_target_env_call([backend, "upgrade", "--no-confirm"]) + check_target_env_call([self.backend, "upgrade", "--no-confirm"]) class PMPortage(PackageManager): From 976150bc1e86ce0f033771bbd52e945910aaa4a9 Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Mon, 22 Jun 2020 00:12:02 +0100 Subject: [PATCH 153/335] simplify install code --- src/modules/packages/main.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index f2fd135a4..b2000ab14 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -322,10 +322,8 @@ class PMPamac(PackageManager): check_target_env_call(["rm", lock]) def install(self, pkgs, from_local=False): - self.check_db_lock() - pamac_flags = "install" - - check_target_env_call([self.backend, pamac_flags, "--no-confirm"] + pkgs) + self.check_db_lock() + check_target_env_call([self.backend, "install", "--no-confirm"] + pkgs) def remove(self, pkgs): self.check_db_lock() From bff0bed07ea90f0b562d0afc615af5854fd610bf Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 12:47:45 +0200 Subject: [PATCH 154/335] [users] Apply coding style (only CreateUserJob.cpp though) - use ci/calamaresstyle - SPDX licensing --- src/modules/users/CreateUserJob.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 2e4e7429e..776b45ce9 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -1,20 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE */ #include "CreateUserJob.h" @@ -114,9 +103,13 @@ CreateUserJob::exec() it->truncate( indexOfFirstToDrop ); } - foreach ( const QString& group, m_defaultGroups ) + for ( const QString& group : m_defaultGroups ) + { if ( !groupsLines.contains( group ) ) + { CalamaresUtils::System::instance()->targetEnvCall( { "groupadd", group } ); + } + } QString defaultGroups = m_defaultGroups.join( ',' ); if ( m_autologin ) From 7f85781d99b90c709cfbddbec5874ac9ccdde93a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 13:22:37 +0200 Subject: [PATCH 155/335] Changes: post-release housekeeping --- CHANGES | 14 +++++++++++++- CMakeLists.txt | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index d50207086..745afb289 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,18 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. +# 3.2.27 (unreleased) # + +This release contains contributions from (alphabetically by first name): + - No external contributors yet + +## Core ## + - No core changes yet + +## Modules ## + - No module changes yet + + # 3.2.26 (2020-06-18) # This release contains contributions from (alphabetically by first name): @@ -25,7 +37,7 @@ This release contains contributions from (alphabetically by first name): - *locale* put some more places into the correct timezone **visually**; for instance Norfolk Island gave up UTC+11.5 in 2015 and is now UTC+11, but Calamares still showed it in a zone separate from UTC+11. - - *localeq* can now properly switch between on & offline mode, + - *localeq* can now properly switch between on & offline mode, it detects internet status through js. - *packages* gained support for the Void Linux package manager, *xbps*. (thanks Pablo) diff --git a/CMakeLists.txt b/CMakeLists.txt index aa5ced95b..3f6386957 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,10 +46,10 @@ # TODO:3.3: Require CMake 3.12 cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.26 + VERSION 3.2.27 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From fde1aad4657d49672417cbb75d71df6928a44d31 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 13:39:36 +0200 Subject: [PATCH 156/335] CMake: add support for USE_*=none (from the os-modules branch) --- CMakeLists.txt | 20 ++++++++++++++++++-- src/modules/CMakeLists.txt | 3 +++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f6386957..6899c565c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,9 +94,25 @@ option( BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON ) # all the implementations are enabled (this just means they are # **available** to `settings.conf`, not that they are used). # -# Currently, only USE_services is in use (to pick only one of the two -# modules, systemd or openrc). +# To explicitly disable a set of modules, set USE_=none +# (e.g. the literal string none), which won't match any of the +# modules but is handled specially. This is the default for +# USE_os, which are modules for specialty non-Linux distributions. +# +# The following USE_* functionalities are available: +# - *services* picks one of the two service-configuration modules, +# for either systemd or openrc. This defaults to empty so that +# **both** modules are available. +# - *os* picks an OS-specific module for things-that-are-not-Linux. +# It is generally discouraged to use this unless your distro is +# completely unable to use standard Linux tools for configuration. +# This defaults to *none* so that nothing gets picked up and nothing +# is packaged -- you must explicitly set it to empty to get all of +# the modules, but that hardly makes sense. Note, too that there +# are no os-* modules shipped with Calamares. They live in the +# *calamares-extensions* repository. set( USE_services "" CACHE STRING "Select the services module to use" ) +set( USE_os "none" CACHE STRING "Select the OS-specific module to include" ) ### Calamares application info # diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 08e5a8520..d49a4c0c0 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -59,6 +59,9 @@ calamares_explain_skipped_modules( ${LIST_SKIPPED_MODULES} ) foreach( _category ${_use_categories} ) list( FIND _found_categories ${_category} _found ) + if ( ${USE_${_category}} STREQUAL "none" ) + set( _found 0 ) + endif() if ( _found EQUAL -1 ) message( FATAL_ERROR "USE_${_category} is set to ${USE_${_category}} and no module matches." ) endif() From 4974d8693244bd51c2b23bd89deb646e0c5916bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sat, 20 Jun 2020 20:30:22 -0400 Subject: [PATCH 157/335] [partition] Fix missing initialization of the attribute partAttributes - Initialize the attribute partAttributes to 0; it is a primitive type and it is not initialized in some constructors. Fixes commit c1b5426c6 ([partition] Add support for partition attributes). - Move implementation of default constructor to cpp. --- src/modules/partition/core/PartitionLayout.cpp | 6 ++++++ src/modules/partition/core/PartitionLayout.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index b5de916f0..367b7487a 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -85,10 +85,16 @@ PartitionLayout::addEntry( PartitionLayout::PartitionEntry entry ) return true; } +PartitionLayout::PartitionEntry::PartitionEntry() + : partAttributes( 0 ) +{ +} + PartitionLayout::PartitionEntry::PartitionEntry( const QString& size, const QString& min, const QString& max ) : partSize( size ) , partMinSize( min ) , partMaxSize( max ) + , partAttributes( 0 ) { } diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 24c10bf97..da691d200 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -52,7 +52,7 @@ public: CalamaresUtils::Partition::PartitionSize partMaxSize; /// @brief All-zeroes PartitionEntry - PartitionEntry() {} + PartitionEntry(); /// @brief Parse @p size, @p min and @p max to their respective member variables PartitionEntry( const QString& size, const QString& min, const QString& max ); From c9f942ad673712fbdcab39622cd30579798f207a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sun, 21 Jun 2020 18:41:21 -0400 Subject: [PATCH 158/335] [libcalamares] Add default value to variant helpers - Some variant helpers take a default parameter if the map does not contains the given key or if the type mismatches. Make all helpers behave the same. --- src/libcalamares/utils/Variant.cpp | 41 ++++++++++++------------------ src/libcalamares/utils/Variant.h | 31 +++++++++++----------- 2 files changed, 31 insertions(+), 41 deletions(-) diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index c02efa9d9..18d7475f1 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -38,21 +38,19 @@ namespace CalamaresUtils bool getBool( const QVariantMap& map, const QString& key, bool d ) { - bool result = d; if ( map.contains( key ) ) { auto v = map.value( key ); if ( v.type() == QVariant::Bool ) { - result = v.toBool(); + return v.toBool(); } } - - return result; + return d; } QString -getString( const QVariantMap& map, const QString& key ) +getString( const QVariantMap& map, const QString& key, const QString& d ) { if ( map.contains( key ) ) { @@ -62,11 +60,11 @@ getString( const QVariantMap& map, const QString& key ) return v.toString(); } } - return QString(); + return d; } QStringList -getStringList( const QVariantMap& map, const QString& key ) +getStringList( const QVariantMap& map, const QString& key, const QStringList& d ) { if ( map.contains( key ) ) { @@ -76,60 +74,53 @@ getStringList( const QVariantMap& map, const QString& key ) return v.toStringList(); } } - return QStringList(); + return d; } qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d ) { - qint64 result = d; if ( map.contains( key ) ) { auto v = map.value( key ); - result = v.toString().toLongLong(nullptr, 0); + return v.toString().toLongLong(nullptr, 0); } - - return result; + return d; } quint64 -getUnsignedInteger( const QVariantMap& map, const QString& key, quint64 u ) +getUnsignedInteger( const QVariantMap& map, const QString& key, quint64 d ) { - quint64 result = u; if ( map.contains( key ) ) { auto v = map.value( key ); - result = v.toString().toULongLong(nullptr, 0); + return v.toString().toULongLong(nullptr, 0); } - - return result; + return d; } double getDouble( const QVariantMap& map, const QString& key, double d ) { - double result = d; if ( map.contains( key ) ) { auto v = map.value( key ); if ( v.type() == QVariant::Int ) { - result = v.toInt(); + return v.toInt(); } else if ( v.type() == QVariant::Double ) { - result = v.toDouble(); + return v.toDouble(); } } - - return result; + return d; } QVariantMap -getSubMap( const QVariantMap& map, const QString& key, bool& success ) +getSubMap( const QVariantMap& map, const QString& key, bool& success, const QVariantMap& d ) { success = false; - if ( map.contains( key ) ) { auto v = map.value( key ); @@ -139,7 +130,7 @@ getSubMap( const QVariantMap& map, const QString& key, bool& success ) return v.toMap(); } } - return QVariantMap(); + return d; } } // namespace CalamaresUtils diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index b678a2c6e..fb9cdb205 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -33,45 +33,44 @@ namespace CalamaresUtils { /** - * Get a bool value from a mapping with a given key; returns the default - * if no value is stored in the map. + * Get a bool value from a mapping with a given key; returns @p d if no value. */ -DLLEXPORT bool getBool( const QVariantMap& map, const QString& key, bool d ); +DLLEXPORT bool getBool( const QVariantMap& map, const QString& key, bool d = false ); /** - * Get a string value from a mapping; returns empty QString if no value. + * Get a string value from a mapping with a given key; returns @p d if no value. */ -DLLEXPORT QString getString( const QVariantMap& map, const QString& key ); +DLLEXPORT QString getString( const QVariantMap& map, const QString& key, const QString& d = QString() ); /** - * Get a string list from a mapping; returns empty list if no value. + * Get a string list from a mapping with a given key; returns @p d if no value. */ -DLLEXPORT QStringList getStringList( const QVariantMap& map, const QString& key ); +DLLEXPORT QStringList getStringList( const QVariantMap& map, const QString& key, const QStringList& d = QStringList() ); /** - * Get an integer value from a mapping; returns @p d if no value. + * Get an integer value from a mapping with a given key; returns @p d if no value. */ -DLLEXPORT qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d ); +DLLEXPORT qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d = 0); /** - * Get an unsigned integer value from a mapping; returns @p u if no value. + * Get an unsigned integer value from a mapping with a given key; returns @p d if no value. */ -DLLEXPORT quint64 getUnsignedInteger( const QVariantMap& map, const QString& key, quint64 u ); +DLLEXPORT quint64 getUnsignedInteger( const QVariantMap& map, const QString& key, quint64 d = 0 ); /** - * Get a double value from a mapping (integers are converted); returns @p d if no value. + * Get a double value from a mapping with a given key (integers are converted); returns @p d if no value. */ -DLLEXPORT double getDouble( const QVariantMap& map, const QString& key, double d ); +DLLEXPORT double getDouble( const QVariantMap& map, const QString& key, double d = 0.0 ); /** - * Returns a sub-map (i.e. a nested map) from the given mapping with the + * Returns a sub-map (i.e. a nested map) from a given mapping with a * given key. @p success is set to true if the @p key exists * in @p map and converts to a map, false otherwise. * - * Returns an empty map if there is no such key or it is not a map-value. + * Returns @p d if there is no such key or it is not a map-value. * (e.g. if @p success is false). */ -DLLEXPORT QVariantMap getSubMap( const QVariantMap& map, const QString& key, bool& success ); +DLLEXPORT QVariantMap getSubMap( const QVariantMap& map, const QString& key, bool& success, const QVariantMap& d = QVariantMap() ); } // namespace CalamaresUtils #endif From 4473d7f5dd4f45fb6f2af3f92befb49f666887d5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 16:18:10 -0400 Subject: [PATCH 159/335] [preservefiles] Move permissions classes to libcalamares --- .../permissions.cpp => libcalamares/utils/Permissions.cpp} | 0 .../permissions.h => libcalamares/utils/Permissions.h} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/{modules/preservefiles/permissions.cpp => libcalamares/utils/Permissions.cpp} (100%) rename src/{modules/preservefiles/permissions.h => libcalamares/utils/Permissions.h} (100%) diff --git a/src/modules/preservefiles/permissions.cpp b/src/libcalamares/utils/Permissions.cpp similarity index 100% rename from src/modules/preservefiles/permissions.cpp rename to src/libcalamares/utils/Permissions.cpp diff --git a/src/modules/preservefiles/permissions.h b/src/libcalamares/utils/Permissions.h similarity index 100% rename from src/modules/preservefiles/permissions.h rename to src/libcalamares/utils/Permissions.h From e24f812b2d29e2833668b2c4a553a9d9ef1e496b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 16:32:47 -0400 Subject: [PATCH 160/335] [libcalamares] Chase Permissions move - Fix include names in *preservefiles* - Tidy up include guards - Fix CMakeLists in *perservefiles* and *libcalamares* - Use SPDX license headers --- src/libcalamares/CMakeLists.txt | 1 + src/libcalamares/utils/Permissions.cpp | 67 ++++++-------- src/libcalamares/utils/Permissions.h | 41 ++++----- src/modules/preservefiles/CMakeLists.txt | 1 - src/modules/preservefiles/PreserveFiles.cpp | 99 ++++++++++++--------- src/modules/preservefiles/PreserveFiles.h | 32 +++---- 6 files changed, 114 insertions(+), 127 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 0516b5613..56bacb32a 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -76,6 +76,7 @@ set( libSources utils/Dirs.cpp utils/Entropy.cpp utils/Logger.cpp + utils/Permissions.cpp utils/PluginFactory.cpp utils/Retranslator.cpp utils/String.cpp diff --git a/src/libcalamares/utils/Permissions.cpp b/src/libcalamares/utils/Permissions.cpp index a3f8ac136..d9d3226e6 100644 --- a/src/libcalamares/utils/Permissions.cpp +++ b/src/libcalamares/utils/Permissions.cpp @@ -1,75 +1,66 @@ /* === This file is part of Calamares - === * - * Copyright (C) 2018 Scott Harvey - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * SPDX-FileCopyrightText: 2018 Scott Harvey + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * */ +#include "Permissions.h" + #include #include -#include "permissions.h" -Permissions::Permissions() : - m_username(), - m_group(), - m_valid(false), - m_value(0) +Permissions::Permissions() + : m_username() + , m_group() + , m_valid( false ) + , m_value( 0 ) { } -Permissions::Permissions(QString p) : Permissions() +Permissions::Permissions( QString p ) + : Permissions() { - parsePermissions(p); + parsePermissions( p ); } -void Permissions::parsePermissions(const QString& p) { +void +Permissions::parsePermissions( const QString& p ) +{ - QStringList segments = p.split(":"); + QStringList segments = p.split( ":" ); - if (segments.length() != 3) { + if ( segments.length() != 3 ) + { m_valid = false; return; } - if (segments[0].isEmpty() || segments[1].isEmpty()) { + if ( segments[ 0 ].isEmpty() || segments[ 1 ].isEmpty() ) + { m_valid = false; return; } bool ok; - int octal = segments[2].toInt(&ok, 8); - if (!ok || octal == 0) { + int octal = segments[ 2 ].toInt( &ok, 8 ); + if ( !ok || octal == 0 ) + { m_valid = false; return; - } else { + } + else + { m_value = octal; } // We have exactly three segments and the third is valid octal, // so we can declare the string valid and set the user and group names m_valid = true; - m_username = segments[0]; - m_group = segments[1]; + m_username = segments[ 0 ]; + m_group = segments[ 1 ]; return; - } - - - - - - diff --git a/src/libcalamares/utils/Permissions.h b/src/libcalamares/utils/Permissions.h index 4cb70a2c2..baa5da554 100644 --- a/src/libcalamares/utils/Permissions.h +++ b/src/libcalamares/utils/Permissions.h @@ -1,45 +1,35 @@ /* === This file is part of Calamares - === * - * Copyright (C) 2018 Scott Harvey - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * SPDX-FileCopyrightText: 2018 Scott Harvey + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * */ -#ifndef PERMISSIONS_H -#define PERMISSIONS_H +#ifndef LIBCALAMARES_PERMISSIONS_H +#define LIBCALAMARES_PERMISSIONS_H + +#include "DllMacro.h" #include /** - * @brief The Permissions class takes a QString @p in the form of + * @brief The Permissions class takes a QString @p in the form of * ::, checks it for validity, and makes the three * components available indivdually. */ -class Permissions +class DLLEXPORT Permissions { public: - /** @brief Constructor - * - * Splits the string @p at the colon (":") into separate elements for + * + * Splits the string @p at the colon (":") into separate elements for * , , and (permissions), where is returned as * an **octal** integer. */ - Permissions(QString p); - + Permissions( QString p ); + /** @brief Default constructor of an invalid Permissions. */ Permissions(); @@ -50,13 +40,12 @@ public: QString octal() const { return QString::number( m_value, 8 ); } private: - void parsePermissions(QString const &p); + void parsePermissions( QString const& p ); QString m_username; QString m_group; bool m_valid; int m_value; - }; -#endif // PERMISSIONS_H +#endif // LIBCALAMARES_PERMISSIONS_H diff --git a/src/modules/preservefiles/CMakeLists.txt b/src/modules/preservefiles/CMakeLists.txt index f6cd98008..571de31ca 100644 --- a/src/modules/preservefiles/CMakeLists.txt +++ b/src/modules/preservefiles/CMakeLists.txt @@ -4,7 +4,6 @@ calamares_add_plugin( preservefiles TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES - permissions.cpp PreserveFiles.cpp LINK_PRIVATE_LIBRARIES calamares diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp index 175f8e4f8..3e34024e7 100644 --- a/src/modules/preservefiles/PreserveFiles.cpp +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -1,39 +1,28 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PreserveFiles.h" -#include "permissions.h" - #include "CalamaresVersion.h" -#include "JobQueue.h" #include "GlobalStorage.h" - +#include "JobQueue.h" #include "utils/CalamaresUtilsSystem.h" #include "utils/CommandList.h" #include "utils/Logger.h" +#include "utils/Permissions.h" #include "utils/Units.h" #include using CalamaresUtils::operator""_MiB; -QString targetPrefix() +QString +targetPrefix() { if ( CalamaresUtils::System::instance()->doChroot() ) { @@ -42,9 +31,13 @@ QString targetPrefix() { QString r = gs->value( "rootMountPoint" ).toString(); if ( !r.isEmpty() ) + { return r; + } else + { cDebug() << "RootMountPoint is empty"; + } } else { @@ -55,16 +48,21 @@ QString targetPrefix() return QLatin1String( "/" ); } -QString atReplacements( QString s ) +QString +atReplacements( QString s ) { Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); QString root( "/" ); QString user; if ( gs && gs->contains( "rootMountPoint" ) ) + { root = gs->value( "rootMountPoint" ).toString(); + } if ( gs && gs->contains( "username" ) ) + { user = gs->value( "username" ).toString(); + } return s.replace( "@@ROOT@@", root ).replace( "@@USER@@", user ); } @@ -74,9 +72,7 @@ PreserveFiles::PreserveFiles( QObject* parent ) { } -PreserveFiles::~PreserveFiles() -{ -} +PreserveFiles::~PreserveFiles() {} QString PreserveFiles::prettyName() const @@ -107,8 +103,7 @@ copy_file( const QString& source, const QString& dest ) { b = sourcef.read( 1_MiB ); destf.write( b ); - } - while ( b.count() > 0 ); + } while ( b.count() > 0 ); sourcef.close(); destf.close(); @@ -116,14 +111,19 @@ copy_file( const QString& source, const QString& dest ) return true; } -Calamares::JobResult PreserveFiles::exec() +Calamares::JobResult +PreserveFiles::exec() { if ( m_items.isEmpty() ) + { return Calamares::JobResult::error( tr( "No files configured to save for later." ) ); + } QString prefix = targetPrefix(); if ( !prefix.endsWith( '/' ) ) + { prefix.append( '/' ); + } int count = 0; for ( const auto& it : m_items ) @@ -133,16 +133,24 @@ Calamares::JobResult PreserveFiles::exec() QString dest = prefix + bare_dest; if ( it.type == ItemType::Log ) + { source = Logger::logFile(); + } if ( it.type == ItemType::Config ) { if ( Calamares::JobQueue::instance()->globalStorage()->save( dest ) ) + { cWarning() << "Could not write config for" << dest; + } else + { ++count; + } } else if ( source.isEmpty() ) + { cWarning() << "Skipping unnamed source file for" << dest; + } else { if ( copy_file( source, dest ) ) @@ -153,17 +161,23 @@ Calamares::JobResult PreserveFiles::exec() int r; - r = s_p->targetEnvCall( QStringList{ "chown", it.perm.username(), bare_dest } ); + r = s_p->targetEnvCall( QStringList { "chown", it.perm.username(), bare_dest } ); if ( r ) + { cWarning() << "Could not chown target" << bare_dest; + } - r = s_p->targetEnvCall( QStringList{ "chgrp", it.perm.group(), bare_dest } ); + r = s_p->targetEnvCall( QStringList { "chgrp", it.perm.group(), bare_dest } ); if ( r ) + { cWarning() << "Could not chgrp target" << bare_dest; + } - r = s_p->targetEnvCall( QStringList{ "chmod", it.perm.octal(), bare_dest } ); + r = s_p->targetEnvCall( QStringList { "chmod", it.perm.octal(), bare_dest } ); if ( r ) + { cWarning() << "Could not chmod target" << bare_dest; + } } ++count; @@ -171,12 +185,13 @@ Calamares::JobResult PreserveFiles::exec() } } - return count == m_items.count() ? - Calamares::JobResult::ok() : - Calamares::JobResult::error( tr( "Not all of the configured files could be preserved." ) ); + return count == m_items.count() + ? Calamares::JobResult::ok() + : Calamares::JobResult::error( tr( "Not all of the configured files could be preserved." ) ); } -void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap) +void +PreserveFiles::setConfigurationMap( const QVariantMap& configurationMap ) { auto files = configurationMap[ "files" ]; if ( !files.isValid() ) @@ -193,7 +208,9 @@ void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap) QString defaultPermissions = configurationMap[ "perm" ].toString(); if ( defaultPermissions.isEmpty() ) + { defaultPermissions = QStringLiteral( "root:root:0400" ); + } QVariantList l = files.toList(); unsigned int c = 0; @@ -203,22 +220,23 @@ void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap) { QString filename = li.toString(); if ( !filename.isEmpty() ) - m_items.append( Item{ filename, filename, Permissions( defaultPermissions ), ItemType::Path } ); + m_items.append( Item { filename, filename, Permissions( defaultPermissions ), ItemType::Path } ); else + { cDebug() << "Empty filename for preservefiles, item" << c; + } } else if ( li.type() == QVariant::Map ) { const auto map = li.toMap(); QString dest = map[ "dest" ].toString(); QString from = map[ "from" ].toString(); - ItemType t = - ( from == "log" ) ? ItemType::Log : - ( from == "config" ) ? ItemType::Config : - ItemType::None; + ItemType t = ( from == "log" ) ? ItemType::Log : ( from == "config" ) ? ItemType::Config : ItemType::None; QString perm = map[ "perm" ].toString(); if ( perm.isEmpty() ) + { perm = defaultPermissions; + } if ( dest.isEmpty() ) { @@ -230,15 +248,16 @@ void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap) } else { - m_items.append( Item{ QString(), dest, Permissions( perm ), t } ); + m_items.append( Item { QString(), dest, Permissions( perm ), t } ); } } else + { cDebug() << "Invalid type for preservefiles, item" << c; + } ++c; } } -CALAMARES_PLUGIN_FACTORY_DEFINITION( PreserveFilesFactory, registerPlugin(); ) - +CALAMARES_PLUGIN_FACTORY_DEFINITION( PreserveFilesFactory, registerPlugin< PreserveFiles >(); ) diff --git a/src/modules/preservefiles/PreserveFiles.h b/src/modules/preservefiles/PreserveFiles.h index 587ac9bab..214ff0df8 100644 --- a/src/modules/preservefiles/PreserveFiles.h +++ b/src/modules/preservefiles/PreserveFiles.h @@ -1,34 +1,22 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PRESERVEFILES_H #define PRESERVEFILES_H -#include -#include -#include - #include "CppJob.h" #include "DllMacro.h" - +#include "utils/Permissions.h" #include "utils/PluginFactory.h" -#include "permissions.h" +#include +#include +#include class PLUGINDLLEXPORT PreserveFiles : public Calamares::CppJob { @@ -40,7 +28,7 @@ class PLUGINDLLEXPORT PreserveFiles : public Calamares::CppJob Path, Log, Config - } ; + }; struct Item { @@ -48,7 +36,7 @@ class PLUGINDLLEXPORT PreserveFiles : public Calamares::CppJob QString dest; Permissions perm; ItemType type; - } ; + }; using ItemList = QList< Item >; @@ -68,4 +56,4 @@ private: CALAMARES_PLUGIN_FACTORY_DECLARATION( PreserveFilesFactory ) -#endif // PRESERVEFILES_H +#endif // PRESERVEFILES_H From 9392473fec2c56ee880a84c7215cbad6109fcdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Tue, 16 Jun 2020 13:20:37 -0400 Subject: [PATCH 161/335] [partition] Add the GPT type and attributes to global storage --- src/modules/partition/jobs/FillGlobalStorageJob.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index 1242b7804..d695a5f6a 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -93,6 +93,8 @@ mapForPartition( Partition* partition, const QString& uuid ) map[ "device" ] = partition->partitionPath(); map[ "partlabel" ] = partition->label(); map[ "partuuid" ] = partition->uuid(); + map[ "parttype" ] = partition->type(); + map[ "partattrs" ] = partition->attributes(); map[ "mountPoint" ] = PartitionInfo::mountPoint( partition ); map[ "fsName" ] = userVisibleFS( partition->fileSystem() ); map[ "fs" ] = untranslatedFS( partition->fileSystem() ); @@ -110,6 +112,7 @@ mapForPartition( Partition* partition, const QString& uuid ) using TR = Logger::DebugRow< const char* const, const QString& >; deb << Logger::SubEntry << "mapping for" << partition->partitionPath() << partition->deviceNode() << TR( "partlabel", map[ "partlabel" ].toString() ) << TR( "partuuid", map[ "partuuid" ].toString() ) + << TR( "parttype", map[ "partype" ].toString() ) << TR( "partattrs", map[ "partattrs" ].toString() ) << TR( "mountPoint:", PartitionInfo::mountPoint( partition ) ) << TR( "fs:", map[ "fs" ].toString() ) << TR( "fsName", map[ "fsName" ].toString() ) << TR( "uuid", uuid ) << TR( "claimed", map[ "claimed" ].toString() ); From 7ae55b250ca2348e57311af61c24b74d9267d9e4 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 22 Jun 2020 17:11:10 -0400 Subject: [PATCH 162/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_ar.ts | 518 +++++---- lang/calamares_as.ts | 534 +++++---- lang/calamares_ast.ts | 534 +++++---- lang/calamares_az.ts | 1917 ++++++++++++++++++--------------- lang/calamares_az_AZ.ts | 1917 ++++++++++++++++++--------------- lang/calamares_be.ts | 534 +++++---- lang/calamares_bg.ts | 520 +++++---- lang/calamares_bn.ts | 516 +++++---- lang/calamares_ca.ts | 541 ++++++---- lang/calamares_ca@valencia.ts | 516 +++++---- lang/calamares_cs_CZ.ts | 534 +++++---- lang/calamares_da.ts | 541 ++++++---- lang/calamares_de.ts | 534 +++++---- lang/calamares_el.ts | 518 +++++---- lang/calamares_en.ts | 71 +- lang/calamares_en_GB.ts | 530 +++++---- lang/calamares_eo.ts | 516 +++++---- lang/calamares_es.ts | 532 +++++---- lang/calamares_es_MX.ts | 534 +++++---- lang/calamares_es_PR.ts | 516 +++++---- lang/calamares_et.ts | 530 +++++---- lang/calamares_eu.ts | 518 +++++---- lang/calamares_fa.ts | 524 +++++---- lang/calamares_fi_FI.ts | 537 +++++---- lang/calamares_fr.ts | 534 +++++---- lang/calamares_fr_CH.ts | 516 +++++---- lang/calamares_gl.ts | 530 +++++---- lang/calamares_gu.ts | 516 +++++---- lang/calamares_he.ts | 541 ++++++---- lang/calamares_hi.ts | 555 ++++++---- lang/calamares_hr.ts | 549 ++++++---- lang/calamares_hu.ts | 534 +++++---- lang/calamares_id.ts | 530 +++++---- lang/calamares_is.ts | 524 +++++---- lang/calamares_it_IT.ts | 534 +++++---- lang/calamares_ja.ts | 542 ++++++---- lang/calamares_kk.ts | 516 +++++---- lang/calamares_kn.ts | 516 +++++---- lang/calamares_ko.ts | 534 +++++---- lang/calamares_lo.ts | 516 +++++---- lang/calamares_lt.ts | 534 +++++---- lang/calamares_lv.ts | 516 +++++---- lang/calamares_mk.ts | 516 +++++---- lang/calamares_ml.ts | 534 +++++---- lang/calamares_mr.ts | 520 +++++---- lang/calamares_nb.ts | 516 +++++---- lang/calamares_ne_NP.ts | 516 +++++---- lang/calamares_nl.ts | 532 +++++---- lang/calamares_pl.ts | 532 +++++---- lang/calamares_pt_BR.ts | 534 +++++---- lang/calamares_pt_PT.ts | 534 +++++---- lang/calamares_ro.ts | 530 +++++---- lang/calamares_ru.ts | 534 +++++---- lang/calamares_sk.ts | 537 +++++---- lang/calamares_sl.ts | 516 +++++---- lang/calamares_sq.ts | 539 +++++---- lang/calamares_sr.ts | 516 +++++---- lang/calamares_sr@latin.ts | 516 +++++---- lang/calamares_sv.ts | 528 +++++---- lang/calamares_th.ts | 520 +++++---- lang/calamares_tr_TR.ts | 541 ++++++---- lang/calamares_uk.ts | 543 ++++++---- lang/calamares_ur.ts | 516 +++++---- lang/calamares_uz.ts | 516 +++++---- lang/calamares_zh_CN.ts | 534 +++++---- lang/calamares_zh_TW.ts | 541 ++++++---- 66 files changed, 22383 insertions(+), 14797 deletions(-) diff --git a/lang/calamares_ar.ts b/lang/calamares_ar.ts index 605ea441c..2e3960701 100644 --- a/lang/calamares_ar.ts +++ b/lang/calamares_ar.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install ثبت @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done انتهى @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 يشغّل الأمر %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. يشغّل عمليّة %1. - + Bad working directory path مسار سيء لمجلد العمل - + Working directory %1 for python job %2 is not readable. لا يمكن القراءة من مجلد العمل %1 الخاص بعملية بايثون %2. - + Bad main script file ملفّ السّكربت الرّئيس سيّء. - + Main script file %1 for python job %2 is not readable. ملفّ السّكربت الرّئيس %1 لمهمّة بايثون %2 لا يمكن قراءته. - + Boost.Python error in job "%1". خطأ Boost.Python في العمل "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -240,7 +245,7 @@ - + (%n second(s)) @@ -252,7 +257,7 @@ - + System-requirements checking is complete. @@ -281,13 +286,13 @@ - + &Yes &نعم - + &No &لا @@ -322,109 +327,109 @@ - + Continue with setup? الإستمرار في التثبيت؟ - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> مثبّت %1 على وشك بإجراء تعديلات على قرصك لتثبيت %2.<br/><strong>لن تستطيع التّراجع عن هذا.</strong> - + &Set up now - + &Install now &ثبت الأن - + Go &back &إرجع - + &Set up - + &Install &ثبت - + Setup is complete. Close the setup program. اكتمل الإعداد. أغلق برنامج الإعداد. - + The installation is complete. Close the installer. اكتمل التثبيت , اغلق المثبِت - + Cancel setup without changing the system. - + Cancel installation without changing the system. الغاء الـ تثبيت من دون احداث تغيير في النظام - + &Next &التالي - + &Back &رجوع - + &Done - + &Cancel &إلغاء - + Cancel setup? إلغاء الإعداد؟ - + Cancel installation? إلغاء التثبيت؟ - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. هل تريد حقًا إلغاء عملية الإعداد الحالية؟ سيتم إنهاء برنامج الإعداد وسيتم فقد جميع التغييرات. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. أتريد إلغاء عمليّة التّثبيت الحاليّة؟ @@ -434,22 +439,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type نوع الاستثناء غير معروف - + unparseable Python error خطأ بايثون لا يمكن تحليله - + unparseable Python traceback تتبّع بايثون خلفيّ لا يمكن تحليله - + Unfetchable Python error. خطأ لا يمكن الحصول علية في بايثون. @@ -466,32 +471,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information أظهر معلومات التّنقيح - + &Back &رجوع - + &Next &التالي - + &Cancel &إلغاء - + %1 Setup Program - + %1 Installer %1 المثبت @@ -688,18 +693,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -752,49 +757,49 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> لا يستوفِ هذا الحاسوب أدنى متطلّبات تثبيت %1.<br/>لا يمكن متابعة التّثبيت. <a href="#details">التّفاصيل...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. لا يستوفِ هذا الحاسوب بعض المتطلّبات المستحسنة لتثبيت %1.<br/>يمكن للمثبّت المتابعة، ولكن قد تكون بعض الميزات معطّلة. - + This program will ask you some questions and set up %2 on your computer. سيطرح البرنامج بعض الأسئلة عليك ويعدّ %2 على حاسوبك. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>مرحبًا بك في مثبّت %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1231,37 +1236,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information اضبط معلومات القسم - + Install %1 on <strong>new</strong> %2 system partition. ثبّت %1 على قسم نظام %2 <strong>جديد</strong>. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. اضطب قسم %2 <strong>جديد</strong> بنقطة الضّمّ <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. ثبّت %2 على قسم النّظام %3 ‏<strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. اضبط القسم %3 <strong>%1</strong> بنقطة الضّمّ <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. ثبّت محمّل الإقلاع على <strong>%1</strong>. - + Setting up mount points. يضبط نقاط الضّمّ. @@ -1279,32 +1284,32 @@ The installer will quit and all changes will be lost. أ&عد التّشغيل الآن - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>انتهينا.</h1><br/>لقد ثُبّت %1 على حاسوبك.<br/>يمكنك إعادة التّشغيل وفتح النّظام الجديد، أو متابعة استخدام بيئة %2 الحيّة. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1312,27 +1317,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish أنهِ - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1363,72 +1368,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. النّظام ليس موصولًا بالإنترنت - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. المثبّت لا يعمل بصلاحيّات المدير. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1776,6 +1781,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1914,6 +1929,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2501,107 +2529,107 @@ The installer will quit and all changes will be lost. الأقسام - + Install %1 <strong>alongside</strong> another operating system. ثبّت %1 <strong>جنبًا إلى جنب</strong> مع نظام تشغيل آخر. - + <strong>Erase</strong> disk and install %1. <strong>امسح</strong> القرص وثبّت %1. - + <strong>Replace</strong> a partition with %1. <strong>استبدل</strong> قسمًا ب‍ %1. - + <strong>Manual</strong> partitioning. تقسيم <strong>يدويّ</strong>. - + 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>امسح</strong> القرص <strong>%2</strong> (%3) وثبّت %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>استبدل</strong> قسمًا على القرص <strong>%2</strong> (%3) ب‍ %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: الحاليّ: - + After: بعد: - + No EFI system partition configured لم يُضبط أيّ قسم نظام EFI - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set راية قسم نظام EFI غير مضبوطة - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2667,65 +2695,65 @@ The installer will quit and all changes will be lost. 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. @@ -2733,32 +2761,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown مجهول - + extended ممتدّ - + unformatted غير مهيّأ - + swap @@ -2812,6 +2835,15 @@ Output: مساحة غير مقسّمة أو جدول تقسيم مجهول + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2847,73 +2879,88 @@ Output: نموذج - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. اختر مكان تثبيت %1.<br/><font color="red">تحذير: </font>سيحذف هذا كلّ الملفّات في القسم المحدّد. - + The selected item does not appear to be a valid partition. لا يبدو العنصر المحدّد قسمًا صالحًا. - + %1 cannot be installed on empty space. Please select an existing partition. لا يمكن تثبيت %1 في مساحة فارغة. فضلًا اختر قسمًا موجودًا. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. لا يمكن تثبيت %1 على قسم ممتدّ. فضلًا اختر قسمًا أساسيًّا أو ثانويًّا. - + %1 cannot be installed on this partition. لا يمكن تثبيت %1 على هذا القسم. - + Data partition (%1) قسم البيانات (%1) - + Unknown system partition (%1) قسم نظام مجهول (%1) - + %1 system partition (%2) قسم نظام %1 ‏(%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>%4</strong><br/><br/>القسم %1 صغير جدًّا ل‍ %2. فضلًا اختر قسمًا بحجم %3 غ.بايت على الأقلّ. - + <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>%2</strong><br/><br/>تعذّر إيجاد قسم النّظام EFI في أيّ مكان. فضلًا ارجع واستخدم التّقسيم اليدويّ لإعداد %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. <strong>%3</strong><br/><br/>سيُثبّت %1 على %2.<br/><font color="red">تحذير: </font>ستفقد كلّ البيانات على القسم %2. - + The EFI system partition at %1 will be used for starting %2. سيُستخدم قسم نظام EFI على %1 لبدء %2. - + EFI system partition: قسم نظام EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3036,12 +3083,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: لأفضل النّتائج، تحقّق من أن الحاسوب: - + System requirements متطلّبات النّظام @@ -3049,27 +3096,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> لا يستوفِ هذا الحاسوب أدنى متطلّبات تثبيت %1.<br/>لا يمكن متابعة التّثبيت. <a href="#details">التّفاصيل...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. لا يستوفِ هذا الحاسوب بعض المتطلّبات المستحسنة لتثبيت %1.<br/>يمكن للمثبّت المتابعة، ولكن قد تكون بعض الميزات معطّلة. - + This program will ask you some questions and set up %2 on your computer. سيطرح البرنامج بعض الأسئلة عليك ويعدّ %2 على حاسوبك. @@ -3352,51 +3399,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + 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. @@ -3415,7 +3491,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3424,30 +3500,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3633,42 +3709,42 @@ Output: &ملاحظات الإصدار - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>مرحبًا بك في مثبّت %1.</h1> - + %1 support %1 الدعم - + About %1 setup - + About %1 installer حول 1% المثبت - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3676,7 +3752,7 @@ Output: WelcomeQmlViewStep - + Welcome مرحبا بك @@ -3684,7 +3760,7 @@ Output: WelcomeViewStep - + Welcome مرحبا بك @@ -3713,6 +3789,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3758,6 +3854,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3809,27 +3923,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_as.ts b/lang/calamares_as.ts index 295b6d6c3..f7c0f1af0 100644 --- a/lang/calamares_as.ts +++ b/lang/calamares_as.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up চেত্ আপ - + Install ইনস্তল @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) কার্য্য বিফল হল (%1) - + Programmed job failure was explicitly requested. প্ৰগ্ৰেম কৰা কাৰ্য্যৰ বিফলতা স্পষ্টভাবে অনুৰোধ কৰা হৈছিল। @@ -143,7 +143,7 @@ Calamares::JobThread - + Done হৈ গ'ল @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) উদাহৰণ কার্য্য (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. গন্তব্য চিছটেমত '%1' কমাণ্ড চলাওক। - + Run command '%1'. '%1' কমাণ্ড চলাওক। - + Running command %1 %2 %1%2 কমাণ্ড চলি আছে @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 কাৰ্য চলি আছে। - + Bad working directory path বেয়া কৰ্মৰত ডাইৰেক্টৰী পথ - + Working directory %1 for python job %2 is not readable. %2 পাইথন কাৰ্য্যৰ %1 কৰ্মৰত ডাইৰেক্টৰী পঢ়িব নোৱাৰি।​ - + Bad main script file বেয়া মুখ্য লিপি ফাইল - + Main script file %1 for python job %2 is not readable. %2 পাইথন কাৰ্য্যৰ %1 মূখ্য লিপি ফাইল পঢ়িব নোৱাৰি। - + Boost.Python error in job "%1". "%1" কাৰ্য্যত Boost.Python ত্ৰুটি। @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + <i>%1</i> মডিউল পৰীক্ষণৰ বাবে আৱশ্যকতাবোৰ সম্পূৰ্ণ হ'ল। + - + Waiting for %n module(s). Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. চিছ্তেমৰ বাবে প্রয়োজনীয় পৰীক্ষণ সম্পূর্ণ হ'ল। @@ -273,13 +278,13 @@ - + &Yes হয় (&Y) - + &No নহয় (&N) @@ -314,109 +319,109 @@ <br/>নিম্নোক্ত মডিউলবোৰ লোড্ কৰিৱ পৰা নগ'ল: - + Continue with setup? চেত্ আপ অব্যাহত ৰাখিব? - + Continue with installation? ইন্স্তলেচন অব্যাহত ৰাখিব? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 চেত্ আপ প্ৰগ্ৰেমটোৱে %2 চেত্ আপ কৰিবলৈ আপোনাৰ ডিস্কত সালসলনি কৰিব।<br/><strong>আপুনি এইবোৰ পিছত পূৰ্বলৈ সলনি কৰিব নোৱাৰিব।</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 ইনস্তলাৰটোৱে %2 ইনস্তল কৰিবলৈ আপোনাৰ ডিস্কত সালসলনি কৰিব।<br/><strong>আপুনি এইবোৰ পিছত পূৰ্বলৈ সলনি কৰিব নোৱাৰিব।</strong> - + &Set up now এতিয়া চেত্ আপ কৰক (&S) - + &Install now এতিয়া ইনস্তল কৰক (&I) - + Go &back উভতি যাওক (&b) - + &Set up চেত্ আপ কৰক (&S) - + &Install ইনস্তল (&I) - + Setup is complete. Close the setup program. চেত্ আপ সম্পূৰ্ণ হ'ল। প্ৰোগ্ৰেম বন্ধ কৰক। - + The installation is complete. Close the installer. ইনস্তলেচন সম্পূৰ্ণ হ'ল। ইন্স্তলাৰ বন্ধ কৰক। - + Cancel setup without changing the system. চিছ্তেম সলনি নকৰাকৈ চেত্ আপ বাতিল কৰক। - + Cancel installation without changing the system. চিছ্তেম সলনি নকৰাকৈ ইনস্তলেচন বাতিল কৰক। - + &Next পৰবর্তী (&N) - + &Back পাছলৈ (&B) - + &Done হৈ গ'ল (&D) - + &Cancel বাতিল কৰক (&C) - + Cancel setup? চেত্ আপ বাতিল কৰিব? - + Cancel installation? ইনস্তলেছন বাতিল কৰিব? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. সচাকৈয়ে চলিত চেত্ আপ প্ৰক্ৰিয়া বাতিল কৰিব বিচাৰে নেকি? চেত্ আপ প্ৰোগ্ৰেম বন্ধ হ'ব আৰু গোটেই সলনিবোৰ নোহোৱা হৈ যাব। - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. সচাকৈয়ে চলিত ইনস্তল প্ৰক্ৰিয়া বাতিল কৰিব বিচাৰে নেকি? @@ -426,22 +431,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type অপৰিচিত প্ৰকাৰৰ ব্যতিক্রম - + unparseable Python error অপ্ৰাপ্য পাইথন ত্ৰুটি - + unparseable Python traceback অপ্ৰাপ্য পাইথন ত্ৰেচবেক - + Unfetchable Python error. ঢুকি নোপোৱা পাইথন ক্ৰুটি। @@ -459,32 +464,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information দিবাগ তথ্য দেখাওক - + &Back পাছলৈ (&B) - + &Next পৰবর্তী (&N) - + &Cancel বাতিল কৰক (&C) - + %1 Setup Program %1 চেত্ আপ প্ৰোগ্ৰেম - + %1 Installer %1 ইনস্তলাৰ @@ -681,18 +686,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. কমাণ্ড চলাব পৰা নগ'ল। - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. কমাণ্ডটো হ'স্ট পৰিৱেশত চলে আৰু তাৰ বাবে ৰুট পথ জানাটো আৱশ্যক, কিন্তু rootMountPointৰ বিষয়ে একো উল্লেখ নাই। - + The command needs to know the user's name, but no username is defined. কমাণ্ডটোৱে ব্যৱহাৰকাৰীৰ নাম জনাটো আৱশ্যক, কিন্তু কোনো ব্যৱহাৰকাৰীৰ নাম উল্লেখ নাই। @@ -745,49 +750,49 @@ The installer will quit and all changes will be lost. নেটৱৰ্ক্ ইনস্তলেচন। (নিস্ক্ৰিয়: পেকেজ সুচী বিচাৰি পোৱা নগ'ল, আপোনাৰ নেটৱৰ্ক্ সংযোগ পৰীক্ষা কৰক) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> %1 চেত্ আপৰ বাবে নিম্নতম আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। <br/>স্থাপন প্ৰক্ৰিয়া অবিৰত ৰাখিব নোৱাৰিব। <a href="#details">বিৱৰণ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> %1 ইনস্তলচেন​ৰ বাবে নিম্নতম আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। <br/>ইনস্তলচেন​ প্ৰক্ৰিয়া অবিৰত ৰাখিব নোৱাৰিব। <a href="#details">বিৱৰণ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. %1 চেত্ আপৰ বাবে পৰামৰ্শ দিয়া আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। <br/>স্থাপন প্ৰক্ৰিয়া অবিৰত ৰাখিব পাৰিব, কিন্তু কিছুমান সুবিধা নিষ্ক্রিয় হৈ থাকিব। - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. %1 ইনস্তলচেন​ৰ বাবে পৰামৰ্শ দিয়া আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। ইনস্তলচেন​ অবিৰত ৰাখিব পাৰিব, কিন্তু কিছুমান সুবিধা নিষ্ক্রিয় হৈ থাকিব। - + This program will ask you some questions and set up %2 on your computer. এইটো প্ৰগ্ৰেমে অপোনাক কিছুমান প্ৰশ্ন সুধিব আৰু অপোনাৰ কম্পিউটাৰত %2 স্থাপন কৰিব। - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1ৰ কেলামাৰেচ চেত্ আপ প্ৰগ্ৰামলৈ আদৰণি জনাইছো।</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1> %1 চেত্ আপলৈ আদৰণি জনাইছো।</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1ৰ কেলামাৰেচ ইনস্তলাৰলৈ আদৰণি জনাইছো।</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>%1 ইনস্তলাৰলৈ আদৰণি জনাইছো।</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information বিভাজন তথ্য চেত্ কৰক - + Install %1 on <strong>new</strong> %2 system partition. <strong>নতুন</strong> %2 চিছটেম বিভাজনত %1 ইনস্তল কৰক। - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. <strong>%1</strong> মাউন্ট পইন্টৰ সৈতে <strong>নতুন</strong> %2 বিভজন স্থাপন কৰক। - + Install %2 on %3 system partition <strong>%1</strong>. %3 চিছটেম বিভাজনত <strong>%1</strong>ত %2 ইনস্তল কৰক। - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. %3 বিভাজন <strong>%1</strong> <strong>%2</strong>ৰ সৈতে স্থাপন কৰক। - + Install boot loader on <strong>%1</strong>. <strong>1%ত</strong> বুত্ লোডাৰ ইনস্তল কৰক। - + Setting up mount points. মাউন্ট পইন্ট চেত্ আপ হৈ আছে। @@ -1272,32 +1277,32 @@ The installer will quit and all changes will be lost. পুনৰাৰম্ভ কৰক (&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>সকলো কৰা হ'ল।</h1> <br/>আপোনাৰ কম্পিউটাৰত %1 স্থাপন কৰা হ'ল। <br/>আপুনি এতিয়া নতুন চিছটেম ব্যৱহাৰ কৰা আৰম্ভ কৰিব পাৰিব। - + <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 setup program.</p></body></html> <html><head/><body><p>এইটো বিকল্পত ক্লিক কৰাৰ লগে লগে আপোনাৰ চিছটেম পুনৰাৰম্ভ হ'ব যেতিয়া আপুনি <span style="font-style:italic;">হৈ গ'ল</span>ত ক্লিক কৰে বা চেত্ আপ প্ৰগ্ৰেম বন্ধ কৰে।</p></body></html> - + <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>সকলো কৰা হ'ল।</h1> আপোনাৰ কম্পিউটাৰত %1 ইনস্তল কৰা হ'ল। <br/>আপুনি এতিয়া নতুন চিছটেম পুনৰাৰম্ভ কৰিব পাৰিব অথবা %2 লাইভ বাতাৱৰণ ব্যৱহাৰ কৰা অবিৰত ৰাখিব পাৰে। - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>এইটো বিকল্পত ক্লিক কৰাৰ লগে লগে আপোনাৰ চিছটেম পুনৰাৰম্ভ হ'ব যেতিয়া আপুনি <span style="font-style:italic;">হৈ গ'ল</span>ত ক্লিক কৰে বা ইনস্তলাৰ বন্ধ কৰে।</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>স্থাপন প্ৰক্ৰিয়া বিফল হ'ল।</h1> <br/>আপোনাৰ কম্পিউটাৰত %1 স্থাপন নহ'ল্। <br/>ক্ৰুটি বাৰ্তা আছিল: %2। - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>ইনস্তলচেন প্ৰক্ৰিয়া বিফল হ'ল।</h1> <br/>আপোনাৰ কম্পিউটাৰত %1 ইনস্তল নহ'ল্। <br/>ক্ৰুটি বাৰ্তা আছিল: %2। @@ -1305,27 +1310,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish সমাপ্ত - + Setup Complete চেত্ আপ সম্পুৰ্ণ হৈছে - + Installation Complete ইনস্তলচেন সম্পুৰ্ণ হ'ল - + The setup of %1 is complete. %1ৰ চেত্ আপ সম্পুৰ্ণ হৈছে। - + The installation of %1 is complete. %1ৰ ইনস্তলচেন সম্পুৰ্ণ হ'ল। @@ -1356,72 +1361,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space অতি কমেও %1 GiB খালী ঠাই ড্ৰাইভত উপলব্ধ আছে - + There is not enough drive space. At least %1 GiB is required. ড্ৰাইভত পৰ্য্যাপ্ত খালী ঠাই নাই। অতি কমেও %1 GiB আৱশ্যক। - + has at least %1 GiB working memory অতি কমেও %1 GiB কাৰ্য্যকৰি মেম'ৰি আছে - + The system does not have enough working memory. At least %1 GiB is required. চিছটেমত পৰ্য্যাপ্ত কাৰ্য্যকৰি মেম'ৰী নাই। অতি কমেও %1 GiB আৱশ্যক। - + 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. চিছটেমটো ইন্টাৰনেটৰ সৈতে সংযোগ হৈ থকা নাই। - + is running the installer as an administrator (root) ইনস্তলাৰটো প্ৰসাশনক (ৰুট) হিছাবে চলি আছে নেকি - + The setup program is not running with administrator rights. চেত্ আপ প্ৰগ্ৰেমটো প্ৰসাশনীয় অধিকাৰৰ সৈতে চলি থকা নাই। - + The installer is not running with administrator rights. ইনস্তলাৰটো প্ৰসাশনীয় অধিকাৰৰ সৈতে চলি থকা নাই। - + has a screen large enough to show the whole installer সম্পূৰ্ণ ইনস্তলাৰটো দেখাবলৈ প্ৰয়োজনীয় ডাঙৰ স্ক্ৰীণ আছে নেকি? - + The screen is too small to display the setup program. চেত্ আপ প্ৰগ্ৰেমটো প্ৰদৰ্শন কৰিবলৈ স্ক্ৰিনখনৰ আয়তন যথেস্ট সৰু। - + The screen is too small to display the installer. ইনস্তলাৰটো প্ৰদৰ্শন কৰিবলৈ স্ক্ৰিনখনৰ আয়তন যথেস্ট সৰু। @@ -1769,6 +1774,16 @@ The installer will quit and all changes will be lost. এইটো মেচিন-আইডিৰ বাবে কোনো মাউন্ট্ পইণ্ট্ট্ট্ ছেট কৰা নাই। + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ The installer will quit and all changes will be lost. <code>%1ত</code> মূল উপকৰণ নিৰ্মাতা গোট চিনক্তকাৰি চেত্ কৰক। + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ The installer will quit and all changes will be lost. বিভাজনসমুহ - + Install %1 <strong>alongside</strong> another operating system. %1ক বেলেগ এটা অপাৰেটিং চিছটেমৰ <strong>লগত </strong>ইনস্তল কৰক। - + <strong>Erase</strong> disk and install %1. ডিস্কত থকা সকলো ডাটা <strong>আতৰাওক</strong> আৰু %1 ইনস্তল কৰক। - + <strong>Replace</strong> a partition with %1. এখন বিভাজন %1ৰ লগত <strong>সলনি</strong> কৰক। - + <strong>Manual</strong> partitioning. <strong>মেনুৱেল</strong> বিভাজন। - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). %1ক <strong>%2</strong>(%3)ত ডিস্কত থকা বেলেগ অপাৰেটিং চিছটেমৰ <strong>লগত</strong> ইনস্তল কৰক। - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>%2</strong> (%3)ডিস্কত থকা সকলো ডাটা <strong>আতৰাওক</strong> আৰু %1 ইনস্তল কৰক। - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>%2</strong> (%3) ডিস্কত এখন বিভাজন %1ৰ লগত <strong>সলনি</strong> কৰক। - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>%1</strong> (%2) ডিস্কত <strong>মেনুৱেল</strong> বিভাজন। - + Disk <strong>%1</strong> (%2) ডিস্ক্ <strong>%1</strong> (%2) - + Current: বর্তমান: - + After: পিছত: - + No EFI system partition configured কোনো EFI চিছটেম বিভাজন কনফিগাৰ কৰা হোৱা নাই - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI চিছটেম বিভাজনত ফ্লেগ চেট কৰা নাই - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. এনক্ৰিপ্তেড ৰুট বিভাজনৰ সৈতে এটা বেলেগ বুট বিভাজন চেত্ আপ কৰা হৈছিল, কিন্তু বুট বিভাজন এনক্ৰিপ্তেড কৰা হোৱা নাই। <br/><br/>এইধৰণৰ চেত্ আপ সুৰক্ষিত নহয় কাৰণ গুৰুত্ব্পুৰ্ণ চিছটেম ফাইল আন্এনক্ৰিপ্তেড বিভাজনত ৰখা হয়। <br/>আপুনি বিচাৰিলে চলাই থাকিব পাৰে কিন্তু পিছ্ত চিছটেম আৰম্ভৰ সময়ত ফাইল চিছটেম খোলা যাব। <br/>বুট বিভাজন এনক্ৰিপ্ত্ কৰিবলৈ উভতি যাওক আৰু বিভাজন বনোৱা windowত <strong>Encrypt</strong> বাচনি কৰি আকৌ বনাওক। - + has at least one disk device available. অতি কমেও এখন ডিস্ক্ উপলব্ধ আছে। - + There are no partitions to install on. @@ -2660,14 +2688,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. কমাণ্ডৰ পৰা কোনো আউটপুট পোৱা নগ'ল। - + Output: @@ -2676,52 +2704,52 @@ Output: - + External command crashed. বাহ্যিক কমাণ্ড ক্ৰেছ্ কৰিলে। - + Command <i>%1</i> crashed. <i>%1</i> কমাণ্ড ক্ৰেছ্ কৰিলে। - + External command failed to start. বাহ্যিক কমাণ্ড আৰম্ভ হোৱাত বিফল হ'ল। - + Command <i>%1</i> failed to start. <i>%1</i> কমাণ্ড আৰম্ভ হোৱাত বিফল হ'ল। - + 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. <i>%1</i> কমাণ্ড সমাপ্ত কৰাত %2 ছেকেণ্ডত বিফল হ'ল। - + External command finished with errors. বাহ্যিক কমাণ্ড ক্ৰটিৰ সৈতে সমাপ্ত হ'ল। - + Command <i>%1</i> finished with exit code %2. <i>%1</i> কমাণ্ড %2 এক্সিড্ কোডৰ সৈতে সমাপ্ত হ'ল। @@ -2729,32 +2757,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - <i>%1</i> মডিউল পৰীক্ষণৰ বাবে আৱশ্যকতাবোৰ সম্পূৰ্ণ হ'ল। - - - + unknown অজ্ঞাত - + extended প্ৰসাৰিত - + unformatted ফৰ্মেট কৰা হোৱা নাই - + swap স্ৱেপ @@ -2808,6 +2831,15 @@ Output: বিভাজন নকৰা খালী ঠাই অথবা অজ্ঞাত বিভজন তালিকা + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Output: ৰূপ - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. %1 ক'ত ইনস্তল লাগে বাচনি কৰক।<br/> <font color="red">সকীয়নি: ইয়ে বাচনি কৰা বিভাজনৰ সকলো ফাইল বিলোপ কৰিব। - + The selected item does not appear to be a valid partition. বাচনি কৰা বস্তুটো এটা বৈধ বিভাজন নহয়। - + %1 cannot be installed on empty space. Please select an existing partition. %1 খালী ঠাইত ইনস্তল কৰিব নোৱাৰি। উপস্থিতি থকা বিভাজন বাচনি কৰক। - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 প্ৰসাৰিত ঠাইত ইনস্তল কৰিব নোৱাৰি। উপস্থিতি থকা মূখ্য বা লজিকেল বিভাজন বাচনি কৰক। - + %1 cannot be installed on this partition. এইখন বিভাজনত %1 ইনস্তল কৰিব নোৱাৰি। - + Data partition (%1) ডাটা বিভাজন (%1) - + Unknown system partition (%1) অজ্ঞাত চিছটেম বিভাজন (%1) - + %1 system partition (%2) %1 চিছটেম বিভাজন (%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>%4</strong><br/><br/> %1 বিভাজনটো %2ৰ বাবে যথেষ্ট সৰু। অনুগ্ৰহ কৰি অতি কমেও %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>%2</strong><br/><br/>এইটো চিছটেমৰ ক'তো এটা EFI চিছটেম বিভাজন বিচাৰি পোৱা নগ'ল। অনুগ্ৰহ কৰি উভতি যাওক আৰু %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. <strong>%3</strong><br/><br/> %1 %2ত ইনস্তল হ'ব। <br/><font color="red">সকীয়নি​: </font>%2 বিভাজনত থকা গোটেই ডাটা বিলোপ হৈ যাব। - + The EFI system partition at %1 will be used for starting %2. %1 ত থকা EFI চিছটেম বিভাজনটো %2 আৰম্ভ কৰাৰ বাবে ব্যৱহাৰ কৰা হ'ব। - + EFI system partition: EFI চিছটেম বিভাজন: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: উত্কৃষ্ট ফলাফলৰ বাবে অনুগ্ৰহ কৰি নিশ্চিত কৰক যে এইটো কম্পিউটাৰ হয়: - + System requirements চিছটেমৰ আৱশ্যকতাবোৰ @@ -3045,27 +3092,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> %1 চেত্ আপৰ বাবে নিম্নতম আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। <br/>স্থাপন প্ৰক্ৰিয়া অবিৰত ৰাখিব নোৱাৰিব। <a href="#details">বিৱৰণ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> %1 ইনস্তলচেন​ৰ বাবে নিম্নতম আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। <br/>ইনস্তলচেন​ প্ৰক্ৰিয়া অবিৰত ৰাখিব নোৱাৰিব। <a href="#details">বিৱৰণ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. %1 চেত্ আপৰ বাবে পৰামৰ্শ দিয়া আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। <br/>স্থাপন প্ৰক্ৰিয়া অবিৰত ৰাখিব পাৰিব, কিন্তু কিছুমান সুবিধা নিষ্ক্রিয় হৈ থাকিব। - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. %1 ইনস্তলচেন​ৰ বাবে পৰামৰ্শ দিয়া আৱশ্যকতা এই কম্পিউটাৰটোৱে পূৰ্ণ নকৰে। ইনস্তলচেন​ অবিৰত ৰাখিব পাৰিব, কিন্তু কিছুমান সুবিধা নিষ্ক্রিয় হৈ থাকিব। - + This program will ask you some questions and set up %2 on your computer. এইটো প্ৰগ্ৰেমে অপোনাক কিছুমান প্ৰশ্ন সুধিব আৰু অপোনাৰ কম্পিউটাৰত %2 স্থাপন কৰিব। @@ -3348,51 +3395,80 @@ Output: TrackingInstallJob - + Installation feedback ইনস্তল সম্বন্ধীয় প্ৰতিক্ৰিয়া - + Sending installation feedback. ইন্স্তল সম্বন্ধীয় প্ৰতিক্ৰিয়া পঠাই আছে। - + Internal error in install-tracking. ইন্স্তল-ক্ৰুটিৰ আভ্যন্তৰীণ ক্ৰুটি। - + HTTP request timed out. HTTP ৰিকুৱেস্টৰ সময় উকলি গ'ল। - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback মেচিন সম্বন্ধীয় প্ৰতিক্ৰীয়া - + Configuring machine feedback. মেচিন সম্বন্ধীয় প্ৰতিক্ৰীয়া কনফিগাৰ কৰি আছে‌। - - + + Error in machine feedback configuration. মেচিনত ফিডবেক কনফিগাৰেচনৰ ক্ৰুটি। - + Could not configure machine feedback correctly, script error %1. মেচিনৰ প্ৰতিক্ৰিয়া ঠাকভাৱে কন্ফিগাৰ কৰিব পৰা নগ'ল, লিপি ক্ৰুটি %1। - + Could not configure machine feedback correctly, Calamares error %1. মেচিনৰ প্ৰতিক্ৰিয়া ঠাকভাৱে কন্ফিগাৰ কৰিব পৰা নগ'ল, কেলামাৰেচ ক্ৰুটি %1। @@ -3411,8 +3487,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>এইটো বাচনি কৰি, ইনস্তলচেন​ৰ বিষয়ে <span style=" font-weight:600;">মুঠতে একো তথ্য</span> আপুনি নপঠায়।</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">ব্যৱহাৰকাৰীৰ অধিক তথ্য পাবলৈ ইয়াত ক্লিক কৰক</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. - ইনস্তলচেন​ ট্ৰেকিংয়ে %1 কিমান ব্যৱহাৰকাৰী আছে, তেওলোকে কি কি হাৰ্ডৱেৰত %1 ইনস্তল কৰিছে আৰু (তলৰ দুটা বিকল্পৰ লগত), পছন্দৰ এপ্লিকেচনৰ তথ্য নিৰন্তৰভাৱে পোৱাত সহায় কৰে। কি পঠাব জানিবলৈ অনুগ্ৰহ কৰি প্ৰত্যেক ক্ষেত্ৰৰ পিছৰ HELP আইকণত ক্লিক্ কৰক। + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - এইটো বাচনি কৰি আপুনি ইনস্তলচেন​ আৰু হাৰ্ডৱেৰৰ বিষয়ে তথ্য পঠাব। ইনস্তলচেন​ৰ পিছত <b>এই তথ্য এবাৰ পঠোৱা হ'ব</b>। + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - এইটো বাচনি কৰি আপুনি ইনস্তলচেন​, হাৰ্ডৱেৰ আৰু এপ্লিকেচনৰ বিষয়ে <b>সময়ে সময়ে</b> %1লৈ তথ্য পঠাব। + + By selecting this you will periodically send information about your <b>machine</b> 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. - এইটো বাচনি কৰি আপুনি ইনস্তলচেন​, হাৰ্ডৱেৰ, এপ্লিকেচন আৰু ব্যৱহাৰ পেটাৰ্ণৰ বিষয়ে <b>নিয়মিতভাৱে</b> %1লৈ তথ্য পঠাব। + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback প্ৰতিক্ৰিয়া @@ -3629,42 +3705,42 @@ Output: মুক্তি টোকা (&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>%1ৰ কেলামাৰেচ চেত্ আপ প্ৰগ্ৰামলৈ আদৰণি জনাইছো।</h1> - + <h1>Welcome to %1 setup.</h1> <h1> %1 চেত্ আপলৈ আদৰণি জনাইছো।</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>%1ৰ কেলামাৰেচ ইনস্তলাৰলৈ আদৰণি জনাইছো।</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>%1 ইনস্তলাৰলৈ আদৰণি জনাইছো।</h1> - + %1 support %1 সহায় - + About %1 setup %1 চেত্ আপ প্ৰগ্ৰামৰ বিষয়ে - + About %1 installer %1 ইনস্তলাৰৰ বিষয়ে - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3672,7 +3748,7 @@ Output: WelcomeQmlViewStep - + Welcome আদৰণি @@ -3680,7 +3756,7 @@ Output: WelcomeViewStep - + Welcome আদৰণি @@ -3709,6 +3785,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3754,6 +3850,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3805,27 +3919,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ast.ts b/lang/calamares_ast.ts index ec46b67e1..4b17a8a11 100644 --- a/lang/calamares_ast.ts +++ b/lang/calamares_ast.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Configuración - + Install Instalación @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Falló'l trabayu (%1) - + Programmed job failure was explicitly requested. El fallu del trabayu programáu solicitóse esplicitamente. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Fecho @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Trabayu d'exemplu (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Executando'l comandu %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Executando la operación %1. - + Bad working directory path El camín del direutoriu de trabayu ye incorreutu - + Working directory %1 for python job %2 is not readable. El direutoriu de trabayu %1 pal trabayu en Python %2 nun ye lleibe. - + Bad main script file El ficheru del script principal ye incorreutu - + Main script file %1 for python job %2 is not readable. El ficheru del script principal %1 pal trabayu en Python %2 nun ye lleibe. - + Boost.Python error in job "%1". Fallu de Boost.Python nel trabayu «%1». @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Completóse la comprobación de requirimientos del módulu <i>%1</i> + - + Waiting for %n module(s). Esperando por %n módulu @@ -236,7 +241,7 @@ - + (%n second(s)) (%n segundu) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Completóse la comprobación de los requirimientos del sistema. @@ -273,13 +278,13 @@ - + &Yes &Sí - + &No &Non @@ -314,109 +319,109 @@ <br/>Nun pudieron cargase los módulos de darréu: - + Continue with setup? ¿Siguir cola instalación? - + Continue with installation? ¿Siguir cola instalación? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> El programa d'instalación de %1 ta a piques de facer cambeos nel discu pa configurar %2.<br/><strong>Nun vas ser a desfacer estos cambeos.<strong> - + 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> L'instalador de %1 ta a piques de facer cambeos nel discu pa instalar %2.<br/><strong>Nun vas ser a desfacer esos cambeos.</strong> - + &Set up now &Configurar agora - + &Install now &Instalar agora - + Go &back Dir p'&atrás - + &Set up &Configurar - + &Install &Instalar - + Setup is complete. Close the setup program. Completóse la configuración. Zarra'l programa de configuración. - + The installation is complete. Close the installer. Completóse la instalación. Zarra l'instalador. - + Cancel setup without changing the system. Encaboxa la configuración ensin camudar el sistema. - + Cancel installation without changing the system. Encaboxa la instalación ensin camudar el sistema. - + &Next &Siguiente - + &Back &Atrás - + &Done &Fecho - + &Cancel &Encaboxar - + Cancel setup? ¿Encaboxar la configuración? - + Cancel installation? ¿Encaboxar la instalación? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. ¿De xuru que quies encaboxar el procesu actual de configuración? El programa de configuración va colar y van perdese tolos cambeos. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. ¿De xuru que quies encaboxar el procesu actual d'instalación? @@ -426,22 +431,22 @@ L'instalador va colar y van perdese tolos cambeos. CalamaresPython::Helper - + Unknown exception type Desconozse la triba de la esceición - + unparseable Python error Fallu de Python que nun pue analizase - + unparseable Python traceback Traza inversa de Python que nun pue analizase - + Unfetchable Python error. Fallu de Python al que nun pue dise en cata. @@ -458,32 +463,32 @@ L'instalador va colar y van perdese tolos cambeos. CalamaresWindow - + Show debug information Amosar la depuración - + &Back &Atrás - + &Next &Siguiente - + &Cancel &Encaboxar - + %1 Setup Program Programa de configuración de %1 - + %1 Installer Instalador de %1 @@ -680,18 +685,18 @@ L'instalador va colar y van perdese tolos cambeos. CommandList - - + + Could not run command. Nun pudo executase'l comandu. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. El comandu execútase nel entornu del agospiu y precisa saber el camín raigañu pero nun se definió en rootMountPoint. - + The command needs to know the user's name, but no username is defined. El comandu precisa saber el nome del usuariu, pero nun se definió nengún. @@ -744,49 +749,49 @@ L'instalador va colar y van perdese tolos cambeos. Instalación per rede. (Desactivada: Nun pue dise en cata de les llistes de paquetes, comprueba la conexón a internet) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Esti ordenador nun satisfaz dalgún de los requirimientos mínimos pa configurar %1.<br/>La configuración nun pue siguir. <a href="#details">Detalles...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Esti ordenador nun satisfaz los requirimientos mínimos pa instalar %1.<br/>La instalación nun pue siguir. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Esti ordenador nun satisfaz dalgún de los requirimientos aconseyaos pa configurar %1.<br/>La configuración pue siguir pero dalgunes carauterístiques podríen desactivase. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Esti ordenador nun satisfaz dalgún requirimientu aconseyáu pa instalar %1.<br/>La instalación pue siguir pero podríen desactivase dalgunes carauterístiques. - + This program will ask you some questions and set up %2 on your computer. Esti programa va facete dalgunes entrugues y va configurar %2 nel ordenador. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Afáyate nel programa de configuración de Calamares pa %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Afáyate na configuración de %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Afáyate nel instalador Calamares de %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Afáyate nel instalador de %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1223,37 +1228,37 @@ L'instalador va colar y van perdese tolos cambeos. FillGlobalStorageJob - + Set partition information Afitamientu de la información de les particiones - + Install %1 on <strong>new</strong> %2 system partition. Va instalase %1 na partición %2 <strong>nueva</strong> del sistema. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Va configurase una partición %2 <strong>nueva</strong> col puntu de montaxe <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Va instalase %2 na partición %3 del sistema de <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Va configurase la partición %3 de <strong>%1</strong> col puntu de montaxe <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Va instalase'l xestor d'arrinque en <strong>%1</strong>. - + Setting up mount points. Configurando los puntos de montaxe. @@ -1271,32 +1276,32 @@ L'instalador va colar y van perdese tolos cambeos. &Reaniciar agora - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Too fecho.</h1><br/>%1 configuróse nel ordenador.<br/>Agora pues usar el sistema nuevu. - + <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 setup program.</p></body></html> <html><head/><body><p>Cuando se conseña esti caxellu, el sistema va reaniciase nel intre cuando calques en <span style="font-style:italic;">Fecho</span> o zarres el programa de configuración.</p></body></html> - + <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>Too fecho.</h1><br/>%1 instalóse nel ordenador.<br/>Agora pues renaiciar nel sistema nuevu o siguir usando l'entornu live de %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Cuando se conseña esti caxellu, el sistema va reaniciase nel intre cuando calques en <span style="font-style:italic;">Fecho</span> o zarres l'instalador.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Falló la configuración</h1><br/>%1 nun se configuró nel ordenador.<br/>El mensaxe de fallu foi: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Falló la instalación</h1><br/>%1 nun s'instaló nel ordenador.<br/>El mensaxe de fallu foi: %2. @@ -1304,27 +1309,27 @@ L'instalador va colar y van perdese tolos cambeos. FinishedViewStep - + Finish Fin - + Setup Complete Configuración completada - + Installation Complete Instalación completada - + The setup of %1 is complete. La configuración de %1 ta completada. - + The installation of %1 is complete. Completóse la instalación de %1. @@ -1355,72 +1360,72 @@ L'instalador va colar y van perdese tolos cambeos. GeneralRequirements - + has at least %1 GiB available drive space tien polo menos %1 GiB d'espaciu disponible nel discu - + There is not enough drive space. At least %1 GiB is required. Nun hai espaciu abondu nel discu. Ríquense polo menos %1 GiB. - + has at least %1 GiB working memory tien polo menos %1 GiB memoria de trabayu - + The system does not have enough working memory. At least %1 GiB is required. El sistema nun tien abonda memoria de trabayu. Ríquense polo menos %1 GiB. - + is plugged in to a power source ta enchufáu a una fonte d'enerxía - + The system is not plugged in to a power source. El sistema nun ta enchufáu a una fonte d'enerxía. - + is connected to the Internet ta coneutáu a internet - + The system is not connected to the Internet. El sistema nun ta coneutáu a internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. El programa de configuración nun ta executándose con drechos alministrativos. - + The installer is not running with administrator rights. L'instalador nun ta executándose con drechos alministrativos. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. La pantalla ye mui pequeña como p'amosar el programa de configuración. - + The screen is too small to display the installer. La pantalla ye mui pequeña como p'amosar l'instalador. @@ -1768,6 +1773,16 @@ L'instalador va colar y van perdese tolos cambeos. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ L'instalador va colar y van perdese tolos cambeos. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ L'instalador va colar y van perdese tolos cambeos. Particiones - + Install %1 <strong>alongside</strong> another operating system. Va instalase %1 <strong>xunto a</strong> otru sistema operativu. - + <strong>Erase</strong> disk and install %1. <strong>Va desaniciase</strong>'l discu y va instalase %1. - + <strong>Replace</strong> a partition with %1. <strong>Va trocase</strong> una partición con %1. - + <strong>Manual</strong> partitioning. Particionáu <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Va instalase %1 <strong>xunto a</strong> otru sistema operativu nel discu <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Va desaniciase</strong>'l discu <strong>%2</strong> (%3) y va instalase %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Va trocase</strong> una partición nel discu <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionáu <strong>manual</strong> nel discu <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Discu <strong>%1</strong> (%2) - + Current: Anguaño: - + After: Dempués: - + No EFI system partition configured Nun se configuró nenguna partición del sistema EFI - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Nun s'afitó la bandera del sistema EFI - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted La partición d'arrinque nun ta cifrada - + 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. Configuróse una partición d'arrinque xunto con una partición raigañu cifrada pero la partición d'arrinque nun ta cifrada.<br/><br/>Hai problemes de seguranza con esta triba de configuración porque los ficheros importantes del sistema caltiénense nuna partición ensin cifrar.<br/>Podríes siguir si quixeres pero'l desbloquéu del sistema de ficheros va asoceder más sero nel aniciu del sistema.<br/>Pa cifrar la partición raigañu, volvi p'atrás y recreala esbillando <strong>Cifrar</strong> na ventana de creación de particiones. - + has at least one disk device available. tien polo menos un preséu disponible d'almacenamientu - + There are no partitions to install on. Nun hai particiones nes qu'instalar. @@ -2659,14 +2687,14 @@ L'instalador va colar y van perdese tolos cambeos. ProcessResult - + There was no output from the command. El comandu nun produxo nenguna salida. - + Output: @@ -2675,52 +2703,52 @@ Salida: - + External command crashed. El comandu esternu cascó. - + Command <i>%1</i> crashed. El comandu <i>%1</i> cascó. - + External command failed to start. El comandu esternu falló al aniciar. - + Command <i>%1</i> failed to start. El comandu <i>%1</i> falló al aniciar. - + Internal error when starting command. Fallu internu al aniciar el comandu. - + Bad parameters for process job call. Los parámetros son incorreutos pa la llamada del trabayu de procesos. - + External command failed to finish. El comandu esternu finó al finar. - + Command <i>%1</i> failed to finish in %2 seconds. El comandu <i>%1</i> falló al finar en %2 segundos. - + External command finished with errors. El comandu esternu finó con fallos. - + Command <i>%1</i> finished with exit code %2. El comandu <i>%1</i> finó col códigu de salida %2. @@ -2728,32 +2756,27 @@ Salida: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Completóse la comprobación de requirimientos del módulu <i>%1</i> - - - + unknown desconozse - + extended estendida - + unformatted ensin formatiar - + swap intercambéu @@ -2807,6 +2830,15 @@ Salida: L'espaciu nun ta particionáu o nun se conoz la tabla de particiones + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2842,73 +2874,88 @@ Salida: Formulariu - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Esbilla ónde instalar %1.<br/><font color="red">Alvertencia:</font> esto va desaniciar tolos ficheros de la partición esbillada. - + The selected item does not appear to be a valid partition. L'elementu esbilláu nun paez ser una partición válida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 nun pue instalase nel espaciu baleru. Esbilla una partición esistente, por favor. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 nun pue instalase nuna partición estendida. Esbilla una partición primaria o llóxica esistente, por favor. - + %1 cannot be installed on this partition. %1 nun pue instalase nesta partición. - + Data partition (%1) Partición de datos (%1) - + Unknown system partition (%1) Desconozse la partición del sistema (%1) - + %1 system partition (%2) Partición %1 del sistema (%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>%4</strong><br/><br/>La partición %1 ye perpequeña pa %2. Esbilla una con una capacidá de polo menos %3GB. - + <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>%2</strong><br/><br/>Nun pudo alcontrase per nenyures una partición del sistema EFI. Volvi p'atrás y usa'l particionáu manual pa configurar %1, por favor. - - - + + + <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 va instalase en %2.<br/><font color="red">Alvertencia: </font>van perdese tolos datos de la partición %2. - + The EFI system partition at %1 will be used for starting %2. La partición del sistema EFI en %1 va usase p'aniciar %2. - + EFI system partition: Partición del sistema EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3031,12 +3078,12 @@ Salida: ResultsListDialog - + For best results, please ensure that this computer: Pa los meyores resultaos, asegúrate qu'esti ordenador: - + System requirements Requirimientos del sistema @@ -3044,27 +3091,27 @@ Salida: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Esti ordenador nun satisfaz dalgún de los requirimientos mínimos pa configurar %1.<br/>La configuración nun pue siguir. <a href="#details">Detalles...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Esti ordenador nun satisfaz los requirimientos mínimos pa instalar %1.<br/>La instalación nun pue siguir. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Esti ordenador nun satisfaz dalgún de los requirimientos aconseyaos pa configurar %1.<br/>La configuración pue siguir pero dalgunes carauterístiques podríen desactivase. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Esti ordenador nun satisfaz dalgún requirimientu aconseyáu pa instalar %1.<br/>La instalación pue siguir pero podríen desactivase dalgunes carauterístiques. - + This program will ask you some questions and set up %2 on your computer. Esti programa va facete dalgunes entrugues y va configurar %2 nel ordenador. @@ -3347,51 +3394,80 @@ Salida: TrackingInstallJob - + Installation feedback Instalación del siguimientu - + Sending installation feedback. Unviando'l siguimientu de la instalación. - + Internal error in install-tracking. Fallu internu n'install-tracking. - + HTTP request timed out. Escosó'l tiempu d'espera de la solicitú HTTP. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Siguimientu de la máquina - + Configuring machine feedback. Configurando'l siguimientu de la máquina. - - + + Error in machine feedback configuration. Fallu na configuración del siguimientu de la máquina. - + Could not configure machine feedback correctly, script error %1. Nun pudo configurase afayadizamente'l siguimientu de la máquina, fallu del script %1. - + Could not configure machine feedback correctly, Calamares error %1. Nun pudo configurase afayadizamente'l siguimientu de la máquina, fallu de Calamares %1. @@ -3410,8 +3486,8 @@ Salida: - <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>Esbillando esto, <span style=" font-weight:600;">nun vas unviar nenguna información</span> tocante a la instalación.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3419,30 +3495,30 @@ Salida: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Calca equí pa más información tocante al siguimientu d'usuarios</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. - Instalar el rastrexu ayuda a %1 a saber cuantos usuarios tien, el hardware qu'usen pa instalar %1 y (coles dos opciones d'embaxo), consiguir información continua tocante a les aplicaciones preferíes. Pa ver lo que va unviase, calca l'iconu d'ayuda al llau de cada área. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Esbillando esto vas unviar la información tocante a la instalación y el hardware. Esta información <b>namás va unviase una vegada</b> tres finar la instalación. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Esbillando esto vas unviar <b>dacuando</b> la información tocante a la instalación, el hardware y les aplicaciones a %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Esbillando esto vas unviar <b>davezu</b> la información tocante a la instalación, el hardware, les aplicaciones y los patrones d'usu a %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Siguimientu @@ -3628,42 +3704,42 @@ Salida: Notes de &llanzamientu - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Afáyate nel programa de configuración de Calamares pa %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Afáyate na configuración de %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Afáyate nel instalador Calamares de %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Afáyate nel instalador de %1.</h1> - + %1 support Sofitu de %1 - + About %1 setup Tocante a la configuración de %1 - + About %1 installer Tocante al instalador de %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3671,7 +3747,7 @@ Salida: WelcomeQmlViewStep - + Welcome Acoyida @@ -3679,7 +3755,7 @@ Salida: WelcomeViewStep - + Welcome Acoyida @@ -3708,6 +3784,26 @@ Salida: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3753,6 +3849,24 @@ Salida: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3804,27 +3918,27 @@ Salida: - + About - + Support - + Known issues Problemes conocíos - + Release notes Notes del llanzamientu - + Donate diff --git a/lang/calamares_az.ts b/lang/calamares_az.ts index fc250af64..c4ab24305 100644 --- a/lang/calamares_az.ts +++ b/lang/calamares_az.ts @@ -6,17 +6,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + Bu sistemin <strong>açılış mühiti</strong>.<br><br>Köhnə x86 sistemlər yalnız <strong>BIOS</strong> dəstəkləyir.<br>Müasir sistemlər isə adətən <strong>EFI</strong> istifadə edir, lakin açılış mühiti əgər uyğun rejimdə başladılmışsa, həmçinin BİOS istiafadə edə bilər. 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. - + Bu sistem <strong>EFI</strong> açılış mühiti ilə başladılıb.<br><br>EFİ ilə başlamanı ayarlamaq üçün quraşdırıcı <strong>EFI Sistemi Bölməsi</strong> üzərində <strong>GRUB</strong> və ya <strong>systemd-boot</strong> kimi yükləyici istifadə etməlidir. Bunlar avtomatik olaraq seçilə bilir, lakin istədiyiniz halda diskdə bu bölmələri özünüz əl ilə seçərək bölə bilərsiniz. 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. - + Bu sistem <strong>BIOS</strong> açılış mühiti ilə başladılıb.<br><br>BIOS açılış mühitini ayarlamaq üçün quraşdırıcı bölmənin başlanğıcına və ya<strong>Master Boot Record</strong> üzərində <strong>GRUB</strong> və ya <strong>systemd-boot</strong> kimi yükləyici istifadə etməlidir. Əgər bunun avtomatik olaraq qurulmasını istəmirsinizsə özünüz əl ilə bölmələr yarada bilərsiniz. @@ -24,27 +24,27 @@ Master Boot Record of %1 - + %1 Əsas ön yükləyici qurmaq Boot Partition - + Ön yükləyici bölməsi System Partition - + Sistem bölməsi Do not install a boot loader - + Ön yükləyicini qurmamaq %1 (%2) - + %1 (%2) @@ -52,7 +52,7 @@ Blank Page - + Boş Səhifə @@ -60,151 +60,151 @@ Form - + Format GlobalStorage - + Ümumi yaddaş JobQueue - + Tapşırıq sırası Modules - + Modullar Type: - + Növ: none - + heç biri Interface: - + İnterfeys: Tools - + Alətlər Reload Stylesheet - + Üslub cədvəlini yenidən yükləmək Widget Tree - + Vidjetlər ağacı Debug information - + Sazlama məlumatları Calamares::ExecutionViewStep - + Set up - + Ayarlamaq - + Install - + Quraşdırmaq Calamares::FailJob - + Job failed (%1) - + Tapşırığı yerinə yetirmək mümkün olmadı (%1) - + Programmed job failure was explicitly requested. - + Proqramın işi, istifadəçi tərəfindən dayandırıldı. Calamares::JobThread - + Done - + Quraşdırılma başa çatdı Calamares::NamedJob - + Example job (%1) - + Tapşırıq nümunəsi (%1) Calamares::ProcessJob - + Run command '%1' in target system. - + '%1' əmrini hədəf sistemdə başlatmaq. - + Run command '%1'. - + '%1' əmrini başlatmaq. - + Running command %1 %2 - + %1 əmri icra olunur %2 Calamares::PythonJob - + Running %1 operation. - + %1 əməliyyatı icra olunur. - + Bad working directory path - + İş qovluğuna səhv yol - + Working directory %1 for python job %2 is not readable. - + %1 qovluğu %2 python işləri üçün açıla bilmir. - + Bad main script file - + Korlanmış əsas əmrlər faylı - + Main script file %1 for python job %2 is not readable. - + %1 Əsas əmrlər faylı %2 python işləri üçün açıla bilmir. - + Boost.Python error in job "%1". - + Boost.Python iş xətası "%1". @@ -212,41 +212,46 @@ Loading ... - + Yüklənir... QML Step <i>%1</i>. - + QML addımı <i>%1</i>. Loading failed. - + Yüklənmə alınmadı. Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + <i>%1</i>üçün tələblərin yoxlanılması başa çatdı. + - + Waiting for %n module(s). - - - + + %n modul üçün gözləmə. + %n modul(lar) üçün gözləmə. - + (%n second(s)) - - - + + (%n saniyə(lər)) + (%n saniyə(lər)) - + System-requirements checking is complete. - + Sistem uyğunluqları yoxlaması başa çatdı. @@ -254,194 +259,196 @@ Setup Failed - + Quraşdırılma xətası Installation Failed - + Quraşdırılma alınmadı Would you like to paste the install log to the web? - + Quraşdırma jurnalını vebdə yerləşdirmək istəyirsinizmi? Error - + Xəta - + &Yes - + &Bəli - + &No - + &Xeyr &Close - + &Bağlamaq Install Log Paste URL - + Jurnal yerləşdirmə URL-nu daxil etmək The upload was unsuccessful. No web-paste was done. - + Yükləmə uğursuz oldu. Heç nə vebdə daxil edilmədi. Calamares Initialization Failed - + Calamares işə salına bilmədi %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 quraşdırılmadı. Calamares konfiqurasiya edilmiş modulların hamısını yükləyə bilmədi. Bu Calamares'i sizin distribütör tərəfindən necə istifadə edilməsindən asılı olan bir problemdir. <br/>The following modules could not be loaded: - + <br/>Yüklənə bilməyən modullar aşağıdakılardır: - + Continue with setup? - + Quraşdırılma davam etdirilsin? - + Continue with installation? - + Quraşdırılma davam etdirilsin? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + %1 quraşdırıcı proqramı %2 quraşdırmaq üçün Sizin diskdə dəyişiklik etməyə hazırdır.<br/><strong>Bu dəyişikliyi ləğv etmək mümkün olmayacaq.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + %1 quraşdırıcı proqramı %2 quraşdırmaq üçün Sizin diskdə dəyişiklik etməyə hazırdır.<br/><strong>Bu dəyişikliyi ləğv etmək mümkün olmayacaq.</strong> - + &Set up now - + &İndi ayarlamaq - + &Install now - + Q&uraşdırmağa başlamaq - + Go &back - + &Geriyə - + &Set up - + A&yarlamaq - + &Install - + Qu&raşdırmaq - + Setup is complete. Close the setup program. - + Quraşdırma başa çatdı. Quraşdırma proqramını bağlayın. - + The installation is complete. Close the installer. - + Quraşdırma başa çatdı. Quraşdırıcını bağlayın. - + Cancel setup without changing the system. - + Sistemi dəyişdirmədən quraşdırmanı ləğv etmək. - + Cancel installation without changing the system. - + Sistemə dəyişiklik etmədən quraşdırmadan imtina etmək. - + &Next - + İ&rəli - + &Back - + &Geriyə - + &Done - + &Hazır - + &Cancel - + İm&tina etmək - + Cancel setup? - + Quraşdırılmadan imtina edilsin? - + Cancel installation? - + Yüklənmədən imtina edilsin? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Siz doğrudanmı hazırkı quraşdırmadan imtina etmək istəyirsiniz? +Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + Siz doğrudanmı hazırkı yüklənmədən imtina etmək istəyirsiniz? +Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. CalamaresPython::Helper - + Unknown exception type - + Naməlum istisna halı - + unparseable Python error - + görünməmiş python xətası - + unparseable Python traceback - + görünməmiş python izi - + Unfetchable Python error. - + Oxunmayan python xətası. @@ -450,40 +457,41 @@ The installer will quit and all changes will be lost. Install log posted to: %1 - + Quraşdırma jurnalı göndərmə ünvanı: +%1 CalamaresWindow - + Show debug information - + Sazlama məlumatlarını göstərmək - + &Back - + &Geriyə - + &Next - + İ&rəli - + &Cancel - + &İmtina etmək - + %1 Setup Program - + %1 Quraşdırıcı proqram - + %1 Installer - + %1 Quraşdırıcı @@ -491,7 +499,7 @@ The installer will quit and all changes will be lost. Gathering system information... - + Sistem məlumatları toplanır ... @@ -499,12 +507,12 @@ The installer will quit and all changes will be lost. Form - + Format Select storage de&vice: - + Yaddaş ci&hazını seçmək: @@ -512,62 +520,62 @@ The installer will quit and all changes will be lost. Current: - + Cari: After: - + Sonra: <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - + <strong>Əli ilə bölmək</strong><br/>Siz disk sahəsini özünüz bölə və ölçülərini təyin edə bilərsiniz. GPT disk bölmələri cədvəli və <strong>fat32 512Mb /boot bölməsi UEFI sistemi üçün vacibdir.</strong>ya da mövcud bir bölmə varsa onu istifadə edin, və ya başqa birini yaradın. Reuse %1 as home partition for %2. - + %1 Ev bölməsi olaraq %2 üçün istifadə edilsin. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - + <strong>Kiçiltmək üçün bir bölmə seçərək altdakı çübüğü sürüşdürərək ölçüsünü verin</strong> %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. - + %1 %2MB-a qədər azalacaq və %4 üçün yeni bölmə %3MB disk bölməsi yaradılacaq. Boot loader location: - + Ön yükləyici (boot) yeri: <strong>Select a partition to install on</strong> - + <strong>Quraşdırılacaq disk bölməsini seçin</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + EFI sistem bölməsi tapılmadı. Geriyə qayıdın və %1 bölməsini əllə yaradın. The EFI system partition at %1 will be used for starting %2. - + %1 EFI sistemi %2 başlatmaq üçün istifadə olunacaqdır. EFI system partition: - + EFI sistem bölməsi: 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. - + Bu cihazıda əməliyyat sistemi görünmür. Nə etmək istəyərdiniz?<br/>Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. @@ -575,7 +583,7 @@ The installer will quit and all changes will be lost. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>Diski təmizləmək</strong><br/> <font color="red">Silmək</font> hal-hazırda seçilmiş diskdəki bütün verilənləri siləcəkdir. @@ -583,7 +591,7 @@ The installer will quit and all changes will be lost. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>Yanına quraşdırın</strong><br/>Quraşdırıcı, bölməni kiçildərək %1 üçün boş disk sahəsi yaradacaqdır. @@ -591,47 +599,47 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>Bölməni başqası ilə əvəzləmək</strong><br/>Bölməni %1 ilə əvəzləyir. 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. - + Bu cihazda %1 var. Nə etmək istəyirsiniz?<br/>Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. 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. - + Bu cihazda artıq bir əməliyyat sistemi var. Nə etmək istərdiniz?.<br/>Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. 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. - + Bu cihazda bir neçə əməliyyat sistemi mövcuddur. Nə etmək istərdiniz? Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. No Swap - + Mübadilə bölməsi olmadan Reuse Swap - + Mövcud mübadilə bölməsini istifadə etmək Swap (no Hibernate) - + Mübadilə bölməsi (yuxu rejimi olmadan) Swap (with Hibernate) - + Mübadilə bölməsi (yuxu rejimi ilə) Swap to file - + Mübadilə faylı @@ -639,17 +647,17 @@ The installer will quit and all changes will be lost. Clear mounts for partitioning operations on %1 - + %1-də bölmə əməliyyatı üçün qoşulma nöqtələrini silmək Clearing mounts for partitioning operations on %1. - + %1-də bölmə əməliyyatı üçün qoşulma nöqtələrini silinir. Cleared all mounts for %1 - + %1 üçün bütün qoşulma nöqtələri silindi @@ -657,41 +665,41 @@ The installer will quit and all changes will be lost. Clear all temporary mounts. - + Bütün müvəqqəti qoşulma nöqtələrini ləğv etmək. Clearing all temporary mounts. - + Bütün müvəqqəti qoşulma nöqtələri ləğv edilir. Cannot get list of temporary mounts. - + Müvəqqəti qoşulma nöqtələrinin siyahısı alına bilmədi. Cleared all temporary mounts. - + Bütün müvəqqəti qoşulma nöqtələri ləğv edildi. CommandList - - + + Could not run command. - + Əmri ictra etmək mümkün olmadı. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Əmr quraşdırı mühitində icra olunur və kök qovluğa yolu bilinməlidir, lakin rootMountPoint aşkar edilmədi. - + The command needs to know the user's name, but no username is defined. - + Əmr üçün istifadəçi adı vacibdir., lakin istifadəçi adı müəyyən edilmədi. @@ -699,92 +707,92 @@ The installer will quit and all changes will be lost. Set keyboard model to %1.<br/> - + Klaviatura modelini %1 olaraq təyin etmək.<br/> Set keyboard layout to %1/%2. - + Klaviatura qatını %1/%2 olaraq təyin etmək. The system language will be set to %1. - + Sistem dili %1 təyin ediləcək. The numbers and dates locale will be set to %1. - + Yerli say və tarix formatı %1 təyin olunacaq. Set timezone to %1/%2.<br/> - + Saat Qurşağını %1/%2 təyin etmək.<br/> Network Installation. (Disabled: Incorrect configuration) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: Səhv tənzimlənmə) Network Installation. (Disabled: Received invalid groups data) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: qruplar haqqında səhv məlumatlar alındı) Network Installation. (Disabled: internal error) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: Daxili xəta) Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: paket siyahıları qəbul edilmir, şəbəkə bağlantınızı yoxlayın) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This program will ask you some questions and set up %2 on your computer. - + Bu proqram sizə bəi suallar verəcək və %2 sizin komputerinizə qurmağa kömək edəcək. - - <h1>Welcome to the Calamares setup program for %1.</h1> - + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>%1 üçün Calamares quraşdırma proqramına xoş gəldiniz!</h1> - - <h1>Welcome to %1 setup.</h1> - + + <h1>Welcome to %1 setup</h1> + <h1>%1 quraşdırmaq üçün xoş gəldiniz</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>%1 üçün Calamares quraşdırıcısına xoş gəldiniz!</h1> - - <h1>Welcome to the %1 installer.</h1> - + + <h1>Welcome to the %1 installer</h1> + <h1>%1 quraşdırıcısına xoş gəldiniz</h1> @@ -792,7 +800,7 @@ The installer will quit and all changes will be lost. Contextual Processes Job - + Şəraitə bağlı proseslərlə iş @@ -800,77 +808,77 @@ The installer will quit and all changes will be lost. Create a Partition - + Bölmə yaratmaq Si&ze: - + Ö&lçüsü: MiB - + MB Partition &Type: - + Bölmənin &növləri: &Primary - + &Əsas E&xtended - + &Genişləndirilmiş Fi&le System: - + Fay&l Sistemi: LVM LV name - + LVM LV adı &Mount Point: - + Qoşul&ma Nöqtəsi: Flags: - + Bayraqlar: En&crypt - + &Şifrələmək Logical - + Məntiqi Primary - + Əsas GPT - + GPT Mountpoint already in use. Please select another one. - + Qoşulma nöqtəsi artıq istifadə olunur. Lütfən başqasını seçin. @@ -878,22 +886,22 @@ The installer will quit and all changes will be lost. Create new %2MiB partition on %4 (%3) with file system %1. - + %1 fayl sistemi ilə %4 (%3)-də yeni %2MB bölmə yaratmaq. Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - + <strong>%1</strong> fayl sistemi ilə <strong>%4</strong> (%3)-də yeni <strong>%2MB</strong> bölmə yaratmaq. Creating new %1 partition on %2. - + %2-də yeni %1 bölmə yaratmaq. The installer failed to create partition on disk '%1'. - + Quraşdırıcı '%1' diskində bölmə yarada bilmədi. @@ -901,27 +909,27 @@ The installer will quit and all changes will be lost. Create Partition Table - + Bölmələr Cədvəli yaratmaq Creating a new partition table will delete all existing data on the disk. - + Bölmələr Cədvəli yaratmaq bütün diskdə olan məlumatların hamısını siləcək. What kind of partition table do you want to create? - + Hansı Bölmə Cədvəli yaratmaq istəyirsiniz? Master Boot Record (MBR) - + Ön yükləmə Bölməsi (MBR) GUID Partition Table (GPT) - + GUID bölmələr cədvəli (GPT) @@ -929,22 +937,22 @@ The installer will quit and all changes will be lost. Create new %1 partition table on %2. - + %2-də yeni %1 bölmələr cədvəli yaratmaq. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - + <strong>%2</strong> (%3)`də yeni <strong>%1</strong> bölmələr cədvəli yaratmaq. Creating new %1 partition table on %2. - + %2-də yeni %1 bölməsi yaratmaq. The installer failed to create a partition table on %1. - + Quraşdırıcı %1-də bölmələr cədvəli yarada bilmədi. @@ -952,37 +960,37 @@ The installer will quit and all changes will be lost. Create user %1 - + %1 İstifadəçi hesabı yaratmaq Create user <strong>%1</strong>. - + <strong>%1</strong> istifadəçi hesabı yaratmaq. Creating user %1. - + %1 istifadəçi hesabı yaradılır. Sudoers dir is not writable. - + Sudoers qovluğu yazıla bilən deyil. Cannot create sudoers file for writing. - + Sudoers faylını yazmaq mümkün olmadı. Cannot chmod sudoers file. - + Sudoers faylına chmod tətbiq etmək mümkün olmadı. Cannot open groups file for reading. - + Groups faylını oxumaq üçün açmaq mümkün olmadı. @@ -990,7 +998,7 @@ The installer will quit and all changes will be lost. Create Volume Group - + Tutumlar qrupu yaratmaq @@ -998,22 +1006,22 @@ The installer will quit and all changes will be lost. Create new volume group named %1. - + %1 adlı yeni tutumlar qrupu yaratmaq. Create new volume group named <strong>%1</strong>. - + <strong>%1</strong> adlı yeni tutumlar qrupu yaratmaq. Creating new volume group named %1. - + %1 adlı yeni tutumlar qrupu yaradılır. The installer failed to create a volume group named '%1'. - + Quraşdırıcı '%1' adlı tutumlar qrupu yarada bilmədi. @@ -1022,17 +1030,17 @@ The installer will quit and all changes will be lost. Deactivate volume group named %1. - + %1 adlı tutumlar qrupu qeyri-aktiv edildi. Deactivate volume group named <strong>%1</strong>. - + <strong>%1</strong> adlı tutumlar qrupunu qeyri-aktiv etmək. The installer failed to deactivate a volume group named %1. - + Quraşdırıcı %1 adlı tutumlar qrupunu qeyri-aktiv edə bilmədi. @@ -1040,22 +1048,22 @@ The installer will quit and all changes will be lost. Delete partition %1. - + %1 bölməsini silmək. Delete partition <strong>%1</strong>. - + <strong>%1</strong> bölməsini silmək. Deleting partition %1. - + %1 bölməsinin silinməsi. The installer failed to delete partition %1. - + Quraşdırıcı %1 bölməsini silə bilmədi. @@ -1063,32 +1071,32 @@ The installer will quit and all changes will be lost. This device has a <strong>%1</strong> partition table. - + Bu cihazda <strong>%1</strong> bölmələr cədvəli var. 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. - + Bu <strong>loop</strong> cihazıdır.<br><br> Bu bölmələr cədvəli olmayan saxta cihaz olub, adi faylları blok cihazı kimi istifadə etməyə imkan yaradır. Bu cür qoşulma adətən yalnız tək fayl sisteminə malik olur. 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. - + Bu quraşdırıcı seçilmiş qurğuda <strong>bölmələr cədvəli aşkar edə bilmədi</strong>.<br><br>Bu cihazda ya bölmələr cədvəli yoxdur, ya bölmələr cədvəli korlanıb, ya da növü naməlumdur.<br>Bu quraşdırıcı bölmələr cədvəlini avtomatik, ya da əllə bölmək səhifəsi vasitəsi ilə yarada bilər. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br>Bu <strong>EFI</strong> ön yükləyici mühiti istifadə edən müasir sistemlər üçün məsləhət görülən bölmələr cədvəli növüdür. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>Bu, <strong>BIOS</strong> ön yükləyici mühiti istifadə edən köhnə sistemlər üçün bölmələr cədvəlidir. Əksər hallarda bunun əvəzinə GPT istifadə etmək daha yaxşıdır. Diqqət:</strong>MBR, köhnəlmiş MS-DOS standartında bölmələr cədvəlidir. <br>Sadəcə 4 <em>ilkin</em> bölüm yaratmağa imkan verir və 4-dən çox bölmədən yalnız biri <em>extended</em> genişləndirilmiş ola bilər, və beləliklə daha çox <em>məntiqi</em> bölmələr yaradıla bilər. 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. - + Seçilmiş cihazda<strong>bölmələr cədvəli</strong> növü.<br><br>Bölmələr cədvəli növünü dəyişdirməyin yeganə yolu, bölmələr cədvəlini sıfırdan silmək və yenidən qurmaqdır, bu da saxlama cihazındakı bütün məlumatları məhv edir.<br>Quraşdırıcı siz başqa bir seçim edənədək bölmələr cədvəlinin cari vəziyyətini saxlayacaqdır.<br>Müasir sistemlər standart olaraq GPT bölümünü istifadə edir. @@ -1097,13 +1105,13 @@ The installer will quit and all changes will be lost. %1 - %2 (%3) device[name] - size[number] (device-node[name]) - + %1 - %2 (%3) %1 - (%2) device[name] - (device-node[name]) - + %1 - (%2) @@ -1111,17 +1119,17 @@ The installer will quit and all changes will be lost. Write LUKS configuration for Dracut to %1 - + %1 -də Dracut üçün LUKS tənzimləməlirini yazmaq Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - + Dracut üçün LUKS tənzimləmələrini yazmağı ötürmək: "/" bölməsi şifrələnmədi Failed to open %1 - + %1 açılmadı @@ -1129,7 +1137,7 @@ The installer will quit and all changes will be lost. Dummy C++ Job - + Dummy C++ Job @@ -1137,57 +1145,57 @@ The installer will quit and all changes will be lost. Edit Existing Partition - + Mövcud bölməyə düzəliş etmək Content: - + Tərkib: &Keep - + &Saxlamaq Format - + Formatlamaq Warning: Formatting the partition will erase all existing data. - + Diqqət: Bölmənin formatlanması ondakı bütün mövcud məlumatları silir. &Mount Point: - + Qoşil&ma nöqtəsi: Si&ze: - + Ol&çü: MiB - + MB Fi&le System: - + Fay&l sistemi: Flags: - + Bayraqlar: Mountpoint already in use. Please select another one. - + Qoşulma nöqtəsi artıq istifadə olunur. Lütfən başqasını seçin. @@ -1195,65 +1203,65 @@ The installer will quit and all changes will be lost. Form - + Forma En&crypt system - + &Şifrələmə sistemi Passphrase - + Şifrə Confirm passphrase - + Şifrəni təsdiq edin Please enter the same passphrase in both boxes. - + Lütfən hər iki sahəyə eyni şifrəni daxil edin. FillGlobalStorageJob - + Set partition information - + Bölmə məlumatlarını ayarlamaq - + Install %1 on <strong>new</strong> %2 system partition. - + %2 <strong>yeni</strong> sistem diskinə %1 quraşdırmaq. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - + %2 <strong>yeni</strong> bölməsini <strong>%1</strong> qoşulma nöqtəsi ilə ayarlamaq. - + Install %2 on %3 system partition <strong>%1</strong>. - + %3dəki <strong>%1</strong> sistem bölməsinə %2 quraşdırmaq. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - + %3 bölməsinə <strong>%1</strong> ilə <strong>%2</strong> qoşulma nöqtəsi ayarlamaq. - + Install boot loader on <strong>%1</strong>. - + Ön yükləyicini <strong>%1</strong>də quraşdırmaq. - + Setting up mount points. - + Qoşulma nöqtəsini ayarlamaq. @@ -1261,70 +1269,70 @@ The installer will quit and all changes will be lost. Form - + Formatlamaq &Restart now - + &Yenidən başlatmaq - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <h1>Hər şey hazırdır.</h1><br/>%1 sizin kopyuterə qurulacaqdır.<br/>Siz indi yeni sisteminizi başlada bilərsiniz. - + <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 setup program.</p></body></html> - + <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcı proqramı bağladığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> - + <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>Hər şey hazırdır.</h1><br/>%1 sizin kompyuterinizə quraşdırıldı.<br/>Siz yenidən başladaraq yeni sisteminizə daxil ola və ya %2 Canlı mühitini istifadə etməyə davam edə bilərsiniz. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcınıı bağladığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. FinishedViewStep - + Finish - + Son - + Setup Complete - + Quraşdırma tamamlandı - + Installation Complete - + Quraşdırma tamamlandı - + The setup of %1 is complete. - + %1 quraşdırmaq başa çatdı. - + The installation of %1 is complete. - + %1in quraşdırılması başa çatdı. @@ -1332,95 +1340,95 @@ The installer will quit and all changes will be lost. Format partition %1 (file system: %2, size: %3 MiB) on %4. - + %4-də %1 bölməsini format etmək (fayl sistemi: %2, ölçüsü: %3 MB). Format <strong>%3MiB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - + <strong>%3MB</strong> bölməsini <strong>%2</strong> fayl sistemi ilə <strong>%1</strong> formatlamaq. Formatting partition %1 with file system %2. - + %1 bölməsini %2 fayl sistemi ilə formatlamaq. The installer failed to format partition %1 on disk '%2'. - + Quraşdırıcı '%2' diskində %1 bölməsini formatlaya bilmədi. GeneralRequirements - + has at least %1 GiB available drive space - + ən az %1 QB disk boş sahəsi var - + There is not enough drive space. At least %1 GiB is required. - + Kifayət qədər disk sahəsi yoxdur. əƏn azı %1 QB tələb olunur. - + has at least %1 GiB working memory - + ən azı %1 QB iş yaddaşı var - + The system does not have enough working memory. At least %1 GiB is required. - + Sistemdə kifayət qədər iş yaddaşı yoxdur. Ən azı %1 GiB tələb olunur. - + is plugged in to a power source - + enerji mənbəyi qoşuludur - + The system is not plugged in to a power source. - + enerji mənbəyi qoşulmayıb. - + is connected to the Internet - + internetə qoşuludur - + The system is not connected to the Internet. - + Sistem internetə qoşulmayıb. - + is running the installer as an administrator (root) - + quraşdırıcı adminstrator (root) imtiyazları ilə başladılması - + The setup program is not running with administrator rights. - + Quraşdırıcı adminstrator imtiyazları ilə başladılmayıb. - + The installer is not running with administrator rights. - + Quraşdırıcı adminstrator imtiyazları ilə başladılmayıb. - + has a screen large enough to show the whole installer - + quraşdırıcını tam göstərmək üçün ekran kifayət qədər genişdir - + The screen is too small to display the setup program. - + Quraşdırıcı proqramı göstərmək üçün ekran çox kiçikdir. - + The screen is too small to display the installer. - + Bu quarşdırıcını göstəmək üçün ekran çox kiçikdir. @@ -1428,7 +1436,7 @@ The installer will quit and all changes will be lost. Collecting information about your machine. - + Komputeriniz haqqında məlumat toplanması. @@ -1439,22 +1447,22 @@ The installer will quit and all changes will be lost. OEM Batch Identifier - + OEM toplama identifikatoru Could not create directories <code>%1</code>. - + <code>%1</code> qovluğu yaradılmadı. Could not open file <code>%1</code>. - + <code>%1</code> faylı açılmadı. Could not write to file <code>%1</code>. - + <code>%1</code> faylına yazılmadı. @@ -1462,7 +1470,7 @@ The installer will quit and all changes will be lost. Creating initramfs with mkinitcpio. - + mkinitcpio köməyi ilə initramfs yaradılması. @@ -1470,7 +1478,7 @@ The installer will quit and all changes will be lost. Creating initramfs. - + initramfs yaradılması. @@ -1478,17 +1486,17 @@ The installer will quit and all changes will be lost. Konsole not installed - + Konsole quraşdırılmayıb Please install KDE Konsole and try again! - + Lütfən KDE Konsole tətbiqini quraşdırın və yenidən cəhd edin! Executing script: &nbsp;<code>%1</code> - + Ssenari icra olunur. &nbsp;<code>%1</code> @@ -1496,7 +1504,7 @@ The installer will quit and all changes will be lost. Script - + Ssenari @@ -1504,12 +1512,12 @@ The installer will quit and all changes will be lost. Set keyboard model to %1.<br/> - + Klaviatura modelini %1 olaraq təyin etmək.<br/> Set keyboard layout to %1/%2. - + Klaviatura qatını %1/%2 olaraq təyin etmək. @@ -1517,7 +1525,7 @@ The installer will quit and all changes will be lost. Keyboard - + Klaviatura @@ -1525,7 +1533,7 @@ The installer will quit and all changes will be lost. Keyboard - + Klaviatura @@ -1533,22 +1541,22 @@ The installer will quit and all changes will be lost. System locale setting - + Ümumi məkan ayarları 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>. - + Ümumi məkan ayarları, əmrlər sətiri interfeysinin ayrıca elementləri üçün dil və kodlaşmaya təsir edir. <br/>Hazırkı seçim <strong>%1</strong>. &Cancel - + İm&tina etmək &OK - + &OK @@ -1556,42 +1564,42 @@ The installer will quit and all changes will be lost. Form - + Format <h1>License Agreement</h1> - + <h1>Lisenziya razılaşması</h1> I accept the terms and conditions above. - + Mən yuxarıda göstərilən şərtləri qəbul edirəm. Please review the End User License Agreements (EULAs). - + Lütfən lisenziya razılaşması (EULA) ilə tanış olun. This setup procedure will install proprietary software that is subject to licensing terms. - + Bu quraşdırma proseduru lisenziya şərtlərinə tabe olan xüsusi proqram təminatını quraşdıracaqdır. If you do not agree with the terms, the setup procedure cannot continue. - + Lisenziya razılaşmalarını qəbul etməsəniz quraşdırılma davam etdirilə bilməz. This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Bu quraşdırma proseduru, əlavə xüsusiyyətlər təmin etmək və istifadəçi təcrübəsini artırmaq üçün lisenziyalaşdırma şərtlərinə tabe olan xüsusi proqram təminatını quraşdıra bilər. If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Şərtlərlə razılaşmasanız, xüsusi proqram quraşdırılmayacaq və bunun əvəzinə açıq mənbə kodu ilə alternativlər istifadə ediləcəkdir. @@ -1599,7 +1607,7 @@ The installer will quit and all changes will be lost. License - + Lisenziya @@ -1607,59 +1615,59 @@ The installer will quit and all changes will be lost. URL: %1 - + URL: %1 <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 sürücü</strong>%2 tərəfindən <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 grafik sürücü</strong><br/><font color="Grey">%2 tərəfindən</font> <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 brauzer əlavəsi</strong><br/><font color="Grey">%2 tərəfindən</font> <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 kodek</strong><br/><font color="Grey">%2 tərəfindən</font> <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1 paket</strong><br/><font color="Grey">%2 ərəfindən</font> <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">%2 ərəfindən</font> File: %1 - + %1 faylı Hide license text - + Lisenziya mətnini gizlətmək Show the license text - + Lisenziya mətnini göstərmək Open license agreement in browser. - + Lisenziya razılaşmasını brauzerdə açmaq. @@ -1667,33 +1675,33 @@ The installer will quit and all changes will be lost. Region: - + Məkan: Zone: - + Zona: &Change... - + &Dəyişmək... The system language will be set to %1. - + Sistem dili %1 təyin ediləcək. The numbers and dates locale will be set to %1. - + Yerli nömrə və tarix formatı %1 təyin olunacaq. Set timezone to %1/%2.<br/> - + Saat Qurşağını %1/%2 təyin etmək.<br/> @@ -1701,7 +1709,7 @@ The installer will quit and all changes will be lost. Location - + Məkan @@ -1709,7 +1717,7 @@ The installer will quit and all changes will be lost. Location - + Məkan @@ -1717,35 +1725,35 @@ The installer will quit and all changes will be lost. Configuring LUKS key file. - + LUKS düymə faylını ayarlamaq. No partitions are defined. - + Heç bir bölmə müəyyən edilməyib. Encrypted rootfs setup error - + Kök fayl sisteminin şifrələnməsi xətası Root partition %1 is LUKS but no passphrase has been set. - + %1 Kök bölməsi LUKS-dur lakin, şifrə təyin olunmayıb. Could not create LUKS key file for root partition %1. - + %1 kök bölməsi üçün LUKS düymə faylı yaradılmadı. Could not configure LUKS key file on partition %1. - + %1 bölməsində LUKS düymə faylı tənzimlənə bilmədi. @@ -1753,17 +1761,29 @@ The installer will quit and all changes will be lost. Generate machine-id. - + Komputerin İD-ni yaratmaq. Configuration Error - + Tənzimləmə xətası No root mount point is set for MachineId. - + Komputer İD-si üçün kök qoşulma nöqtəsi təyin edilməyib. + + + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Lütfən, xəritədə üstünlük verdiyiniz yeri seçin, belə ki, quraşdırıcı sizin üçün yerli + və saat qurşağı parametrlərini təklif edə bilər. Aşağıda təklif olunan parametrləri dəqiq tənzimləyə bilərsiniz. Xəritəni sürüşdürərək axtarın. + miqyası dəyişmək üçün +/- düymələrindən və ya siçanla sürüşdürmə çubuğundan istifadə etmək. @@ -1772,97 +1792,97 @@ The installer will quit and all changes will be lost. Package selection - + Paket seçimi Office software - + Ofis proqramı Office package - + Ofis paketi Browser software - + Veb bələdçi proqramı Browser package - + Veb bələdçi paketi Web browser - + Veb bələdçi Kernel - + Nüvə Services - + Xidmətlər Login - + Giriş Desktop - + İş Masası Applications - + Tətbiqlər Communication - + Rabitə Development - + Tərtibat Office - + Ofis Multimedia - + Multimediya Internet - + Internet Theming - + Mövzular, Temalar Gaming - + Oyun Utilities - + Vasitələr, Alətlər @@ -1870,7 +1890,7 @@ The installer will quit and all changes will be lost. Notes - + Qeydlər @@ -1878,17 +1898,17 @@ The installer will quit and all changes will be lost. Ba&tch: - + Dəs&tə: <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> - + <html><head/><body><p>Dəstənin isentifikatorunu bura daxil edin. Bu hədəf sistemində saxlanılacaq.</p></body></html> <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> - + <html><head/><body><h1>OEM tənzimləmələri</h1><p>Calamares hədəf sistemini tənzimləyərkən OEM ayarlarını istifadə edəcək.</p></body></html> @@ -1896,12 +1916,25 @@ The installer will quit and all changes will be lost. OEM Configuration - + OEM tənzimləmələri Set the OEM Batch Identifier to <code>%1</code>. - + OEM Dəstəsi identifikatorunu <code>%1</code>-ə ayarlamaq. + + + + Offline + + + Timezone: %1 + Saat qurşağı: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Saat qurşağının seçilə bilməsi üçün internetə qoşulduğunuza əmin olun. İnternetə qoşulduqdan sonra quraşdırıcını yenidən başladın. Aşağıdakı Dil və Yer parametrlərini dəqiq tənzimləyə bilərsiniz. @@ -1909,247 +1942,247 @@ The installer will quit and all changes will be lost. Password is too short - + Şifrə çox qısadır Password is too long - + Şifrə çox uzundur Password is too weak - + Şifrə çox zəifdir Memory allocation error when setting '%1' - + '%1' ayarlanarkən yaddaş bölgüsü xətası Memory allocation error - + Yaddaş bölgüsü xətası The password is the same as the old one - + Şifrə köhnə şifrə ilə eynidir The password is a palindrome - + Şifrə tərsinə oxunuşu ilə eynidir The password differs with case changes only - + Şifrə yalnız hal dəyişiklikləri ilə fərqlənir The password is too similar to the old one - + Şifrə köhnə şifrə ilə çox oxşardır The password contains the user name in some form - + Şifrənin tərkibində istifadəçi adı var The password contains words from the real name of the user in some form - + Şifrə istifadəçinin əsl adına oxşar sözlərdən ibarətdir The password contains forbidden words in some form - + Şifrə qadağan edilmiş sözlərdən ibarətdir The password contains less than %1 digits - + Şifrə %1-dən az rəqəmdən ibarətdir The password contains too few digits - + Şifrə çox az rəqəmdən ibarətdir The password contains less than %1 uppercase letters - + Şifrə %1-dən az böyük hərfdən ibarətdir The password contains too few uppercase letters - + Şifrə çox az böyük hərflərdən ibarətdir The password contains less than %1 lowercase letters - + Şifrə %1-dən az kiçik hərflərdən ibarətdir The password contains too few lowercase letters - + Şifrə çox az kiçik hərflərdən ibarətdir The password contains less than %1 non-alphanumeric characters - + Şifrə %1-dən az alfasayısal olmayan simvollardan ibarətdir The password contains too few non-alphanumeric characters - + Şifrə çox az alfasayısal olmayan simvollardan ibarətdir The password is shorter than %1 characters - + Şifrə %1 simvoldan qısadır The password is too short - + Şifrə çox qısadır The password is just rotated old one - + Yeni şifrə sadəcə olaraq tərsinə çevirilmiş köhnəsidir The password contains less than %1 character classes - + Şifrə %1-dən az simvol sinifindən ibarətdir The password does not contain enough character classes - + Şifrənin tərkibində kifayət qədər simvol sinifi yoxdur The password contains more than %1 same characters consecutively - + Şifrə ardıcıl olaraq %1-dən çox eyni simvollardan ibarətdir The password contains too many same characters consecutively - + Şifrə ardıcıl olaraq çox oxşar simvollardan ibarətdir The password contains more than %1 characters of the same class consecutively - + Şifrə ardıcıl olaraq eyni sinifin %1-dən çox simvolundan ibarətdir The password contains too many characters of the same class consecutively - + Şifrə ardıcıl olaraq eyni sinifin çox simvolundan ibarətdir The password contains monotonic sequence longer than %1 characters - + Şifrə %1 simvoldan uzun olan monoton ardıcıllıqdan ibarətdir The password contains too long of a monotonic character sequence - + Şifrə çox uzun monoton simvollar ardıcıllığından ibarətdir No password supplied - + Şifrə verilməyib Cannot obtain random numbers from the RNG device - + RNG cihazından təsadüfi nömrələr əldə etmək olmur Password generation failed - required entropy too low for settings - + Şifrə yaratma uğursuz oldu - ayarlar üçün tələb olunan entropiya çox aşağıdır The password fails the dictionary check - %1 - + Şifrənin lüğət yoxlaması alınmadı - %1 The password fails the dictionary check - + Şifrənin lüğət yoxlaması alınmadı Unknown setting - %1 - + Naməlum ayarlar - %1 Unknown setting - + Naməlum ayarlar Bad integer value of setting - %1 - + Ayarın pozulmuş tam dəyəri - %1 Bad integer value - + Pozulmuş tam dəyər Setting %1 is not of integer type - + %1 -i ayarı tam say deyil Setting is not of integer type - + Ayar tam say deyil Setting %1 is not of string type - + %1 ayarı sətir deyil Setting is not of string type - + Ayar sətir deyil Opening the configuration file failed - + Tənzəmləmə faylının açılması uğursuz oldu The configuration file is malformed - + Tənzimləmə faylı qüsurludur Fatal failure - + Ciddi qəza Unknown error - + Naməlum xəta Password is empty - + Şifrə böşdur @@ -2157,32 +2190,32 @@ The installer will quit and all changes will be lost. Form - + Format Product Name - + Məhsulun adı TextLabel - + Mətn nişanı Long Product Description - + Məhsulun uzun təsviri Package Selection - + Paket seçimi Please pick a product from the list. The selected product will be installed. - + Lütfən məhsulu siyahıdan seçin. Seçilmiş məhsul quraşdırılacaqdır. @@ -2190,7 +2223,7 @@ The installer will quit and all changes will be lost. Packages - + Paketlər @@ -2198,12 +2231,12 @@ The installer will quit and all changes will be lost. Name - + Adı Description - + Təsviri @@ -2211,17 +2244,17 @@ The installer will quit and all changes will be lost. Form - + Format Keyboard Model: - + Klaviatura modeli: Type here to test your keyboard - + Buraya yazaraq klaviaturanı yoxlayın @@ -2229,96 +2262,96 @@ The installer will quit and all changes will be lost. Form - + Format What is your name? - + Adınız nədir? Your Full Name - + Tam adınız What name do you want to use to log in? - + Giriş üçün hansı adı istifadə etmək istəyirsiniz? login - + giriş What is the name of this computer? - + Bu kompyuterin adı nədir? <small>This name will be used if you make the computer visible to others on a network.</small> - + <small>Əgər kompyuterinizi şəbəkə üzərindən görünən etsəniz, bu ad istifadə olunacaq.</small> Computer Name - + Kompyuterin adı Choose a password to keep your account safe. - + Hesabınızın təhlükəsizliyi üçün şifrə seçin. <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> - + <small>Səhvsiz yazmaq üçün eyni şifrəni iki dəfə daxil edin. Yaxşı bir şifrə, hərflərin, nömrələrin və durğu işarələrinin qarışığından və ən azı səkkiz simvoldan ibarət olmalıdır, həmçinin müntəzəm olaraq dəyişdirilməlidir.</small> Password - + Şifrə Repeat Password - + Şifrənin təkararı When this box is checked, password-strength checking is done and you will not be able to use a weak password. - + Bu qutu işarələndikdə, şifrənin etibarlıq səviyyəsi yoxlanılır və siz zəif şifrədən istifadə edə bilməyəcəksiniz. Require strong passwords. - + Güclü şifrələr tələb edilir. Log in automatically without asking for the password. - + Şifrə soruşmadan sistemə avtomatik daxil olmaq. Use the same password for the administrator account. - + İdarəçi hesabı üçün eyni şifrədən istifadə etmək. Choose a password for the administrator account. - + İdarəçi hesabı üçün şifrəni seçmək. <small>Enter the same password twice, so that it can be checked for typing errors.</small> - + <small>Səhvsiz yazmaq üçün eyni şifrəni iki dəfə daxil edin</small> @@ -2326,43 +2359,43 @@ The installer will quit and all changes will be lost. Root - + Root Home - + Home Boot - + Boot EFI system - + EFI sistemi Swap - + Swap - Mübadilə New partition for %1 - + %1 üçün yeni bölmə New partition - + Yeni bölmə %1 %2 size[number] filesystem[name] - + %1 %2 @@ -2371,33 +2404,33 @@ The installer will quit and all changes will be lost. Free Space - + Boş disk sahəsi New partition - + Yeni bölmə Name - + Adı File System - + Fayl sistemi Mount Point - + Qoşulma nöqtəsi Size - + Ölçüsü @@ -2405,77 +2438,78 @@ The installer will quit and all changes will be lost. Form - + Format Storage de&vice: - + Yaddaş qurğu&su: &Revert All Changes - + Bütün dəyişiklikləri &geri qaytarmaq New Partition &Table - + Yeni bölmələr &cədvəli Cre&ate - + Yar&atmaq &Edit - + Düzəliş &etmək &Delete - + &Silmək New Volume Group - + Yeni tutum qrupu Resize Volume Group - + Tutum qrupunun ölçüsünü dəyişmək Deactivate Volume Group - + Tutum qrupunu deaktiv etmək Remove Volume Group - + Tutum qrupunu silmək I&nstall boot loader on: - + Ön yükləy&icinin quraşdırılma yeri: Are you sure you want to create a new partition table on %1? - + %1-də yeni bölmə yaratmaq istədiyinizə əminsiniz? Can not create new partition - + Yeni bölmə yaradıla bilmir 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. - + %1 üzərindəki bölmə cədvəlində %2 birinci disk bölümü var və artıq əlavə edilə bilməz. +Lütfən bir birinci disk bölümünü çıxarın və əvəzinə genişləndirilmiş bölmə əlavə edin. @@ -2483,117 +2517,117 @@ The installer will quit and all changes will be lost. Gathering system information... - + Sistem məlumatları toplanır ... Partitions - + Bölmələr - + Install %1 <strong>alongside</strong> another operating system. - + Digər əməliyyat sistemini %1 <strong>yanına</strong> quraşdırmaq. - + <strong>Erase</strong> disk and install %1. - + Diski <strong>çıxarmaq</strong> və %1 quraşdırmaq. - + <strong>Replace</strong> a partition with %1. - + Bölməni %1 ilə <strong>əvəzləmək</strong>. - + <strong>Manual</strong> partitioning. - + <strong>Əl ilə</strong> bölüşdürmə. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>%2</strong> (%3) diskində başqa əməliyyat sistemini %1 <strong>yanında</strong> quraşdırmaq. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>%2</strong> (%3) diskini <strong>çıxartmaq</strong> və %1 quraşdırmaq. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>%2</strong> (%3) diskində bölməni %1 ilə <strong>əvəzləmək</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + <strong>%1</strong> (%2) diskində <strong>əl ilə</strong> bölüşdürmə. - + Disk <strong>%1</strong> (%2) - + <strong>%1</strong> (%2) diski - + Current: - + Cari: - + After: - + Sonra: - + No EFI system partition configured - + EFI sistemi bölməsi tənzimlənməyib - + 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>%3</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. - + EFİ sistemi bölməsi, %1 başlatmaq üçün vacibdir. <br/><br/>EFİ sistemi bölməsini yaratmaq üçün geriyə qayıdın və aktiv edilmiş<strong>%3</strong> bayrağı və <strong>%2</strong> qoşulma nöqtəsi ilə FAT32 fayl sistemi seçin və ya yaradın.<br/><br/>Siz EFİ sistemi bölməsi yaratmadan da davam edə bilərsiniz, lakin bu halda sisteminiz açılmaya bilər. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + %1 başlatmaq üçün EFİ sistem bölməsi vacibdir.<br/><br/>Bölmə <strong>%2</strong> qoşulma nöqtəsi ilə yaradılıb, lakin onun <strong>%3</strong> bayrağı seçilməyib.<br/>Bayrağı seçmək üçün geriyə qayıdın və bölməyə süzəliş edin.<br/><br/>Siz bayrağı seçmədən də davam edə bilərsiniz, lakin bu halda sisteminiz açılmaya bilər. - + EFI system partition flag not set - + EFİ sistem bölməsi bayraqı seçilməyib - + Option to use GPT on BIOS - + BIOS-da GPT istifadəsi seçimi - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + GPT bölmə cədvəli bütün sistemlər üçün yaxşıdır. Bu quraşdırıcı BIOS sistemləri üçün də belə bir quruluşu dəstəkləyir.<br/><br/>BİOS-da GPT bölmələr cədvəlini ayarlamaq üçün (əgər bu edilməyibsə) geriyə qayıdın və bölmələr cədvəlini GPT-yə qurun, sonra isə <strong>bios_grub</strong> bayrağı seçilmiş 8 MB-lıq formatlanmamış bölmə yaradın.<br/><br/>8 MB-lıq formatlanmamış bölmə GPT ilə BİOS sistemində %1 başlatmaq üçün lazımdır. - + Boot partition not encrypted - + Ön yükləyici bölməsi çifrələnməyib - + 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. - + Şifrəli bir kök bölməsi ilə birlikdə ayrı bir ön yükləyici bölməsi qurulub, ancaq ön yükləyici bölməsi şifrələnməyib.<br/><br/>Bu cür quraşdırma ilə bağlı təhlükəsizlik problemləri olur, çünki vacib sistem sənədləri şifrəsiz bölmədə saxlanılır.<br/>İstəyirsinizsə davam edə bilərsiniz, lakin, fayl sisteminin kilidi, sistem başladıldıqdan daha sonra açılacaqdır.<br/>Yükləmə hissəsini şifrələmək üçün geri qayıdın və bölmə yaratma pəncərəsində <strong>Şifrələmə</strong> menyusunu seçərək onu yenidən yaradın. - + has at least one disk device available. - + ən az bir disk qurğusu mövcuddur. - + There are no partitions to install on. - + Quraşdırmaq üçün bölmə yoxdur. @@ -2601,13 +2635,13 @@ The installer will quit and all changes will be lost. Plasma Look-and-Feel Job - + Plasma Xarici Görünüş Mövzusu İşləri Could not select KDE Plasma Look-and-Feel package - + KDE Plasma Xarici Görünüş paketinin seçilməsi @@ -2615,17 +2649,17 @@ The installer will quit and all changes will be lost. Form - + Format 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. - + Lütfən, KDE Plasma İş Masası üçün Xarici Görünüşü seçin. Siz həmçinin bu mərhələni ötürə və sistem qurulduqdan sonra Plasma xarici görünüşünü ayarlaya bilərsiniz. Xarici Görünüşə klikləməniz onun canlı görüntüsünü sizə göstərəcəkdir. 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. - + Lütfən, KDE Plasma İş Masası üçün Xarici Görünüşü seçin. Siz həmçinin bu mərhələni ötürə və sistem qurulduqdan sonra Plasma xarici görünüşünü ayarlaya bilərsiniz. Xarici Görünüşə klikləməniz onun canlı görüntüsünü sizə göstərəcəkdir. @@ -2633,7 +2667,7 @@ The installer will quit and all changes will be lost. Look-and-Feel - + Xarici Görünüş @@ -2641,127 +2675,125 @@ The installer will quit and all changes will be lost. Saving files for later ... - + Fayllar daha sonra saxlanılır... No files configured to save for later. - + Sonra saxlamaq üçün heç bir ayarlanan fayl yoxdur. Not all of the configured files could be preserved. - + Ayarlanan faylların hamısı saxlanıla bilməz. ProcessResult - + There was no output from the command. - + +Əmrlərdən çıxarış alınmadı. - + Output: - + +Çıxarış: + - + External command crashed. - + Xarici əmr qəzası baş verdi. - + Command <i>%1</i> crashed. - + <i>%1</i> əmrində qəza baş verdi. - + External command failed to start. - + Xarici əmr başladıla bilmədi. - + Command <i>%1</i> failed to start. - + <i>%1</i> əmri əmri başladıla bilmədi. - + Internal error when starting command. - + Əmr başlayarkən daxili xəta. - + Bad parameters for process job call. - + İş prosesini çağırmaq üçün xətalı parametr. - + External command failed to finish. - + Xarici əmr başa çatdırıla bilmədi. - + Command <i>%1</i> failed to finish in %2 seconds. - + <i>%1</i> əmrini %2 saniyədə başa çatdırmaq mümkün olmadı. - + External command finished with errors. - + Xarici əmr xəta ilə başa çatdı. - + Command <i>%1</i> finished with exit code %2. - + <i>%1</i> əmri %2 xəta kodu ilə başa çatdı. QObject - + %1 (%2) - - - - - Requirements checking for module <i>%1</i> is complete. - + %1 (%2) - + unknown - + naməlum - + extended - + genişləndirilmiş - + unformatted - + format olunmamış - + swap - + mübadilə Default Keyboard Model - + Standart Klaviatura Modeli Default - + Standart @@ -2769,37 +2801,47 @@ Output: File not found - + Fayl tapılmadı Path <pre>%1</pre> must be an absolute path. - + <pre>%1</pre> yolu mütləq bir yol olmalıdır. Could not create new random file <pre>%1</pre>. - + Yeni təsadüfi<pre>%1</pre> faylı yaradıla bilmir. No product - + Məhsul yoxdur No description provided. - + Təsviri verilməyib. (no mount point) - + (qoşulma nöqtəsi yoxdur) Unpartitioned space or unknown partition table - + Bölünməmiş disk sahəsi və ya naməlum bölmələr cədvəli + + + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. + <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər.</p> @@ -2807,7 +2849,7 @@ Output: Remove live user from target system - + Canlı istifadəçini hədəf sistemindən silmək @@ -2816,17 +2858,17 @@ Output: Remove Volume Group named %1. - + %1 adlı Tutum Qrupunu silmək. Remove Volume Group named <strong>%1</strong>. - + <strong>%1</strong> adlı Tutum Qrupunu silmək. The installer failed to remove a volume group named '%1'. - + Quraşdırıcı "%1" adlı tutum qrupunu silə bilmədi. @@ -2834,74 +2876,91 @@ Output: Form - + Format - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - + %1 quraşdırmaq yerini seşmək.<br/><font color="red">Diqqət!</font>bu seçilmiş bölmədəki bütün faylları siləcək. - + The selected item does not appear to be a valid partition. - + Seçilmiş element etibarlı bir bölüm kimi görünmür. - + %1 cannot be installed on empty space. Please select an existing partition. - + %1 böş disk sahəsinə quraşdırıla bilməz. Lütfən mövcüd bölməni seçin. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - + %1 genişləndirilmiş bölməyə quraşdırıla bilməz. Lütfən, mövcud birinci və ya məntiqi bölməni seçin. - + %1 cannot be installed on this partition. - + %1 bu bölməyə quraşdırıla bilməz. - + Data partition (%1) - + Verilənlər bölməsi (%1) - + Unknown system partition (%1) - + Naməlum sistem bölməsi (%1) - + %1 system partition (%2) - + %1 sistem bölməsi (%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>%4</strong><br/><br/>%1 Bölməsi %2 üçün çox kiçikdir. Lütfən, ən azı %3 QB həcmində olan bölməni seçin. - + <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>%2</strong><br/><br/>EFI sistem bölməsi bu sistemin heç bir yerində tapılmadı. Lütfən, geri qayıdın və %1 təyin etmək üçün əl ilə bu bölməni yaradın. - - - + + + <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, %2.bölməsində quraşdırılacaq.<br/><font color="red">Diqqət: </font>%2 bölməsindəki bütün məlumatlar itiriləcək. - + The EFI system partition at %1 will be used for starting %2. - + %1 EFI sistemi %2 başlatmaq üçün istifadə olunacaqdır. - + EFI system partition: - + EFI sistem bölməsi: + + + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/> + Quraşdırılma davam etdirilə bilməz. </p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. + <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər.</p> @@ -2909,27 +2968,27 @@ Output: Resize Filesystem Job - + Fayl sisteminin ölçüsünü dəyişmək Invalid configuration - + Etibarsız Tənzimləmə The file-system resize job has an invalid configuration and will not run. - + Fayl sisteminin ölçüsünü dəyişmək işinin tənzimlənməsi etibarsızdır və baçladıla bilməz. KPMCore not Available - + KPMCore mövcud deyil Calamares cannot start KPMCore for the file-system resize job. - + Calamares bu fayl sisteminin ölçüsünü dəyişmək üçün KPMCore proqramını işə sala bilmir. @@ -2938,39 +2997,39 @@ Output: Resize Failed - + Ölçüsünü dəyişmə alınmadı The filesystem %1 could not be found in this system, and cannot be resized. - + %1 fayl sistemi bu sistemdə tapılmadı və ölçüsü dəyişdirilə bilmədi. The device %1 could not be found in this system, and cannot be resized. - + %1 qurğusu bu sistemdə tapılmadı və ölçüsü dəyişdirilə bilməz. The filesystem %1 cannot be resized. - + %1 fayl sisteminin ölçüsü dəyişdirilə bilmədi. The device %1 cannot be resized. - + %1 qurğusunun ölçüsü dəyişdirilə bilmədi. The filesystem %1 must be resized, but cannot. - + %1 fayl sisteminin ölçüsü dəyişdirilməlidir, lakin bu mümkün deyil. The device %1 must be resized, but cannot - + %1 qurğusunun ölçüsü dəyişdirilməlidir, lakin, bu mümkün deyil @@ -2978,22 +3037,22 @@ Output: Resize partition %1. - + %1 bölməsinin ölçüsünü dəyişmək. Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. - + <strong>%2MB</strong> <strong>%1</strong> bölməsinin ölçüsünü <strong>%3MB</strong>-a dəyişmək. Resizing %2MiB partition %1 to %3MiB. - + %2 MB %1 bölməsinin ölçüsünü %3MB-a dəyişmək. The installer failed to resize partition %1 on disk '%2'. - + Quraşdırıcı %1 bölməsinin ölçüsünü "%2" diskində dəyişə bilmədi. @@ -3001,7 +3060,7 @@ Output: Resize Volume Group - + Tutum qrupunun ölçüsünü dəyişmək @@ -3010,58 +3069,58 @@ Output: Resize volume group named %1 from %2 to %3. - + %1 adlı tutum qrupunun ölçüsünü %2-dən %3-ə dəyişmək. Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. - + <strong>%1</strong> adlı tutum qrupunun ölçüsünü <strong>%2</strong>-dən strong>%3</strong>-ə dəyişmək. The installer failed to resize a volume group named '%1'. - + Quraşdırıcı "%1" adlı tutum qrupunun ölçüsünü dəyişə bilmədi. ResultsListDialog - + For best results, please ensure that this computer: - + Ən yaşxı nəticə üçün lütfən, əmin olun ki, bu kompyuter: - + System requirements - + Sistem tələbləri ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This program will ask you some questions and set up %2 on your computer. - + Bu proqram sizə bəi suallar verəcək və %2 sizin komputerinizə qurmağa kömək edəcək. @@ -3069,12 +3128,12 @@ Output: Scanning storage devices... - + Yaddaş qurğusu axtarılır... Partitioning - + Bölüşdürmə @@ -3082,29 +3141,29 @@ Output: Set hostname %1 - + %1 host adı təyin etmək Set hostname <strong>%1</strong>. - + <strong>%1</strong> host adı təyin etmək. Setting hostname %1. - + %1 host adının ayarlanması. Internal Error - + Daxili Xəta Cannot write hostname to target system - + Host adı hədəf sistemə yazıla bilmədi @@ -3112,29 +3171,29 @@ Output: Set keyboard model to %1, layout to %2-%3 - + Klaviatura modeliini %1, qatını isə %2-%3 təyin etmək Failed to write keyboard configuration for the virtual console. - + Virtual konsol üçün klaviatura tənzimləmələrini yazmaq mümkün olmadı. Failed to write to %1 - + %1-ə yazmaq mümkün olmadı Failed to write keyboard configuration for X11. - + X11 üçün klaviatura tənzimləmələrini yazmaq mümükün olmadı. Failed to write keyboard configuration to existing /etc/default directory. - + Klaviatura tənzimləmələri möcvcud /etc/default qovluğuna yazıla bilmədi. @@ -3142,82 +3201,82 @@ Output: Set flags on partition %1. - + %1 bölməsində bayraqlar qoymaq. Set flags on %1MiB %2 partition. - + %1 MB %2 bölməsində bayraqlar qoymaq. Set flags on new partition. - + Yeni bölmədə bayraq qoymaq. Clear flags on partition <strong>%1</strong>. - + <strong>%1</strong> bölməsindəki bayraqları ləğv etmək. Clear flags on %1MiB <strong>%2</strong> partition. - + %1MB <strong>%2</strong> bölməsindəki bayraqları ləğv etmək. Clear flags on new partition. - + Yeni bölmədəki bayraqları ləğv etmək. Flag partition <strong>%1</strong> as <strong>%2</strong>. - + <strong>%1</strong> bölməsini <strong>%2</strong> kimi bayraqlamaq. Flag %1MiB <strong>%2</strong> partition as <strong>%3</strong>. - + %1MB <strong>%2</strong> bölməsini <strong>%3</strong> kimi bayraqlamaq. Flag new partition as <strong>%1</strong>. - + Yeni bölməni <strong>%1</strong> kimi bayraqlamaq. Clearing flags on partition <strong>%1</strong>. - + <strong>%1</strong> bölməsindəki bayraqları ləöv etmək. Clearing flags on %1MiB <strong>%2</strong> partition. - + %1MB <strong>%2</strong> bölməsindəki bayraqların ləğv edilməsi. Clearing flags on new partition. - + Yeni bölmədəki bayraqların ləğv edilməsi. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + <strong>%2</strong> bayraqlarının <strong>%1</strong> bölməsində ayarlanması. Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition. - + <strong>%3</strong> bayraqlarının %1MB <strong>%2</strong> bölməsində ayarlanması. Setting flags <strong>%1</strong> on new partition. - + <strong>%1</strong> bayraqlarının yeni bölmədə ayarlanması. The installer failed to set flags on partition %1. - + Quraşdırıcı %1 bölməsinə bayraqlar qoya bilmədi. @@ -3225,42 +3284,42 @@ Output: Set password for user %1 - + %1 istifadəçisi üçün şifrə daxil etmək Setting password for user %1. - + %1 istifadəçisi üçün şifrə ayarlamaq. Bad destination system path. - + Səhv sistem yolu təyinatı. rootMountPoint is %1 - + rootMountPoint %1-dir Cannot disable root account. - + Kök hesabını qeyri-aktiv etmək olmur. passwd terminated with error code %1. - + %1 xəta kodu ilə sonlanan şifrə. Cannot set password for user %1. - + %1 istifadəçisi üçün şifrə yaradıla bilmədi. usermod terminated with error code %1. - + usermod %1 xəta kodu ilə sonlandı. @@ -3268,37 +3327,37 @@ Output: Set timezone to %1/%2 - + Saat qurşağını %1/%2 olaraq ayarlamaq Cannot access selected timezone path. - + Seçilmiş saat qurşağı yoluna daxil olmaq mümkün deyil. Bad path: %1 - + Etibarsız yol: %1 Cannot set timezone. - + Saat qurşağını qurmaq mümkün deyil. Link creation failed, target: %1; link name: %2 - + Keçid yaradılması alınmadı, hədəf: %1; keçed adı: %2 Cannot set timezone, - + Saat qurşağı qurulmadı, Cannot open /etc/timezone for writing - + /etc/timezone qovluğu yazılmaq üçün açılmadı @@ -3306,7 +3365,7 @@ Output: Shell Processes Job - + Shell prosesləri ilə iş @@ -3315,7 +3374,7 @@ Output: %L1 / %L2 slide counter, %1 of %2 (numeric) - + %L1 / %L2 @@ -3323,12 +3382,12 @@ Output: This is an overview of what will happen once you start the setup procedure. - + Bu quraşdırma proseduruna başladıqdan sonra nələrin baş verəcəyinə ümumi baxışdır. This is an overview of what will happen once you start the install procedure. - + Bu quraşdırma proseduruna başladıqdan sonra nələrin baş verəcəyinə ümumi baxışdır. @@ -3336,59 +3395,88 @@ Output: Summary - + Nəticə TrackingInstallJob - + Installation feedback - + Quraşdırılma hesabatı - + Sending installation feedback. - + Quraşdırılma hesabatının göndərməsi. - + Internal error in install-tracking. - + install-tracking daxili xətası. - + HTTP request timed out. - + HTTP sorğusunun vaxtı keçdi. + + + + TrackingKUserFeedbackJob + + + KDE user feedback + KDE istifadəçi hesabatı + + + + Configuring KDE user feedback. + KDE istifadəçi hesabatının tənzimlənməsi. + + + + + Error in KDE user feedback configuration. + KDE istifadəçi hesabatının tənzimlənməsində xəta. + + + + Could not configure KDE user feedback correctly, script error %1. + KDE istifadəçi hesabatı düzgün tənzimlənmədi, əmr xətası %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + KDE istifadəçi hesabatı düzgün tənzimlənmədi, Calamares xətası %1. - TrackingMachineNeonJob + TrackingMachineUpdateManagerJob - + Machine feedback - + Kompyuter hesabatı - + Configuring machine feedback. - + kompyuter hesabatının tənzimlənməsi. - - + + Error in machine feedback configuration. - + Kompyuter hesabatının tənzimlənməsində xəta. - + Could not configure machine feedback correctly, script error %1. - + Kompyuter hesabatı düzgün tənzimlənmədi, əmr xətası %1. - + Could not configure machine feedback correctly, Calamares error %1. - + Kompyuter hesabatı düzgün tənzimlənmədi, Calamares xətası %1. @@ -3396,50 +3484,50 @@ Output: Form - + Format Placeholder - + Əvəzləyici - <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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Göndərmək üçün buraya klikləyin <span style=" font-weight:600;">quraşdırıcınız haqqında heç bir məlumat yoxdur</span>.</p></body></html> <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">İstifadəçi hesabatı haqqında daha çox məlumat üçün buraya klikləyin</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. - + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + İzləmə %1ə, cihazın neçə dəfə quraşdırıldığını, hansı cihazda quraşdırıldığını və hansı tətbiqlərdən istifadə olunduğunu görməyə kömək edir. Göndərilənləri görmək üçün hər sahənin yanındakı yardım işarəsini vurun. - - 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 send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Bunu seçərək quraşdırma və kompyuteriniz haqqında məlumat göndərəcəksiniz. Quraşdırma başa çatdıqdan sonra, bu məlumat yalnız <b>bir dəfə</b> göndəriləcəkdir. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Bu seçimdə siz vaxtaşırı <b>kompyuter</b> qurğularınız, avadanlıq və tətbiqləriniz haqqında %1-ə məlumat göndərəcəksiniz. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Bu seçimdə siz vaxtaşırı <b>istifadəçi</b> qurğularınız, avadanlıq və tətbiqləriniz haqqında %1-ə məlumat göndərəcəksiniz. TrackingViewStep - + Feedback - + Hesabat @@ -3447,47 +3535,47 @@ Output: <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>Əgər bu kompyuteri sizdən başqa şəxs istifadə edəcəkdirsə o zaman ayarlandıqdan sonra bir neçə istifadəçi hesabı yarada bilərsiniz.</small> <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + <small>Əgər bu kompyuteri sizdən başqa şəxs istifadə edəcəkdirsə o zaman quraşdırıldıqdan sonra bir neçə istifadəçi hesabı yarada bilərsiniz.</small> Your username is too long. - + İstifadəçi adınız çox uzundur. Your username must start with a lowercase letter or underscore. - + İstifadəçi adınız yalnız kiçik və ya alt cizgili hərflərdən ibarət olmalıdır. Only lowercase letters, numbers, underscore and hyphen are allowed. - + Yalnız kiçik hərflərdən, simvollardan, alt cizgidən və defisdən istifadə oluna bilər. Your hostname is too short. - + Host adınız çox qısadır. Your hostname is too long. - + Host adınız çox uzundur. Only letters, numbers, underscore and hyphen are allowed. - + Yalnız kiçik hərflərdən, saylardan, alt cizgidən və defisdən istifadə oluna bilər. Your passwords do not match! - + Şifrənizin təkrarı eyni deyil! @@ -3495,7 +3583,7 @@ Output: Users - + İstifadəçilər @@ -3503,12 +3591,12 @@ Output: Key - + Açar Value - + Dəyər @@ -3516,52 +3604,52 @@ Output: Create Volume Group - + Tutumlar qrupu yaratmaq List of Physical Volumes - + Fiziki Tutumların siyahısı Volume Group Name: - + Tutum Qrupunun adı: Volume Group Type: - + Tutum Qrupunun Növü: Physical Extent Size: - + Fiziki boy ölçüsü: MiB - + MB Total Size: - + Ümumi Ölçü: Used Size: - + İstifadə olunanın ölçüsü: Total Sectors: - + Ümumi Bölmələr: Quantity of LVs: - + LVlərin sayı: @@ -3569,114 +3657,114 @@ Output: Form - + Format Select application and system language - + Sistem və tətbiq dilini seçmək &About - + H&aqqında Open donations website - + Maddi dəstək üçün veb səhifəsi &Donate - + Ma&ddi dəstək Open help and support website - + Kömək və dəstək veb səhifəsi &Support - + Də&stək Open issues and bug-tracking website - + Problemlər və xəta izləmə veb səhifəsi &Known issues - + &Məlum problemlər Open release notes website - + Buraxılış haqqında qeydlər veb səhifəsi &Release notes - + Bu&raxılış haqqında qeydlər - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>%1 üçün Calamares quraşdırma proqramına Xoş Gəldiniz.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>%1 quraşdırmaq üçün Xoş Gəldiniz.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1> %1 üçün Calamares quraşdırıcısına Xoş Gəldiniz.</h1> - + <h1>Welcome to the %1 installer.</h1> - + <h1>%1 quraşdırıcısına Xoş Gəldiniz.</h1> - + %1 support - + %1 dəstəyi - + About %1 setup - + %1 quraşdırması haqqında - + About %1 installer - + %1 quraşdırıcısı haqqında - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>%3 üçün</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Təşəkkür edirik, <a href="https://calamares.io/team/">Calamares komandasına</a> və <a href="https://www.transifex.com/calamares/calamares/">Calamares tərcüməçilər komandasına</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> tərtibatçılarının sponsoru: <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. WelcomeQmlViewStep - + Welcome - + Xoş Gəldiniz WelcomeViewStep - + Welcome - + Xoş Gəldiniz @@ -3695,12 +3783,45 @@ Output: development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/> + <strong>%2<br/> + %3 üçün</strong><br/><br/> + Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> + Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Təşəkkür edirik,<a href='https://calamares.io/team/'>Calamares komandasına</a> + və<a href='https://www.transifex.com/calamares/calamares/'>Calamares + tərcüməçiləri komandasına</a>.<br/><br/> + <a href='https://calamares.io/'>Calamares</a> + tərtibatının sponsoru: <br/> + <a href='http://www.blue-systems.com/'>Blue Systems</a> - + Liberating Software. Back - + Geriyə + + + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Dillər</h1> </br> + Sistemin yer ayarları bəzi istifadəçi interfeysi elementləri əmrlər sətri üçün dil və simvolların ayarlanmasına təsir edir. Cari ayar: <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Yerlər</h1> </br> + Sistemin yer ayarları bəzi istifadəçi interfeysi elementləri əmrlər sətri üçün dil və simvolların ayarlanmasına təsir edir. Cari ayar: <strong>%1</strong>. + + + + Back + Geriyə @@ -3708,44 +3829,62 @@ Output: Keyboard Model - + Klaviatura Modeli Pick your preferred keyboard model or use the default one based on the detected hardware - + Üstünlük verdiyiniz klaviatura modelini seçin və ya avadanlığın özündə aşkar edilmiş standart klaviatura modelindən istifadə edin Refresh - + Yeniləmək Layouts - + Qatları Keyboard Layout - + Klaviatura Qatları Models - + Modellər Variants - + Variantlar Test your keyboard - + klaviaturanızı yoxlayın + + + + localeq + + + System language set to %1 + Sistem dilini %1 qurmaq + + + + Numbers and dates locale set to %1 + Yerli saylvə tarix formatlarını %1 qurmaq + + + + Change + Dəyişdirmək @@ -3754,7 +3893,8 @@ Output: <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>Bunlar buraxılış qeydləri nümunəsidir.</p> @@ -3782,12 +3922,32 @@ Output: </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> + <p>Bu Flickable tərkibləri ilə RichText seçimlərində göstərilən QML faylı nümunəsidir</p> + + <p>QML RichText ilə HTML yarlığı istifadə edə bilər, Flickable daha çox toxunaqlı ekranlar üçün istifadə olunur.</p> + + <p><b>Bu qalın şriftli mətndir</b></p> + <p><i>Bu kursif şriftli mətndir</i></p> + <p><u>Bu al cizgili şriftli mətndir</u></p> + <p><center>Bu mətn mərkəzdə yerləşəcək.</center></p> + <p><s>Bu üzəri cizgilidir</s></p> + + <p>Kod nümunəsi: + <code>ls -l /home</code></p> + + <p><b>Siyahı:</b></p> + <ul> + <li>Intel CPU sistemləri</li> + <li>AMD CPU sistemləri</li> + </ul> + + <p>Şaquli sürüşmə çubuğu tənzimlənir, cari eni 10-a qurulur.</p> Back - + Geriyə @@ -3796,32 +3956,33 @@ Output: <h3>Welcome to the %1 <quote>%2</quote> installer</h3> <p>This program will ask you some questions and set up %1 on your computer.</p> - + <h3>%1quraşdırıcısına <quote>%2</quote> Xoş Gəldiniz</h3> + <p>Bu proqram sizə bəzi suallar verəcək və %1 komputerinizə quraşdıracaq.</p> - + About - + Haqqında - + Support - + Dəstək - + Known issues - + Məlum problemlər - + Release notes - + Buraxılış qeydləri - + Donate - + Maddi dəstək diff --git a/lang/calamares_az_AZ.ts b/lang/calamares_az_AZ.ts index 65191f080..f329495fc 100644 --- a/lang/calamares_az_AZ.ts +++ b/lang/calamares_az_AZ.ts @@ -6,17 +6,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + Bu sistemin <strong>açılış mühiti</strong>.<br><br>Köhnə x86 sistemlər yalnız <strong>BIOS</strong> dəstəkləyir.<br>Müasir sistemlər isə adətən <strong>EFI</strong> istifadə edir, lakin açılış mühiti əgər uyğun rejimdə başladılmışsa, həmçinin BİOS istiafadə edə bilər. 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. - + Bu sistem <strong>EFI</strong> açılış mühiti ilə başladılıb.<br><br>EFİ ilə başlamanı ayarlamaq üçün quraşdırıcı <strong>EFI Sistemi Bölməsi</strong> üzərində <strong>GRUB</strong> və ya <strong>systemd-boot</strong> kimi yükləyici istifadə etməlidir. Bunlar avtomatik olaraq seçilə bilir, lakin istədiyiniz halda diskdə bu bölmələri özünüz əl ilə seçərək bölə bilərsiniz. 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. - + Bu sistem <strong>BIOS</strong> açılış mühiti ilə başladılıb.<br><br>BIOS açılış mühitini ayarlamaq üçün quraşdırıcı bölmənin başlanğıcına və ya<strong>Master Boot Record</strong> üzərində <strong>GRUB</strong> və ya <strong>systemd-boot</strong> kimi yükləyici istifadə etməlidir. Əgər bunun avtomatik olaraq qurulmasını istəmirsinizsə özünüz əl ilə bölmələr yarada bilərsiniz. @@ -24,27 +24,27 @@ Master Boot Record of %1 - + %1 Əsas ön yükləyici qurmaq Boot Partition - + Ön yükləyici bölməsi System Partition - + Sistem bölməsi Do not install a boot loader - + Ön yükləyicini qurmamaq %1 (%2) - + %1 (%2) @@ -52,7 +52,7 @@ Blank Page - + Boş Səhifə @@ -60,151 +60,151 @@ Form - + Format GlobalStorage - + Ümumi yaddaş JobQueue - + Tapşırıq sırası Modules - + Modullar Type: - + Növ: none - + heç biri Interface: - + İnterfeys: Tools - + Alətlər Reload Stylesheet - + Üslub cədvəlini yenidən yükləmək Widget Tree - + Vidjetlər ağacı Debug information - + Sazlama məlumatları Calamares::ExecutionViewStep - + Set up - + Ayarlamaq - + Install - + Quraşdırmaq Calamares::FailJob - + Job failed (%1) - + Tapşırığı yerinə yetirmək mümkün olmadı (%1) - + Programmed job failure was explicitly requested. - + Proqramın işi, istifadəçi tərəfindən dayandırıldı. Calamares::JobThread - + Done - + Quraşdırılma başa çatdı Calamares::NamedJob - + Example job (%1) - + Tapşırıq nümunəsi (%1) Calamares::ProcessJob - + Run command '%1' in target system. - + '%1' əmrini hədəf sistemdə başlatmaq. - + Run command '%1'. - + '%1' əmrini başlatmaq. - + Running command %1 %2 - + %1 əmri icra olunur %2 Calamares::PythonJob - + Running %1 operation. - + %1 əməliyyatı icra olunur. - + Bad working directory path - + İş qovluğuna səhv yol - + Working directory %1 for python job %2 is not readable. - + %1 qovluğu %2 python işləri üçün açıla bilmir. - + Bad main script file - + Korlanmış əsas əmrlər faylı - + Main script file %1 for python job %2 is not readable. - + %1 Əsas əmrlər faylı %2 python işləri üçün açıla bilmir. - + Boost.Python error in job "%1". - + Boost.Python iş xətası "%1". @@ -212,41 +212,46 @@ Loading ... - + Yüklənir... QML Step <i>%1</i>. - + QML addımı <i>%1</i>. Loading failed. - + Yüklənmə alınmadı. Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + <i>%1</i>üçün tələblərin yoxlanılması başa çatdı. + - + Waiting for %n module(s). - - - + + %n modul üçün gözləmə. + %n modul(lar) üçün gözləmə. - + (%n second(s)) - - - + + (%n saniyə(lər)) + (%n saniyə(lər)) - + System-requirements checking is complete. - + Sistem uyğunluqları yoxlaması başa çatdı. @@ -254,194 +259,196 @@ Setup Failed - + Quraşdırılma xətası Installation Failed - + Quraşdırılma alınmadı Would you like to paste the install log to the web? - + Quraşdırma jurnalını vebdə yerləşdirmək istəyirsinizmi? Error - + Xəta - + &Yes - + &Bəli - + &No - + &Xeyr &Close - + &Bağlamaq Install Log Paste URL - + Jurnal yerləşdirmə URL-nu daxil etmək The upload was unsuccessful. No web-paste was done. - + Yükləmə uğursuz oldu. Heç nə vebdə daxil edilmədi. Calamares Initialization Failed - + Calamares işə salına bilmədi %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 quraşdırılmadı. Calamares konfiqurasiya edilmiş modulların hamısını yükləyə bilmədi. Bu Calamares'i sizin distribütör tərəfindən necə istifadə edilməsindən asılı olan bir problemdir. <br/>The following modules could not be loaded: - + <br/>Yüklənə bilməyən modullar aşağıdakılardır: - + Continue with setup? - + Quraşdırılma davam etdirilsin? - + Continue with installation? - + Quraşdırılma davam etdirilsin? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + %1 quraşdırıcı proqramı %2 quraşdırmaq üçün Sizin diskdə dəyişiklik etməyə hazırdır.<br/><strong>Bu dəyişikliyi ləğv etmək mümkün olmayacaq.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + %1 quraşdırıcı proqramı %2 quraşdırmaq üçün Sizin diskdə dəyişiklik etməyə hazırdır.<br/><strong>Bu dəyişikliyi ləğv etmək mümkün olmayacaq.</strong> - + &Set up now - + &İndi ayarlamaq - + &Install now - + Q&uraşdırmağa başlamaq - + Go &back - + &Geriyə - + &Set up - + A&yarlamaq - + &Install - + Qu&raşdırmaq - + Setup is complete. Close the setup program. - + Quraşdırma başa çatdı. Quraşdırma proqramını bağlayın. - + The installation is complete. Close the installer. - + Quraşdırma başa çatdı. Quraşdırıcını bağlayın. - + Cancel setup without changing the system. - + Sistemi dəyişdirmədən quraşdırmanı ləğv etmək. - + Cancel installation without changing the system. - + Sistemə dəyişiklik etmədən quraşdırmadan imtina etmək. - + &Next - + İ&rəli - + &Back - + &Geriyə - + &Done - + &Hazır - + &Cancel - + İm&tina etmək - + Cancel setup? - + Quraşdırılmadan imtina edilsin? - + Cancel installation? - + Yüklənmədən imtina edilsin? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Siz doğrudanmı hazırkı quraşdırmadan imtina etmək istəyirsiniz? +Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + Siz doğrudanmı hazırkı yüklənmədən imtina etmək istəyirsiniz? +Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. CalamaresPython::Helper - + Unknown exception type - + Naməlum istisna halı - + unparseable Python error - + görünməmiş python xətası - + unparseable Python traceback - + görünməmiş python izi - + Unfetchable Python error. - + Oxunmayan python xətası. @@ -450,40 +457,41 @@ The installer will quit and all changes will be lost. Install log posted to: %1 - + Quraşdırma jurnalı göndərmə ünvanı: +%1 CalamaresWindow - + Show debug information - + Sazlama məlumatlarını göstərmək - + &Back - + &Geriyə - + &Next - + İ&rəli - + &Cancel - + &İmtina etmək - + %1 Setup Program - + %1 Quraşdırıcı proqram - + %1 Installer - + %1 Quraşdırıcı @@ -491,7 +499,7 @@ The installer will quit and all changes will be lost. Gathering system information... - + Sistem məlumatları toplanır ... @@ -499,12 +507,12 @@ The installer will quit and all changes will be lost. Form - + Format Select storage de&vice: - + Yaddaş ci&hazını seçmək: @@ -512,62 +520,62 @@ The installer will quit and all changes will be lost. Current: - + Cari: After: - + Sonra: <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - + <strong>Əli ilə bölmək</strong><br/>Siz disk sahəsini özünüz bölə və ölçülərini təyin edə bilərsiniz. GPT disk bölmələri cədvəli və <strong>fat32 512Mb /boot bölməsi UEFI sistemi üçün vacibdir.</strong>ya da mövcud bir bölmə varsa onu istifadə edin, və ya başqa birini yaradın. Reuse %1 as home partition for %2. - + %1 Ev bölməsi olaraq %2 üçün istifadə edilsin. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - + <strong>Kiçiltmək üçün bir bölmə seçərək altdakı çübüğü sürüşdürərək ölçüsünü verin</strong> %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. - + %1 %2MB-a qədər azalacaq və %4 üçün yeni bölmə %3MB disk bölməsi yaradılacaq. Boot loader location: - + Ön yükləyici (boot) yeri: <strong>Select a partition to install on</strong> - + <strong>Quraşdırılacaq disk bölməsini seçin</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + EFI sistem bölməsi tapılmadı. Geriyə qayıdın və %1 bölməsini əllə yaradın. The EFI system partition at %1 will be used for starting %2. - + %1 EFI sistemi %2 başlatmaq üçün istifadə olunacaqdır. EFI system partition: - + EFI sistem bölməsi: 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. - + Bu cihazıda əməliyyat sistemi görünmür. Nə etmək istəyərdiniz?<br/>Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. @@ -575,7 +583,7 @@ The installer will quit and all changes will be lost. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>Diski təmizləmək</strong><br/> <font color="red">Silmək</font> hal-hazırda seçilmiş diskdəki bütün verilənləri siləcəkdir. @@ -583,7 +591,7 @@ The installer will quit and all changes will be lost. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>Yanına quraşdırın</strong><br/>Quraşdırıcı, bölməni kiçildərək %1 üçün boş disk sahəsi yaradacaqdır. @@ -591,47 +599,47 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>Bölməni başqası ilə əvəzləmək</strong><br/>Bölməni %1 ilə əvəzləyir. 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. - + Bu cihazda %1 var. Nə etmək istəyirsiniz?<br/>Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. 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. - + Bu cihazda artıq bir əməliyyat sistemi var. Nə etmək istərdiniz?.<br/>Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. 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. - + Bu cihazda bir neçə əməliyyat sistemi mövcuddur. Nə etmək istərdiniz? Bu cihazda dəyişiklik etmədən öncə siz seçiminizi dəqiqləşdirə, dəyişə və təsdiq edə bilərsiniz. No Swap - + Mübadilə bölməsi olmadan Reuse Swap - + Mövcud mübadilə bölməsini istifadə etmək Swap (no Hibernate) - + Mübadilə bölməsi (yuxu rejimi olmadan) Swap (with Hibernate) - + Mübadilə bölməsi (yuxu rejimi ilə) Swap to file - + Mübadilə faylı @@ -639,17 +647,17 @@ The installer will quit and all changes will be lost. Clear mounts for partitioning operations on %1 - + %1-də bölmə əməliyyatı üçün qoşulma nöqtələrini silmək Clearing mounts for partitioning operations on %1. - + %1-də bölmə əməliyyatı üçün qoşulma nöqtələrini silinir. Cleared all mounts for %1 - + %1 üçün bütün qoşulma nöqtələri silindi @@ -657,41 +665,41 @@ The installer will quit and all changes will be lost. Clear all temporary mounts. - + Bütün müvəqqəti qoşulma nöqtələrini ləğv etmək. Clearing all temporary mounts. - + Bütün müvəqqəti qoşulma nöqtələri ləğv edilir. Cannot get list of temporary mounts. - + Müvəqqəti qoşulma nöqtələrinin siyahısı alına bilmədi. Cleared all temporary mounts. - + Bütün müvəqqəti qoşulma nöqtələri ləğv edildi. CommandList - - + + Could not run command. - + Əmri ictra etmək mümkün olmadı. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + Əmr quraşdırı mühitində icra olunur və kök qovluğa yolu bilinməlidir, lakin rootMountPoint aşkar edilmədi. - + The command needs to know the user's name, but no username is defined. - + Əmr üçün istifadəçi adı vacibdir., lakin istifadəçi adı müəyyən edilmədi. @@ -699,92 +707,92 @@ The installer will quit and all changes will be lost. Set keyboard model to %1.<br/> - + Klaviatura modelini %1 olaraq təyin etmək.<br/> Set keyboard layout to %1/%2. - + Klaviatura qatını %1/%2 olaraq təyin etmək. The system language will be set to %1. - + Sistem dili %1 təyin ediləcək. The numbers and dates locale will be set to %1. - + Yerli say və tarix formatı %1 təyin olunacaq. Set timezone to %1/%2.<br/> - + Saat Qurşağını %1/%2 təyin etmək.<br/> Network Installation. (Disabled: Incorrect configuration) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: Səhv tənzimlənmə) Network Installation. (Disabled: Received invalid groups data) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: qruplar haqqında səhv məlumatlar alındı) Network Installation. (Disabled: internal error) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: Daxili xəta) Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Şəbəkə üzərindən quraşdırmaq (Söndürüldü: paket siyahıları qəbul edilmir, şəbəkə bağlantınızı yoxlayın) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + Bu kompüter, %1 quraşdırılması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This program will ask you some questions and set up %2 on your computer. - + Bu proqram sizə bəi suallar verəcək və %2 sizin komputerinizə qurmağa kömək edəcək. - - <h1>Welcome to the Calamares setup program for %1.</h1> - + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>%1 üçün Calamares quraşdırma proqramına xoş gəldiniz!</h1> - - <h1>Welcome to %1 setup.</h1> - + + <h1>Welcome to %1 setup</h1> + <h1>%1 quraşdırmaq üçün xoş gəldiniz</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>%1 üçün Calamares quraşdırıcısına xoş gəldiniz!</h1> - - <h1>Welcome to the %1 installer.</h1> - + + <h1>Welcome to the %1 installer</h1> + <h1>%1 quraşdırıcısına xoş gəldiniz</h1> @@ -792,7 +800,7 @@ The installer will quit and all changes will be lost. Contextual Processes Job - + Şəraitə bağlı proseslərlə iş @@ -800,77 +808,77 @@ The installer will quit and all changes will be lost. Create a Partition - + Bölmə yaratmaq Si&ze: - + Ö&lçüsü: MiB - + MB Partition &Type: - + Bölmənin &növləri: &Primary - + &Əsas E&xtended - + &Genişləndirilmiş Fi&le System: - + Fay&l Sistemi: LVM LV name - + LVM LV adı &Mount Point: - + Qoşul&ma Nöqtəsi: Flags: - + Bayraqlar: En&crypt - + &Şifrələmək Logical - + Məntiqi Primary - + Əsas GPT - + GPT Mountpoint already in use. Please select another one. - + Qoşulma nöqtəsi artıq istifadə olunur. Lütfən başqasını seçin. @@ -878,22 +886,22 @@ The installer will quit and all changes will be lost. Create new %2MiB partition on %4 (%3) with file system %1. - + %1 fayl sistemi ilə %4 (%3)-də yeni %2MB bölmə yaratmaq. Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - + <strong>%1</strong> fayl sistemi ilə <strong>%4</strong> (%3)-də yeni <strong>%2MB</strong> bölmə yaratmaq. Creating new %1 partition on %2. - + %2-də yeni %1 bölmə yaratmaq. The installer failed to create partition on disk '%1'. - + Quraşdırıcı '%1' diskində bölmə yarada bilmədi. @@ -901,27 +909,27 @@ The installer will quit and all changes will be lost. Create Partition Table - + Bölmələr Cədvəli yaratmaq Creating a new partition table will delete all existing data on the disk. - + Bölmələr Cədvəli yaratmaq bütün diskdə olan məlumatların hamısını siləcək. What kind of partition table do you want to create? - + Hansı Bölmə Cədvəli yaratmaq istəyirsiniz? Master Boot Record (MBR) - + Ön yükləmə Bölməsi (MBR) GUID Partition Table (GPT) - + GUID bölmələr cədvəli (GPT) @@ -929,22 +937,22 @@ The installer will quit and all changes will be lost. Create new %1 partition table on %2. - + %2-də yeni %1 bölmələr cədvəli yaratmaq. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - + <strong>%2</strong> (%3)`də yeni <strong>%1</strong> bölmələr cədvəli yaratmaq. Creating new %1 partition table on %2. - + %2-də yeni %1 bölməsi yaratmaq. The installer failed to create a partition table on %1. - + Quraşdırıcı %1-də bölmələr cədvəli yarada bilmədi. @@ -952,37 +960,37 @@ The installer will quit and all changes will be lost. Create user %1 - + %1 İstifadəçi hesabı yaratmaq Create user <strong>%1</strong>. - + <strong>%1</strong> istifadəçi hesabı yaratmaq. Creating user %1. - + %1 istifadəçi hesabı yaradılır. Sudoers dir is not writable. - + Sudoers qovluğu yazıla bilən deyil. Cannot create sudoers file for writing. - + Sudoers faylını yazmaq mümkün olmadı. Cannot chmod sudoers file. - + Sudoers faylına chmod tətbiq etmək mümkün olmadı. Cannot open groups file for reading. - + Groups faylını oxumaq üçün açmaq mümkün olmadı. @@ -990,7 +998,7 @@ The installer will quit and all changes will be lost. Create Volume Group - + Tutumlar qrupu yaratmaq @@ -998,22 +1006,22 @@ The installer will quit and all changes will be lost. Create new volume group named %1. - + %1 adlı yeni tutumlar qrupu yaratmaq. Create new volume group named <strong>%1</strong>. - + <strong>%1</strong> adlı yeni tutumlar qrupu yaratmaq. Creating new volume group named %1. - + %1 adlı yeni tutumlar qrupu yaradılır. The installer failed to create a volume group named '%1'. - + Quraşdırıcı '%1' adlı tutumlar qrupu yarada bilmədi. @@ -1022,17 +1030,17 @@ The installer will quit and all changes will be lost. Deactivate volume group named %1. - + %1 adlı tutumlar qrupu qeyri-aktiv edildi. Deactivate volume group named <strong>%1</strong>. - + <strong>%1</strong> adlı tutumlar qrupunu qeyri-aktiv etmək. The installer failed to deactivate a volume group named %1. - + Quraşdırıcı %1 adlı tutumlar qrupunu qeyri-aktiv edə bilmədi. @@ -1040,22 +1048,22 @@ The installer will quit and all changes will be lost. Delete partition %1. - + %1 bölməsini silmək. Delete partition <strong>%1</strong>. - + <strong>%1</strong> bölməsini silmək. Deleting partition %1. - + %1 bölməsinin silinməsi. The installer failed to delete partition %1. - + Quraşdırıcı %1 bölməsini silə bilmədi. @@ -1063,32 +1071,32 @@ The installer will quit and all changes will be lost. This device has a <strong>%1</strong> partition table. - + Bu cihazda <strong>%1</strong> bölmələr cədvəli var. 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. - + Bu <strong>loop</strong> cihazıdır.<br><br> Bu bölmələr cədvəli olmayan saxta cihaz olub, adi faylları blok cihazı kimi istifadə etməyə imkan yaradır. Bu cür qoşulma adətən yalnız tək fayl sisteminə malik olur. 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. - + Bu quraşdırıcı seçilmiş qurğuda <strong>bölmələr cədvəli aşkar edə bilmədi</strong>.<br><br>Bu cihazda ya bölmələr cədvəli yoxdur, ya bölmələr cədvəli korlanıb, ya da növü naməlumdur.<br>Bu quraşdırıcı bölmələr cədvəlini avtomatik, ya da əllə bölmək səhifəsi vasitəsi ilə yarada bilər. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br>Bu <strong>EFI</strong> ön yükləyici mühiti istifadə edən müasir sistemlər üçün məsləhət görülən bölmələr cədvəli növüdür. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>Bu, <strong>BIOS</strong> ön yükləyici mühiti istifadə edən köhnə sistemlər üçün bölmələr cədvəlidir. Əksər hallarda bunun əvəzinə GPT istifadə etmək daha yaxşıdır. Diqqət:</strong>MBR, köhnəlmiş MS-DOS standartında bölmələr cədvəlidir. <br>Sadəcə 4 <em>ilkin</em> bölüm yaratmağa imkan verir və 4-dən çox bölmədən yalnız biri <em>extended</em> genişləndirilmiş ola bilər, və beləliklə daha çox <em>məntiqi</em> bölmələr yaradıla bilər. 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. - + Seçilmiş cihazda<strong>bölmələr cədvəli</strong> növü.<br><br>Bölmələr cədvəli növünü dəyişdirməyin yeganə yolu, bölmələr cədvəlini sıfırdan silmək və yenidən qurmaqdır, bu da saxlama cihazındakı bütün məlumatları məhv edir.<br>Quraşdırıcı siz başqa bir seçim edənədək bölmələr cədvəlinin cari vəziyyətini saxlayacaqdır.<br>Müasir sistemlər standart olaraq GPT bölümünü istifadə edir. @@ -1097,13 +1105,13 @@ The installer will quit and all changes will be lost. %1 - %2 (%3) device[name] - size[number] (device-node[name]) - + %1 - %2 (%3) %1 - (%2) device[name] - (device-node[name]) - + %1 - (%2) @@ -1111,17 +1119,17 @@ The installer will quit and all changes will be lost. Write LUKS configuration for Dracut to %1 - + %1 -də Dracut üçün LUKS tənzimləməlirini yazmaq Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - + Dracut üçün LUKS tənzimləmələrini yazmağı ötürmək: "/" bölməsi şifrələnmədi Failed to open %1 - + %1 açılmadı @@ -1129,7 +1137,7 @@ The installer will quit and all changes will be lost. Dummy C++ Job - + Dummy C++ Job @@ -1137,57 +1145,57 @@ The installer will quit and all changes will be lost. Edit Existing Partition - + Mövcud bölməyə düzəliş etmək Content: - + Tərkib: &Keep - + &Saxlamaq Format - + Formatlamaq Warning: Formatting the partition will erase all existing data. - + Diqqət: Bölmənin formatlanması ondakı bütün mövcud məlumatları silir. &Mount Point: - + Qoşil&ma nöqtəsi: Si&ze: - + Ol&çü: MiB - + MB Fi&le System: - + Fay&l sistemi: Flags: - + Bayraqlar: Mountpoint already in use. Please select another one. - + Qoşulma nöqtəsi artıq istifadə olunur. Lütfən başqasını seçin. @@ -1195,65 +1203,65 @@ The installer will quit and all changes will be lost. Form - + Forma En&crypt system - + &Şifrələmə sistemi Passphrase - + Şifrə Confirm passphrase - + Şifrəni təsdiq edin Please enter the same passphrase in both boxes. - + Lütfən hər iki sahəyə eyni şifrəni daxil edin. FillGlobalStorageJob - + Set partition information - + Bölmə məlumatlarını ayarlamaq - + Install %1 on <strong>new</strong> %2 system partition. - + %2 <strong>yeni</strong> sistem diskinə %1 quraşdırmaq. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - + %2 <strong>yeni</strong> bölməsini <strong>%1</strong> qoşulma nöqtəsi ilə ayarlamaq. - + Install %2 on %3 system partition <strong>%1</strong>. - + %3dəki <strong>%1</strong> sistem bölməsinə %2 quraşdırmaq. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - + %3 bölməsinə <strong>%1</strong> ilə <strong>%2</strong> qoşulma nöqtəsi ayarlamaq. - + Install boot loader on <strong>%1</strong>. - + Ön yükləyicini <strong>%1</strong>də quraşdırmaq. - + Setting up mount points. - + Qoşulma nöqtəsini ayarlamaq. @@ -1261,70 +1269,70 @@ The installer will quit and all changes will be lost. Form - + Formatlamaq &Restart now - + &Yenidən başlatmaq - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <h1>Hər şey hazırdır.</h1><br/>%1 sizin kopyuterə qurulacaqdır.<br/>Siz indi yeni sisteminizi başlada bilərsiniz. - + <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 setup program.</p></body></html> - + <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcı proqramı bağladığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> - + <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>Hər şey hazırdır.</h1><br/>%1 sizin kompyuterinizə quraşdırıldı.<br/>Siz yenidən başladaraq yeni sisteminizə daxil ola və ya %2 Canlı mühitini istifadə etməyə davam edə bilərsiniz. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcınıı bağladığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. FinishedViewStep - + Finish - + Son - + Setup Complete - + Quraşdırma tamamlandı - + Installation Complete - + Quraşdırma tamamlandı - + The setup of %1 is complete. - + %1 quraşdırmaq başa çatdı. - + The installation of %1 is complete. - + %1in quraşdırılması başa çatdı. @@ -1332,95 +1340,95 @@ The installer will quit and all changes will be lost. Format partition %1 (file system: %2, size: %3 MiB) on %4. - + %4-də %1 bölməsini format etmək (fayl sistemi: %2, ölçüsü: %3 MB). Format <strong>%3MiB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - + <strong>%3MB</strong> bölməsini <strong>%2</strong> fayl sistemi ilə <strong>%1</strong> formatlamaq. Formatting partition %1 with file system %2. - + %1 bölməsini %2 fayl sistemi ilə formatlamaq. The installer failed to format partition %1 on disk '%2'. - + Quraşdırıcı '%2' diskində %1 bölməsini formatlaya bilmədi. GeneralRequirements - + has at least %1 GiB available drive space - + ən az %1 QB disk boş sahəsi var - + There is not enough drive space. At least %1 GiB is required. - + Kifayət qədər disk sahəsi yoxdur. əƏn azı %1 QB tələb olunur. - + has at least %1 GiB working memory - + ən azı %1 QB iş yaddaşı var - + The system does not have enough working memory. At least %1 GiB is required. - + Sistemdə kifayət qədər iş yaddaşı yoxdur. Ən azı %1 GiB tələb olunur. - + is plugged in to a power source - + enerji mənbəyi qoşuludur - + The system is not plugged in to a power source. - + enerji mənbəyi qoşulmayıb. - + is connected to the Internet - + internetə qoşuludur - + The system is not connected to the Internet. - + Sistem internetə qoşulmayıb. - + is running the installer as an administrator (root) - + quraşdırıcı adminstrator (root) imtiyazları ilə başladılması - + The setup program is not running with administrator rights. - + Quraşdırıcı adminstrator imtiyazları ilə başladılmayıb. - + The installer is not running with administrator rights. - + Quraşdırıcı adminstrator imtiyazları ilə başladılmayıb. - + has a screen large enough to show the whole installer - + quraşdırıcını tam göstərmək üçün ekran kifayət qədər genişdir - + The screen is too small to display the setup program. - + Quraşdırıcı proqramı göstərmək üçün ekran çox kiçikdir. - + The screen is too small to display the installer. - + Bu quarşdırıcını göstəmək üçün ekran çox kiçikdir. @@ -1428,7 +1436,7 @@ The installer will quit and all changes will be lost. Collecting information about your machine. - + Komputeriniz haqqında məlumat toplanması. @@ -1439,22 +1447,22 @@ The installer will quit and all changes will be lost. OEM Batch Identifier - + OEM toplama identifikatoru Could not create directories <code>%1</code>. - + <code>%1</code> qovluğu yaradılmadı. Could not open file <code>%1</code>. - + <code>%1</code> faylı açılmadı. Could not write to file <code>%1</code>. - + <code>%1</code> faylına yazılmadı. @@ -1462,7 +1470,7 @@ The installer will quit and all changes will be lost. Creating initramfs with mkinitcpio. - + mkinitcpio köməyi ilə initramfs yaradılması. @@ -1470,7 +1478,7 @@ The installer will quit and all changes will be lost. Creating initramfs. - + initramfs yaradılması. @@ -1478,17 +1486,17 @@ The installer will quit and all changes will be lost. Konsole not installed - + Konsole quraşdırılmayıb Please install KDE Konsole and try again! - + Lütfən KDE Konsole tətbiqini quraşdırın və yenidən cəhd edin! Executing script: &nbsp;<code>%1</code> - + Ssenari icra olunur. &nbsp;<code>%1</code> @@ -1496,7 +1504,7 @@ The installer will quit and all changes will be lost. Script - + Ssenari @@ -1504,12 +1512,12 @@ The installer will quit and all changes will be lost. Set keyboard model to %1.<br/> - + Klaviatura modelini %1 olaraq təyin etmək.<br/> Set keyboard layout to %1/%2. - + Klaviatura qatını %1/%2 olaraq təyin etmək. @@ -1517,7 +1525,7 @@ The installer will quit and all changes will be lost. Keyboard - + Klaviatura @@ -1525,7 +1533,7 @@ The installer will quit and all changes will be lost. Keyboard - + Klaviatura @@ -1533,22 +1541,22 @@ The installer will quit and all changes will be lost. System locale setting - + Ümumi məkan ayarları 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>. - + Ümumi məkan ayarları, əmrlər sətiri interfeysinin ayrıca elementləri üçün dil və kodlaşmaya təsir edir. <br/>Hazırkı seçim <strong>%1</strong>. &Cancel - + İm&tina etmək &OK - + &OK @@ -1556,42 +1564,42 @@ The installer will quit and all changes will be lost. Form - + Format <h1>License Agreement</h1> - + <h1>Lisenziya razılaşması</h1> I accept the terms and conditions above. - + Mən yuxarıda göstərilən şərtləri qəbul edirəm. Please review the End User License Agreements (EULAs). - + Lütfən lisenziya razılaşması (EULA) ilə tanış olun. This setup procedure will install proprietary software that is subject to licensing terms. - + Bu quraşdırma proseduru lisenziya şərtlərinə tabe olan xüsusi proqram təminatını quraşdıracaqdır. If you do not agree with the terms, the setup procedure cannot continue. - + Lisenziya razılaşmalarını qəbul etməsəniz quraşdırılma davam etdirilə bilməz. This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Bu quraşdırma proseduru, əlavə xüsusiyyətlər təmin etmək və istifadəçi təcrübəsini artırmaq üçün lisenziyalaşdırma şərtlərinə tabe olan xüsusi proqram təminatını quraşdıra bilər. If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Şərtlərlə razılaşmasanız, xüsusi proqram quraşdırılmayacaq və bunun əvəzinə açıq mənbə kodu ilə alternativlər istifadə ediləcəkdir. @@ -1599,7 +1607,7 @@ The installer will quit and all changes will be lost. License - + Lisenziya @@ -1607,59 +1615,59 @@ The installer will quit and all changes will be lost. URL: %1 - + URL: %1 <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 sürücü</strong>%2 tərəfindən <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 grafik sürücü</strong><br/><font color="Grey">%2 tərəfindən</font> <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 brauzer əlavəsi</strong><br/><font color="Grey">%2 tərəfindən</font> <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 kodek</strong><br/><font color="Grey">%2 tərəfindən</font> <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1 paket</strong><br/><font color="Grey">%2 ərəfindən</font> <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">%2 ərəfindən</font> File: %1 - + %1 faylı Hide license text - + Lisenziya mətnini gizlətmək Show the license text - + Lisenziya mətnini göstərmək Open license agreement in browser. - + Lisenziya razılaşmasını brauzerdə açmaq. @@ -1667,33 +1675,33 @@ The installer will quit and all changes will be lost. Region: - + Məkan: Zone: - + Zona: &Change... - + &Dəyişmək... The system language will be set to %1. - + Sistem dili %1 təyin ediləcək. The numbers and dates locale will be set to %1. - + Yerli nömrə və tarix formatı %1 təyin olunacaq. Set timezone to %1/%2.<br/> - + Saat Qurşağını %1/%2 təyin etmək.<br/> @@ -1701,7 +1709,7 @@ The installer will quit and all changes will be lost. Location - + Məkan @@ -1709,7 +1717,7 @@ The installer will quit and all changes will be lost. Location - + Məkan @@ -1717,35 +1725,35 @@ The installer will quit and all changes will be lost. Configuring LUKS key file. - + LUKS düymə faylını ayarlamaq. No partitions are defined. - + Heç bir bölmə müəyyən edilməyib. Encrypted rootfs setup error - + Kök fayl sisteminin şifrələnməsi xətası Root partition %1 is LUKS but no passphrase has been set. - + %1 Kök bölməsi LUKS-dur lakin, şifrə təyin olunmayıb. Could not create LUKS key file for root partition %1. - + %1 kök bölməsi üçün LUKS düymə faylı yaradılmadı. Could not configure LUKS key file on partition %1. - + %1 bölməsində LUKS düymə faylı tənzimlənə bilmədi. @@ -1753,17 +1761,29 @@ The installer will quit and all changes will be lost. Generate machine-id. - + Komputerin İD-ni yaratmaq. Configuration Error - + Tənzimləmə xətası No root mount point is set for MachineId. - + Komputer İD-si üçün kök qoşulma nöqtəsi təyin edilməyib. + + + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Lütfən, xəritədə üstünlük verdiyiniz yeri seçin, belə ki, quraşdırıcı sizin üçün yerli + və saat qurşağı parametrlərini təklif edə bilər. Aşağıda təklif olunan parametrləri dəqiq tənzimləyə bilərsiniz. Xəritəni sürüşdürərək axtarın. + miqyası dəyişmək üçün +/- düymələrindən və ya siçanla sürüşdürmə çubuğundan istifadə etmək. @@ -1772,97 +1792,97 @@ The installer will quit and all changes will be lost. Package selection - + Paket seçimi Office software - + Ofis proqramı Office package - + Ofis paketi Browser software - + Veb bələdçi proqramı Browser package - + Veb bələdçi paketi Web browser - + Veb bələdçi Kernel - + Nüvə Services - + Xidmətlər Login - + Giriş Desktop - + İş Masası Applications - + Tətbiqlər Communication - + Rabitə Development - + Tərtibat Office - + Ofis Multimedia - + Multimediya Internet - + Internet Theming - + Mövzular, Temalar Gaming - + Oyun Utilities - + Vasitələr, Alətlər @@ -1870,7 +1890,7 @@ The installer will quit and all changes will be lost. Notes - + Qeydlər @@ -1878,17 +1898,17 @@ The installer will quit and all changes will be lost. Ba&tch: - + Dəs&tə: <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> - + <html><head/><body><p>Dəstənin isentifikatorunu bura daxil edin. Bu hədəf sistemində saxlanılacaq.</p></body></html> <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> - + <html><head/><body><h1>OEM tənzimləmələri</h1><p>Calamares hədəf sistemini tənzimləyərkən OEM ayarlarını istifadə edəcək.</p></body></html> @@ -1896,12 +1916,25 @@ The installer will quit and all changes will be lost. OEM Configuration - + OEM tənzimləmələri Set the OEM Batch Identifier to <code>%1</code>. - + OEM Dəstəsi identifikatorunu <code>%1</code>-ə ayarlamaq. + + + + Offline + + + Timezone: %1 + Saat qurşağı: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Saat qurşağının seçilə bilməsi üçün internetə qoşulduğunuza əmin olun. İnternetə qoşulduqdan sonra quraşdırıcını yenidən başladın. Aşağıdakı Dil və Yer parametrlərini dəqiq tənzimləyə bilərsiniz. @@ -1909,247 +1942,247 @@ The installer will quit and all changes will be lost. Password is too short - + Şifrə çox qısadır Password is too long - + Şifrə çox uzundur Password is too weak - + Şifrə çox zəifdir Memory allocation error when setting '%1' - + '%1' ayarlanarkən yaddaş bölgüsü xətası Memory allocation error - + Yaddaş bölgüsü xətası The password is the same as the old one - + Şifrə köhnə şifrə ilə eynidir The password is a palindrome - + Şifrə tərsinə oxunuşu ilə eynidir The password differs with case changes only - + Şifrə yalnız hal dəyişiklikləri ilə fərqlənir The password is too similar to the old one - + Şifrə köhnə şifrə ilə çox oxşardır The password contains the user name in some form - + Şifrənin tərkibində istifadəçi adı var The password contains words from the real name of the user in some form - + Şifrə istifadəçinin əsl adına oxşar sözlərdən ibarətdir The password contains forbidden words in some form - + Şifrə qadağan edilmiş sözlərdən ibarətdir The password contains less than %1 digits - + Şifrə %1-dən az rəqəmdən ibarətdir The password contains too few digits - + Şifrə çox az rəqəmdən ibarətdir The password contains less than %1 uppercase letters - + Şifrə %1-dən az böyük hərfdən ibarətdir The password contains too few uppercase letters - + Şifrə çox az böyük hərflərdən ibarətdir The password contains less than %1 lowercase letters - + Şifrə %1-dən az kiçik hərflərdən ibarətdir The password contains too few lowercase letters - + Şifrə çox az kiçik hərflərdən ibarətdir The password contains less than %1 non-alphanumeric characters - + Şifrə %1-dən az alfasayısal olmayan simvollardan ibarətdir The password contains too few non-alphanumeric characters - + Şifrə çox az alfasayısal olmayan simvollardan ibarətdir The password is shorter than %1 characters - + Şifrə %1 simvoldan qısadır The password is too short - + Şifrə çox qısadır The password is just rotated old one - + Yeni şifrə sadəcə olaraq tərsinə çevirilmiş köhnəsidir The password contains less than %1 character classes - + Şifrə %1-dən az simvol sinifindən ibarətdir The password does not contain enough character classes - + Şifrənin tərkibində kifayət qədər simvol sinifi yoxdur The password contains more than %1 same characters consecutively - + Şifrə ardıcıl olaraq %1-dən çox eyni simvollardan ibarətdir The password contains too many same characters consecutively - + Şifrə ardıcıl olaraq çox oxşar simvollardan ibarətdir The password contains more than %1 characters of the same class consecutively - + Şifrə ardıcıl olaraq eyni sinifin %1-dən çox simvolundan ibarətdir The password contains too many characters of the same class consecutively - + Şifrə ardıcıl olaraq eyni sinifin çox simvolundan ibarətdir The password contains monotonic sequence longer than %1 characters - + Şifrə %1 simvoldan uzun olan monoton ardıcıllıqdan ibarətdir The password contains too long of a monotonic character sequence - + Şifrə çox uzun monoton simvollar ardıcıllığından ibarətdir No password supplied - + Şifrə verilməyib Cannot obtain random numbers from the RNG device - + RNG cihazından təsadüfi nömrələr əldə etmək olmur Password generation failed - required entropy too low for settings - + Şifrə yaratma uğursuz oldu - ayarlar üçün tələb olunan entropiya çox aşağıdır The password fails the dictionary check - %1 - + Şifrənin lüğət yoxlaması alınmadı - %1 The password fails the dictionary check - + Şifrənin lüğət yoxlaması alınmadı Unknown setting - %1 - + Naməlum ayarlar - %1 Unknown setting - + Naməlum ayarlar Bad integer value of setting - %1 - + Ayarın pozulmuş tam dəyəri - %1 Bad integer value - + Pozulmuş tam dəyər Setting %1 is not of integer type - + %1 -i ayarı tam say deyil Setting is not of integer type - + Ayar tam say deyil Setting %1 is not of string type - + %1 ayarı sətir deyil Setting is not of string type - + Ayar sətir deyil Opening the configuration file failed - + Tənzəmləmə faylının açılması uğursuz oldu The configuration file is malformed - + Tənzimləmə faylı qüsurludur Fatal failure - + Ciddi qəza Unknown error - + Naməlum xəta Password is empty - + Şifrə böşdur @@ -2157,32 +2190,32 @@ The installer will quit and all changes will be lost. Form - + Format Product Name - + Məhsulun adı TextLabel - + Mətn nişanı Long Product Description - + Məhsulun uzun təsviri Package Selection - + Paket seçimi Please pick a product from the list. The selected product will be installed. - + Lütfən məhsulu siyahıdan seçin. Seçilmiş məhsul quraşdırılacaqdır. @@ -2190,7 +2223,7 @@ The installer will quit and all changes will be lost. Packages - + Paketlər @@ -2198,12 +2231,12 @@ The installer will quit and all changes will be lost. Name - + Adı Description - + Təsviri @@ -2211,17 +2244,17 @@ The installer will quit and all changes will be lost. Form - + Format Keyboard Model: - + Klaviatura modeli: Type here to test your keyboard - + Buraya yazaraq klaviaturanı yoxlayın @@ -2229,96 +2262,96 @@ The installer will quit and all changes will be lost. Form - + Format What is your name? - + Adınız nədir? Your Full Name - + Tam adınız What name do you want to use to log in? - + Giriş üçün hansı adı istifadə etmək istəyirsiniz? login - + giriş What is the name of this computer? - + Bu kompyuterin adı nədir? <small>This name will be used if you make the computer visible to others on a network.</small> - + <small>Əgər kompyuterinizi şəbəkə üzərindən görünən etsəniz, bu ad istifadə olunacaq.</small> Computer Name - + Kompyuterin adı Choose a password to keep your account safe. - + Hesabınızın təhlükəsizliyi üçün şifrə seçin. <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> - + <small>Səhvsiz yazmaq üçün eyni şifrəni iki dəfə daxil edin. Yaxşı bir şifrə, hərflərin, nömrələrin və durğu işarələrinin qarışığından və ən azı səkkiz simvoldan ibarət olmalıdır, həmçinin müntəzəm olaraq dəyişdirilməlidir.</small> Password - + Şifrə Repeat Password - + Şifrənin təkararı When this box is checked, password-strength checking is done and you will not be able to use a weak password. - + Bu qutu işarələndikdə, şifrənin etibarlıq səviyyəsi yoxlanılır və siz zəif şifrədən istifadə edə bilməyəcəksiniz. Require strong passwords. - + Güclü şifrələr tələb edilir. Log in automatically without asking for the password. - + Şifrə soruşmadan sistemə avtomatik daxil olmaq. Use the same password for the administrator account. - + İdarəçi hesabı üçün eyni şifrədən istifadə etmək. Choose a password for the administrator account. - + İdarəçi hesabı üçün şifrəni seçmək. <small>Enter the same password twice, so that it can be checked for typing errors.</small> - + <small>Səhvsiz yazmaq üçün eyni şifrəni iki dəfə daxil edin</small> @@ -2326,43 +2359,43 @@ The installer will quit and all changes will be lost. Root - + Root Home - + Home Boot - + Boot EFI system - + EFI sistemi Swap - + Swap - Mübadilə New partition for %1 - + %1 üçün yeni bölmə New partition - + Yeni bölmə %1 %2 size[number] filesystem[name] - + %1 %2 @@ -2371,33 +2404,33 @@ The installer will quit and all changes will be lost. Free Space - + Boş disk sahəsi New partition - + Yeni bölmə Name - + Adı File System - + Fayl sistemi Mount Point - + Qoşulma nöqtəsi Size - + Ölçüsü @@ -2405,77 +2438,78 @@ The installer will quit and all changes will be lost. Form - + Format Storage de&vice: - + Yaddaş qurğu&su: &Revert All Changes - + Bütün dəyişiklikləri &geri qaytarmaq New Partition &Table - + Yeni bölmələr &cədvəli Cre&ate - + Yar&atmaq &Edit - + Düzəliş &etmək &Delete - + &Silmək New Volume Group - + Yeni tutum qrupu Resize Volume Group - + Tutum qrupunun ölçüsünü dəyişmək Deactivate Volume Group - + Tutum qrupunu deaktiv etmək Remove Volume Group - + Tutum qrupunu silmək I&nstall boot loader on: - + Ön yükləy&icinin quraşdırılma yeri: Are you sure you want to create a new partition table on %1? - + %1-də yeni bölmə yaratmaq istədiyinizə əminsiniz? Can not create new partition - + Yeni bölmə yaradıla bilmir 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. - + %1 üzərindəki bölmə cədvəlində %2 birinci disk bölümü var və artıq əlavə edilə bilməz. +Lütfən bir birinci disk bölümünü çıxarın və əvəzinə genişləndirilmiş bölmə əlavə edin. @@ -2483,117 +2517,117 @@ The installer will quit and all changes will be lost. Gathering system information... - + Sistem məlumatları toplanır ... Partitions - + Bölmələr - + Install %1 <strong>alongside</strong> another operating system. - + Digər əməliyyat sistemini %1 <strong>yanına</strong> quraşdırmaq. - + <strong>Erase</strong> disk and install %1. - + Diski <strong>çıxarmaq</strong> və %1 quraşdırmaq. - + <strong>Replace</strong> a partition with %1. - + Bölməni %1 ilə <strong>əvəzləmək</strong>. - + <strong>Manual</strong> partitioning. - + <strong>Əl ilə</strong> bölüşdürmə. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>%2</strong> (%3) diskində başqa əməliyyat sistemini %1 <strong>yanında</strong> quraşdırmaq. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>%2</strong> (%3) diskini <strong>çıxartmaq</strong> və %1 quraşdırmaq. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>%2</strong> (%3) diskində bölməni %1 ilə <strong>əvəzləmək</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + <strong>%1</strong> (%2) diskində <strong>əl ilə</strong> bölüşdürmə. - + Disk <strong>%1</strong> (%2) - + <strong>%1</strong> (%2) diski - + Current: - + Cari: - + After: - + Sonra: - + No EFI system partition configured - + EFI sistemi bölməsi tənzimlənməyib - + 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>%3</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. - + EFİ sistemi bölməsi, %1 başlatmaq üçün vacibdir. <br/><br/>EFİ sistemi bölməsini yaratmaq üçün geriyə qayıdın və aktiv edilmiş<strong>%3</strong> bayrağı və <strong>%2</strong> qoşulma nöqtəsi ilə FAT32 fayl sistemi seçin və ya yaradın.<br/><br/>Siz EFİ sistemi bölməsi yaratmadan da davam edə bilərsiniz, lakin bu halda sisteminiz açılmaya bilər. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + %1 başlatmaq üçün EFİ sistem bölməsi vacibdir.<br/><br/>Bölmə <strong>%2</strong> qoşulma nöqtəsi ilə yaradılıb, lakin onun <strong>%3</strong> bayrağı seçilməyib.<br/>Bayrağı seçmək üçün geriyə qayıdın və bölməyə süzəliş edin.<br/><br/>Siz bayrağı seçmədən də davam edə bilərsiniz, lakin bu halda sisteminiz açılmaya bilər. - + EFI system partition flag not set - + EFİ sistem bölməsi bayraqı seçilməyib - + Option to use GPT on BIOS - + BIOS-da GPT istifadəsi seçimi - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + GPT bölmə cədvəli bütün sistemlər üçün yaxşıdır. Bu quraşdırıcı BIOS sistemləri üçün də belə bir quruluşu dəstəkləyir.<br/><br/>BİOS-da GPT bölmələr cədvəlini ayarlamaq üçün (əgər bu edilməyibsə) geriyə qayıdın və bölmələr cədvəlini GPT-yə qurun, sonra isə <strong>bios_grub</strong> bayrağı seçilmiş 8 MB-lıq formatlanmamış bölmə yaradın.<br/><br/>8 MB-lıq formatlanmamış bölmə GPT ilə BİOS sistemində %1 başlatmaq üçün lazımdır. - + Boot partition not encrypted - + Ön yükləyici bölməsi çifrələnməyib - + 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. - + Şifrəli bir kök bölməsi ilə birlikdə ayrı bir ön yükləyici bölməsi qurulub, ancaq ön yükləyici bölməsi şifrələnməyib.<br/><br/>Bu cür quraşdırma ilə bağlı təhlükəsizlik problemləri olur, çünki vacib sistem sənədləri şifrəsiz bölmədə saxlanılır.<br/>İstəyirsinizsə davam edə bilərsiniz, lakin, fayl sisteminin kilidi, sistem başladıldıqdan daha sonra açılacaqdır.<br/>Yükləmə hissəsini şifrələmək üçün geri qayıdın və bölmə yaratma pəncərəsində <strong>Şifrələmə</strong> menyusunu seçərək onu yenidən yaradın. - + has at least one disk device available. - + ən az bir disk qurğusu mövcuddur. - + There are no partitions to install on. - + Quraşdırmaq üçün bölmə yoxdur. @@ -2601,13 +2635,13 @@ The installer will quit and all changes will be lost. Plasma Look-and-Feel Job - + Plasma Xarici Görünüş Mövzusu İşləri Could not select KDE Plasma Look-and-Feel package - + KDE Plasma Xarici Görünüş paketinin seçilməsi @@ -2615,17 +2649,17 @@ The installer will quit and all changes will be lost. Form - + Format 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. - + Lütfən, KDE Plasma İş Masası üçün Xarici Görünüşü seçin. Siz həmçinin bu mərhələni ötürə və sistem qurulduqdan sonra Plasma xarici görünüşünü ayarlaya bilərsiniz. Xarici Görünüşə klikləməniz onun canlı görüntüsünü sizə göstərəcəkdir. 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. - + Lütfən, KDE Plasma İş Masası üçün Xarici Görünüşü seçin. Siz həmçinin bu mərhələni ötürə və sistem qurulduqdan sonra Plasma xarici görünüşünü ayarlaya bilərsiniz. Xarici Görünüşə klikləməniz onun canlı görüntüsünü sizə göstərəcəkdir. @@ -2633,7 +2667,7 @@ The installer will quit and all changes will be lost. Look-and-Feel - + Xarici Görünüş @@ -2641,127 +2675,125 @@ The installer will quit and all changes will be lost. Saving files for later ... - + Fayllar daha sonra saxlanılır... No files configured to save for later. - + Sonra saxlamaq üçün heç bir ayarlanan fayl yoxdur. Not all of the configured files could be preserved. - + Ayarlanan faylların hamısı saxlanıla bilməz. ProcessResult - + There was no output from the command. - + +Əmrlərdən çıxarış alınmadı. - + Output: - + +Çıxarış: + - + External command crashed. - + Xarici əmr qəzası baş verdi. - + Command <i>%1</i> crashed. - + <i>%1</i> əmrində qəza baş verdi. - + External command failed to start. - + Xarici əmr başladıla bilmədi. - + Command <i>%1</i> failed to start. - + <i>%1</i> əmri əmri başladıla bilmədi. - + Internal error when starting command. - + Əmr başlayarkən daxili xəta. - + Bad parameters for process job call. - + İş prosesini çağırmaq üçün xətalı parametr. - + External command failed to finish. - + Xarici əmr başa çatdırıla bilmədi. - + Command <i>%1</i> failed to finish in %2 seconds. - + <i>%1</i> əmrini %2 saniyədə başa çatdırmaq mümkün olmadı. - + External command finished with errors. - + Xarici əmr xəta ilə başa çatdı. - + Command <i>%1</i> finished with exit code %2. - + <i>%1</i> əmri %2 xəta kodu ilə başa çatdı. QObject - + %1 (%2) - - - - - Requirements checking for module <i>%1</i> is complete. - + %1 (%2) - + unknown - + naməlum - + extended - + genişləndirilmiş - + unformatted - + format olunmamış - + swap - + mübadilə Default Keyboard Model - + Standart Klaviatura Modeli Default - + Standart @@ -2769,37 +2801,47 @@ Output: File not found - + Fayl tapılmadı Path <pre>%1</pre> must be an absolute path. - + <pre>%1</pre> yolu mütləq bir yol olmalıdır. Could not create new random file <pre>%1</pre>. - + Yeni təsadüfi<pre>%1</pre> faylı yaradıla bilmir. No product - + Məhsul yoxdur No description provided. - + Təsviri verilməyib. (no mount point) - + (qoşulma nöqtəsi yoxdur) Unpartitioned space or unknown partition table - + Bölünməmiş disk sahəsi və ya naməlum bölmələr cədvəli + + + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. + <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər.</p> @@ -2807,7 +2849,7 @@ Output: Remove live user from target system - + Canlı istifadəçini hədəf sistemindən silmək @@ -2816,17 +2858,17 @@ Output: Remove Volume Group named %1. - + %1 adlı Tutum Qrupunu silmək. Remove Volume Group named <strong>%1</strong>. - + <strong>%1</strong> adlı Tutum Qrupunu silmək. The installer failed to remove a volume group named '%1'. - + Quraşdırıcı "%1" adlı tutum qrupunu silə bilmədi. @@ -2834,74 +2876,91 @@ Output: Form - + Format - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - + %1 quraşdırmaq yerini seşmək.<br/><font color="red">Diqqət!</font>bu seçilmiş bölmədəki bütün faylları siləcək. - + The selected item does not appear to be a valid partition. - + Seçilmiş element etibarlı bir bölüm kimi görünmür. - + %1 cannot be installed on empty space. Please select an existing partition. - + %1 böş disk sahəsinə quraşdırıla bilməz. Lütfən mövcüd bölməni seçin. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - + %1 genişləndirilmiş bölməyə quraşdırıla bilməz. Lütfən, mövcud birinci və ya məntiqi bölməni seçin. - + %1 cannot be installed on this partition. - + %1 bu bölməyə quraşdırıla bilməz. - + Data partition (%1) - + Verilənlər bölməsi (%1) - + Unknown system partition (%1) - + Naməlum sistem bölməsi (%1) - + %1 system partition (%2) - + %1 sistem bölməsi (%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>%4</strong><br/><br/>%1 Bölməsi %2 üçün çox kiçikdir. Lütfən, ən azı %3 QB həcmində olan bölməni seçin. - + <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>%2</strong><br/><br/>EFI sistem bölməsi bu sistemin heç bir yerində tapılmadı. Lütfən, geri qayıdın və %1 təyin etmək üçün əl ilə bu bölməni yaradın. - - - + + + <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, %2.bölməsində quraşdırılacaq.<br/><font color="red">Diqqət: </font>%2 bölməsindəki bütün məlumatlar itiriləcək. - + The EFI system partition at %1 will be used for starting %2. - + %1 EFI sistemi %2 başlatmaq üçün istifadə olunacaqdır. - + EFI system partition: - + EFI sistem bölməsi: + + + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/> + Quraşdırılma davam etdirilə bilməz. </p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. + <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər.</p> @@ -2909,27 +2968,27 @@ Output: Resize Filesystem Job - + Fayl sisteminin ölçüsünü dəyişmək Invalid configuration - + Etibarsız Tənzimləmə The file-system resize job has an invalid configuration and will not run. - + Fayl sisteminin ölçüsünü dəyişmək işinin tənzimlənməsi etibarsızdır və baçladıla bilməz. KPMCore not Available - + KPMCore mövcud deyil Calamares cannot start KPMCore for the file-system resize job. - + Calamares bu fayl sisteminin ölçüsünü dəyişmək üçün KPMCore proqramını işə sala bilmir. @@ -2938,39 +2997,39 @@ Output: Resize Failed - + Ölçüsünü dəyişmə alınmadı The filesystem %1 could not be found in this system, and cannot be resized. - + %1 fayl sistemi bu sistemdə tapılmadı və ölçüsü dəyişdirilə bilmədi. The device %1 could not be found in this system, and cannot be resized. - + %1 qurğusu bu sistemdə tapılmadı və ölçüsü dəyişdirilə bilməz. The filesystem %1 cannot be resized. - + %1 fayl sisteminin ölçüsü dəyişdirilə bilmədi. The device %1 cannot be resized. - + %1 qurğusunun ölçüsü dəyişdirilə bilmədi. The filesystem %1 must be resized, but cannot. - + %1 fayl sisteminin ölçüsü dəyişdirilməlidir, lakin bu mümkün deyil. The device %1 must be resized, but cannot - + %1 qurğusunun ölçüsü dəyişdirilməlidir, lakin, bu mümkün deyil @@ -2978,22 +3037,22 @@ Output: Resize partition %1. - + %1 bölməsinin ölçüsünü dəyişmək. Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. - + <strong>%2MB</strong> <strong>%1</strong> bölməsinin ölçüsünü <strong>%3MB</strong>-a dəyişmək. Resizing %2MiB partition %1 to %3MiB. - + %2 MB %1 bölməsinin ölçüsünü %3MB-a dəyişmək. The installer failed to resize partition %1 on disk '%2'. - + Quraşdırıcı %1 bölməsinin ölçüsünü "%2" diskində dəyişə bilmədi. @@ -3001,7 +3060,7 @@ Output: Resize Volume Group - + Tutum qrupunun ölçüsünü dəyişmək @@ -3010,58 +3069,58 @@ Output: Resize volume group named %1 from %2 to %3. - + %1 adlı tutum qrupunun ölçüsünü %2-dən %3-ə dəyişmək. Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. - + <strong>%1</strong> adlı tutum qrupunun ölçüsünü <strong>%2</strong>-dən strong>%3</strong>-ə dəyişmək. The installer failed to resize a volume group named '%1'. - + Quraşdırıcı "%1" adlı tutum qrupunun ölçüsünü dəyişə bilmədi. ResultsListDialog - + For best results, please ensure that this computer: - + Ən yaşxı nəticə üçün lütfən, əmin olun ki, bu kompyuter: - + System requirements - + Sistem tələbləri ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilməz. <a href="#details">Ətraflı məlumatlar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + Bu kompüter %1 qurulması üçün minimum tələblərə cavab vermir. <br/>Quraşdırılma davam etdirilə bilər, lakin bəzi imkanları əlçatmaz ola bilər. - + This program will ask you some questions and set up %2 on your computer. - + Bu proqram sizə bəi suallar verəcək və %2 sizin komputerinizə qurmağa kömək edəcək. @@ -3069,12 +3128,12 @@ Output: Scanning storage devices... - + Yaddaş qurğusu axtarılır... Partitioning - + Bölüşdürmə @@ -3082,29 +3141,29 @@ Output: Set hostname %1 - + %1 host adı təyin etmək Set hostname <strong>%1</strong>. - + <strong>%1</strong> host adı təyin etmək. Setting hostname %1. - + %1 host adının ayarlanması. Internal Error - + Daxili Xəta Cannot write hostname to target system - + Host adı hədəf sistemə yazıla bilmədi @@ -3112,29 +3171,29 @@ Output: Set keyboard model to %1, layout to %2-%3 - + Klaviatura modeliini %1, qatını isə %2-%3 təyin etmək Failed to write keyboard configuration for the virtual console. - + Virtual konsol üçün klaviatura tənzimləmələrini yazmaq mümkün olmadı. Failed to write to %1 - + %1-ə yazmaq mümkün olmadı Failed to write keyboard configuration for X11. - + X11 üçün klaviatura tənzimləmələrini yazmaq mümükün olmadı. Failed to write keyboard configuration to existing /etc/default directory. - + Klaviatura tənzimləmələri möcvcud /etc/default qovluğuna yazıla bilmədi. @@ -3142,82 +3201,82 @@ Output: Set flags on partition %1. - + %1 bölməsində bayraqlar qoymaq. Set flags on %1MiB %2 partition. - + %1 MB %2 bölməsində bayraqlar qoymaq. Set flags on new partition. - + Yeni bölmədə bayraq qoymaq. Clear flags on partition <strong>%1</strong>. - + <strong>%1</strong> bölməsindəki bayraqları ləğv etmək. Clear flags on %1MiB <strong>%2</strong> partition. - + %1MB <strong>%2</strong> bölməsindəki bayraqları ləğv etmək. Clear flags on new partition. - + Yeni bölmədəki bayraqları ləğv etmək. Flag partition <strong>%1</strong> as <strong>%2</strong>. - + <strong>%1</strong> bölməsini <strong>%2</strong> kimi bayraqlamaq. Flag %1MiB <strong>%2</strong> partition as <strong>%3</strong>. - + %1MB <strong>%2</strong> bölməsini <strong>%3</strong> kimi bayraqlamaq. Flag new partition as <strong>%1</strong>. - + Yeni bölməni <strong>%1</strong> kimi bayraqlamaq. Clearing flags on partition <strong>%1</strong>. - + <strong>%1</strong> bölməsindəki bayraqları ləöv etmək. Clearing flags on %1MiB <strong>%2</strong> partition. - + %1MB <strong>%2</strong> bölməsindəki bayraqların ləğv edilməsi. Clearing flags on new partition. - + Yeni bölmədəki bayraqların ləğv edilməsi. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + <strong>%2</strong> bayraqlarının <strong>%1</strong> bölməsində ayarlanması. Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition. - + <strong>%3</strong> bayraqlarının %1MB <strong>%2</strong> bölməsində ayarlanması. Setting flags <strong>%1</strong> on new partition. - + <strong>%1</strong> bayraqlarının yeni bölmədə ayarlanması. The installer failed to set flags on partition %1. - + Quraşdırıcı %1 bölməsinə bayraqlar qoya bilmədi. @@ -3225,42 +3284,42 @@ Output: Set password for user %1 - + %1 istifadəçisi üçün şifrə daxil etmək Setting password for user %1. - + %1 istifadəçisi üçün şifrə ayarlamaq. Bad destination system path. - + Səhv sistem yolu təyinatı. rootMountPoint is %1 - + rootMountPoint %1-dir Cannot disable root account. - + Kök hesabını qeyri-aktiv etmək olmur. passwd terminated with error code %1. - + %1 xəta kodu ilə sonlanan şifrə. Cannot set password for user %1. - + %1 istifadəçisi üçün şifrə yaradıla bilmədi. usermod terminated with error code %1. - + usermod %1 xəta kodu ilə sonlandı. @@ -3268,37 +3327,37 @@ Output: Set timezone to %1/%2 - + Saat qurşağını %1/%2 olaraq ayarlamaq Cannot access selected timezone path. - + Seçilmiş saat qurşağı yoluna daxil olmaq mümkün deyil. Bad path: %1 - + Etibarsız yol: %1 Cannot set timezone. - + Saat qurşağını qurmaq mümkün deyil. Link creation failed, target: %1; link name: %2 - + Keçid yaradılması alınmadı, hədəf: %1; keçed adı: %2 Cannot set timezone, - + Saat qurşağı qurulmadı, Cannot open /etc/timezone for writing - + /etc/timezone qovluğu yazılmaq üçün açılmadı @@ -3306,7 +3365,7 @@ Output: Shell Processes Job - + Shell prosesləri ilə iş @@ -3315,7 +3374,7 @@ Output: %L1 / %L2 slide counter, %1 of %2 (numeric) - + %L1 / %L2 @@ -3323,12 +3382,12 @@ Output: This is an overview of what will happen once you start the setup procedure. - + Bu quraşdırma proseduruna başladıqdan sonra nələrin baş verəcəyinə ümumi baxışdır. This is an overview of what will happen once you start the install procedure. - + Bu quraşdırma proseduruna başladıqdan sonra nələrin baş verəcəyinə ümumi baxışdır. @@ -3336,59 +3395,88 @@ Output: Summary - + Nəticə TrackingInstallJob - + Installation feedback - + Quraşdırılma hesabatı - + Sending installation feedback. - + Quraşdırılma hesabatının göndərməsi. - + Internal error in install-tracking. - + install-tracking daxili xətası. - + HTTP request timed out. - + HTTP sorğusunun vaxtı keçdi. + + + + TrackingKUserFeedbackJob + + + KDE user feedback + KDE istifadəçi hesabatı + + + + Configuring KDE user feedback. + KDE istifadəçi hesabatının tənzimlənməsi. + + + + + Error in KDE user feedback configuration. + KDE istifadəçi hesabatının tənzimlənməsində xəta. + + + + Could not configure KDE user feedback correctly, script error %1. + KDE istifadəçi hesabatı düzgün tənzimlənmədi, əmr xətası %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + KDE istifadəçi hesabatı düzgün tənzimlənmədi, Calamares xətası %1. - TrackingMachineNeonJob + TrackingMachineUpdateManagerJob - + Machine feedback - + Kompyuter hesabatı - + Configuring machine feedback. - + kompyuter hesabatının tənzimlənməsi. - - + + Error in machine feedback configuration. - + Kompyuter hesabatının tənzimlənməsində xəta. - + Could not configure machine feedback correctly, script error %1. - + Kompyuter hesabatı düzgün tənzimlənmədi, əmr xətası %1. - + Could not configure machine feedback correctly, Calamares error %1. - + Kompyuter hesabatı düzgün tənzimlənmədi, Calamares xətası %1. @@ -3396,50 +3484,50 @@ Output: Form - + Format Placeholder - + Əvəzləyici - <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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Göndərmək üçün buraya klikləyin <span style=" font-weight:600;">quraşdırıcınız haqqında heç bir məlumat yoxdur</span>.</p></body></html> <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">İstifadəçi hesabatı haqqında daha çox məlumat üçün buraya klikləyin</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. - + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + İzləmə %1ə, cihazın neçə dəfə quraşdırıldığını, hansı cihazda quraşdırıldığını və hansı tətbiqlərdən istifadə olunduğunu görməyə kömək edir. Göndərilənləri görmək üçün hər sahənin yanındakı yardım işarəsini vurun. - - 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 send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Bunu seçərək quraşdırma və kompyuteriniz haqqında məlumat göndərəcəksiniz. Quraşdırma başa çatdıqdan sonra, bu məlumat yalnız <b>bir dəfə</b> göndəriləcəkdir. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Bu seçimdə siz vaxtaşırı <b>kompyuter</b> qurğularınız, avadanlıq və tətbiqləriniz haqqında %1-ə məlumat göndərəcəksiniz. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Bu seçimdə siz vaxtaşırı <b>istifadəçi</b> qurğularınız, avadanlıq və tətbiqləriniz haqqında %1-ə məlumat göndərəcəksiniz. TrackingViewStep - + Feedback - + Hesabat @@ -3447,47 +3535,47 @@ Output: <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>Əgər bu kompyuteri sizdən başqa şəxs istifadə edəcəkdirsə o zaman ayarlandıqdan sonra bir neçə istifadəçi hesabı yarada bilərsiniz.</small> <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> - + <small>Əgər bu kompyuteri sizdən başqa şəxs istifadə edəcəkdirsə o zaman quraşdırıldıqdan sonra bir neçə istifadəçi hesabı yarada bilərsiniz.</small> Your username is too long. - + İstifadəçi adınız çox uzundur. Your username must start with a lowercase letter or underscore. - + İstifadəçi adınız yalnız kiçik və ya alt cizgili hərflərdən ibarət olmalıdır. Only lowercase letters, numbers, underscore and hyphen are allowed. - + Yalnız kiçik hərflərdən, simvollardan, alt cizgidən və defisdən istifadə oluna bilər. Your hostname is too short. - + Host adınız çox qısadır. Your hostname is too long. - + Host adınız çox uzundur. Only letters, numbers, underscore and hyphen are allowed. - + Yalnız kiçik hərflərdən, saylardan, alt cizgidən və defisdən istifadə oluna bilər. Your passwords do not match! - + Şifrənizin təkrarı eyni deyil! @@ -3495,7 +3583,7 @@ Output: Users - + İstifadəçilər @@ -3503,12 +3591,12 @@ Output: Key - + Açar Value - + Dəyər @@ -3516,52 +3604,52 @@ Output: Create Volume Group - + Tutumlar qrupu yaratmaq List of Physical Volumes - + Fiziki Tutumların siyahısı Volume Group Name: - + Tutum Qrupunun adı: Volume Group Type: - + Tutum Qrupunun Növü: Physical Extent Size: - + Fiziki boy ölçüsü: MiB - + MB Total Size: - + Ümumi Ölçü: Used Size: - + İstifadə olunanın ölçüsü: Total Sectors: - + Ümumi Bölmələr: Quantity of LVs: - + LVlərin sayı: @@ -3569,114 +3657,114 @@ Output: Form - + Format Select application and system language - + Sistem və tətbiq dilini seçmək &About - + H&aqqında Open donations website - + Maddi dəstək üçün veb səhifəsi &Donate - + Ma&ddi dəstək Open help and support website - + Kömək və dəstək veb səhifəsi &Support - + Də&stək Open issues and bug-tracking website - + Problemlər və xəta izləmə veb səhifəsi &Known issues - + &Məlum problemlər Open release notes website - + Buraxılış haqqında qeydlər veb səhifəsi &Release notes - + Bu&raxılış haqqında qeydlər - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>%1 üçün Calamares quraşdırma proqramına Xoş Gəldiniz.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>%1 quraşdırmaq üçün Xoş Gəldiniz.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1> %1 üçün Calamares quraşdırıcısına Xoş Gəldiniz.</h1> - + <h1>Welcome to the %1 installer.</h1> - + <h1>%1 quraşdırıcısına Xoş Gəldiniz.</h1> - + %1 support - + %1 dəstəyi - + About %1 setup - + %1 quraşdırması haqqında - + About %1 installer - + %1 quraşdırıcısı haqqında - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>%3 üçün</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Təşəkkür edirik, <a href="https://calamares.io/team/">Calamares komandasına</a> və <a href="https://www.transifex.com/calamares/calamares/">Calamares tərcüməçilər komandasına</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> tərtibatçılarının sponsoru: <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. WelcomeQmlViewStep - + Welcome - + Xoş Gəldiniz WelcomeViewStep - + Welcome - + Xoş Gəldiniz @@ -3695,12 +3783,45 @@ Output: development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/> + <strong>%2<br/> + %3 üçün</strong><br/><br/> + Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> + Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Təşəkkür edirik,<a href='https://calamares.io/team/'>Calamares komandasına</a> + və<a href='https://www.transifex.com/calamares/calamares/'>Calamares + tərcüməçiləri komandasına</a>.<br/><br/> + <a href='https://calamares.io/'>Calamares</a> + tərtibatının sponsoru: <br/> + <a href='http://www.blue-systems.com/'>Blue Systems</a> - + Liberating Software. Back - + Geriyə + + + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Dillər</h1> </br> + Sistemin yer ayarları bəzi istifadəçi interfeysi elementləri əmrlər sətri üçün dil və simvolların ayarlanmasına təsir edir. Cari ayar: <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Yerlər</h1> </br> + Sistemin yer ayarları bəzi istifadəçi interfeysi elementləri əmrlər sətri üçün dil və simvolların ayarlanmasına təsir edir. Cari ayar: <strong>%1</strong>. + + + + Back + Geriyə @@ -3708,44 +3829,62 @@ Output: Keyboard Model - + Klaviatura Modeli Pick your preferred keyboard model or use the default one based on the detected hardware - + Üstünlük verdiyiniz klaviatura modelini seçin və ya avadanlığın özündə aşkar edilmiş standart klaviatura modelindən istifadə edin Refresh - + Yeniləmək Layouts - + Qatları Keyboard Layout - + Klaviatura Qatları Models - + Modellər Variants - + Variantlar Test your keyboard - + klaviaturanızı yoxlayın + + + + localeq + + + System language set to %1 + Sistem dilini %1 qurmaq + + + + Numbers and dates locale set to %1 + Yerli saylvə tarix formatlarını %1 qurmaq + + + + Change + Dəyişdirmək @@ -3754,7 +3893,8 @@ Output: <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>Bunlar buraxılış qeydləri nümunəsidir.</p> @@ -3782,12 +3922,32 @@ Output: </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> + <p>Bu Flickable tərkibləri ilə RichText seçimlərində göstərilən QML faylı nümunəsidir</p> + + <p>QML RichText ilə HTML yarlığı istifadə edə bilər, Flickable daha çox toxunaqlı ekranlar üçün istifadə olunur.</p> + + <p><b>Bu qalın şriftli mətndir</b></p> + <p><i>Bu kursif şriftli mətndir</i></p> + <p><u>Bu al cizgili şriftli mətndir</u></p> + <p><center>Bu mətn mərkəzdə yerləşəcək.</center></p> + <p><s>Bu üzəri cizgilidir</s></p> + + <p>Kod nümunəsi: + <code>ls -l /home</code></p> + + <p><b>Siyahı:</b></p> + <ul> + <li>Intel CPU sistemləri</li> + <li>AMD CPU sistemləri</li> + </ul> + + <p>Şaquli sürüşmə çubuğu tənzimlənir, cari eni 10-a qurulur.</p> Back - + Geriyə @@ -3796,32 +3956,33 @@ Output: <h3>Welcome to the %1 <quote>%2</quote> installer</h3> <p>This program will ask you some questions and set up %1 on your computer.</p> - + <h3>%1quraşdırıcısına <quote>%2</quote> Xoş Gəldiniz</h3> + <p>Bu proqram sizə bəzi suallar verəcək və %1 komputerinizə quraşdıracaq.</p> - + About - + Haqqında - + Support - + Dəstək - + Known issues - + Məlum problemlər - + Release notes - + Buraxılış qeydləri - + Donate - + Maddi dəstək diff --git a/lang/calamares_be.ts b/lang/calamares_be.ts index edf61aa21..15b4bc2b8 100644 --- a/lang/calamares_be.ts +++ b/lang/calamares_be.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Наладзіць - + Install Усталяваць @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Задача схібіла (%1) - + Programmed job failure was explicitly requested. Запраграмаваная памылка задачы была па запыту. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Завершана @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Прыклад задачы (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Запусціць загад '%1' у мэтавай сістэме. - + Run command '%1'. Запусціць загад '%1'. - + Running command %1 %2 Выкананне загада %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Выкананне аперацыі %1. - + Bad working directory path Няправільны шлях да працоўнага каталога - + Working directory %1 for python job %2 is not readable. Працоўны каталог %1 для задачы python %2 недаступны для чытання. - + Bad main script file Хібны галоўны файл скрыпта - + Main script file %1 for python job %2 is not readable. Галоўны файл скрыпта %1 для задачы python %2 недаступны для чытання. - + Boost.Python error in job "%1". Boost.Python памылка ў задачы "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Праверка патрабаванняў да модуля <i>%1</i> выкананая. + - + Waiting for %n module(s). Чакаецца %n модуль. @@ -238,7 +243,7 @@ - + (%n second(s)) (%n секунда) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. Праверка адпаведнасці сістэмным патрабаванням завершаная. @@ -277,13 +282,13 @@ - + &Yes &Так - + &No &Не @@ -318,108 +323,108 @@ <br/>Не атрымалася загрузіць наступныя модулі: - + Continue with setup? Працягнуць усталёўку? - + Continue with installation? Працягнуць усталёўку? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Праграма ўсталёўкі %1 гатовая ўнесці змены на ваш дыск, каб усталяваць %2.<br/><strong>Скасаваць змены будзе немагчыма.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Праграма ўсталёўкі %1 гатовая ўнесці змены на ваш дыск, каб усталяваць %2.<br/><strong>Адрабіць змены будзе немагчыма.</strong> - + &Set up now &Усталяваць - + &Install now &Усталяваць - + Go &back &Назад - + &Set up &Усталяваць - + &Install &Усталяваць - + Setup is complete. Close the setup program. Усталёўка завершаная. Закрыйце праграму ўсталёўкі. - + The installation is complete. Close the installer. Усталёўка завершаная. Закрыйце праграму. - + Cancel setup without changing the system. Скасаваць усталёўку без змены сістэмы. - + Cancel installation without changing the system. Скасаваць усталёўку без змены сістэмы. - + &Next &Далей - + &Back &Назад - + &Done &Завершана - + &Cancel &Скасаваць - + Cancel setup? Скасаваць усталёўку? - + Cancel installation? Скасаваць усталёўку? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Сапраўды хочаце скасаваць працэс усталёўкі? Праграма спыніць працу, а ўсе змены страцяцца. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Сапраўды хочаце скасаваць працэс усталёўкі? Усталёўшчык спыніць працу, а ўсе змены страцяцца. @@ -428,22 +433,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Невядомы тып выключэння - + unparseable Python error памылка Python, якую немагчыма разабраць - + unparseable Python traceback python traceback, што немагчыма разабраць - + Unfetchable Python error. Невядомая памылка Python. @@ -461,32 +466,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information Паказаць адладачную інфармацыю - + &Back &Назад - + &Next &Далей - + &Cancel &Скасаваць - + %1 Setup Program Праграма ўсталёўкі %1 - + %1 Installer Праграма ўсталёўкі %1 @@ -683,18 +688,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. Не атрымалася запусціць загад. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Загад выконваецца ў асяроддзі ўсталёўшчыка. Яму неабходна ведаць шлях да каранёвага раздзела, але rootMountPoint не вызначаны. - + The command needs to know the user's name, but no username is defined. Загаду неабходна ведаць імя карыстальніка, але яно не вызначана. @@ -747,49 +752,49 @@ The installer will quit and all changes will be lost. Сеткавая ўсталёўка. (Адключана: немагчыма атрымаць спіс пакункаў, праверце ваша сеткавае злучэнне) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Гэты камп’ютар не адпавядае мінімальным патрэбам для ўсталёўкі %1.<br/>Немагчыма працягнуць. <a href="#details">Падрабязней...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Гэты камп’ютар не адпавядае мінімальным патрэбам для ўсталёўкі %1.<br/>Немагчыма працягнуць. <a href="#details">Падрабязней...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Гэты камп’ютар адпавядае не ўсім патрэбам для ўсталёўкі %1.<br/>Можна працягнуць усталёўку, але некаторыя магчымасці могуць быць недаступнымі. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Гэты камп’ютар адпавядае не ўсім патрэбам для ўсталёўкі %1.<br/>Можна працягнуць усталёўку, але некаторыя магчымасці могуць быць недаступнымі. - + This program will ask you some questions and set up %2 on your computer. Гэтая праграма задасць вам некалькі пытанняў і дапаможа ўсталяваць %2 на ваш камп’ютар. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Вітаем у праграме ўсталёўкі Calamares для %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Вітаем у праграме ўсталёўкі %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Вітаем ва ўсталёўшчыку Calamares для %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Вітаем у праграме ўсталёўкі %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1226,37 +1231,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information Вызначыць звесткі пра раздзел - + Install %1 on <strong>new</strong> %2 system partition. Усталяваць %1 на <strong>новы</strong> %2 сістэмны раздзел. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Наладзіць <strong>новы</strong> %2 раздзел з пунктам мантавання <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Усталяваць %2 на %3 сістэмны раздзел <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Наладзіць %3 раздзел <strong>%1</strong> з пунктам мантавання <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Усталяваць загрузчык на <strong>%1</strong>. - + Setting up mount points. Наладка пунктаў мантавання. @@ -1274,32 +1279,32 @@ The installer will quit and all changes will be lost. &Перазапусціць - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Гатова.</h1><br/>Сістэма %1 усталяваная на ваш камп’ютар.<br/> Вы ўжо можаце пачаць выкарыстоўваць вашу новую сістэму. - + <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 setup program.</p></body></html> <html><head/><body><p>Калі адзначана, то сістэма перазапусціцца адразу пасля націскання кнопкі <span style="font-style:italic;">Завершана</span> альбо закрыцця праграмы ўсталёўкі.</p></body></html> - + <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>Завершана.</h1><br/>Сістэма %1 усталяваная на ваш камп’ютар.<br/>Вы можаце перазапусціць камп’ютар і ўвайсці ў яе, альбо працягнуць працу ў Live-асяроддзі %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Калі адзначана, то сістэма перазапусціцца адразу пасля націскання кнопкі <span style="font-style:italic;">Завершана</span> альбо закрыцця праграмы ўсталёўкі.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Адбыўся збой</h1><br/>Сістэму %1 не атрымалася ўсталяваць на ваш камп’ютар.<br/>Паведамленне памылкі: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Адбыўся збой</h1><br/>Сістэму %1 не атрымалася ўсталяваць на ваш камп’ютар.<br/>Паведамленне памылкі: %2. @@ -1307,27 +1312,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Завяршыць - + Setup Complete Усталёўка завершаная - + Installation Complete Усталёўка завершаная - + The setup of %1 is complete. Усталёўка %1 завершаная. - + The installation of %1 is complete. Усталёўка %1 завершаная. @@ -1358,72 +1363,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space даступна прынамсі %1 Гб вольнага месца - + There is not enough drive space. At least %1 GiB is required. Недастаткова месца. Неабходна прынамсі %1 Гб. - + has at least %1 GiB working memory даступна прынамсі %1 Гб аператыўнай памяці - + The system does not have enough working memory. At least %1 GiB is required. Недастаткова аператыўнай памяці. Патрэбна прынамсі %1 Гб. - + 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. Злучэнне з інтэрнэтам адсутнічае. - + is running the installer as an administrator (root) праграма ўсталёўкі запушчаная ад імя адміністратара (root) - + The setup program is not running with administrator rights. Праграма ўсталёўкі запушчаная без правоў адміністратара. - + The installer is not running with administrator rights. Праграма ўсталёўкі запушчаная без правоў адміністратара. - + has a screen large enough to show the whole installer ёсць экран, памераў якога дастаткова, каб адлюстраваць акно праграмы ўсталёўкі - + The screen is too small to display the setup program. Экран занадта малы для таго, каб адлюстраваць акно праграмы ўсталёўкі. - + The screen is too small to display the installer. Экран занадта малы для таго, каб адлюстраваць акно праграмы ўсталёўкі. @@ -1771,6 +1776,16 @@ The installer will quit and all changes will be lost. Для MachineId не вызначана каранёвага пункта мантавання. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1909,6 +1924,19 @@ The installer will quit and all changes will be lost. Вызначыць масавы ідэнтыфікатар OEM для <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2496,107 +2524,107 @@ The installer will quit and all changes will be lost. Раздзелы - + Install %1 <strong>alongside</strong> another operating system. Усталяваць %1 <strong>побач</strong> з іншай аперацыйнай сістэмай. - + <strong>Erase</strong> disk and install %1. <strong>Ачысціць</strong> дыск і ўсталяваць %1. - + <strong>Replace</strong> a partition with %1. <strong>Замяніць</strong> раздзел на %1. - + <strong>Manual</strong> partitioning. <strong>Уласнаручная</strong> разметка. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Усталяваць %1 <strong>побач</strong> з іншай аперацыйнай сістэмай на дыск<strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Ачысціць</strong> дыск <strong>%2</strong> (%3) і ўсталяваць %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Замяніць</strong> раздзел на дыску <strong>%2</strong> (%3) на %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Уласнаручная</strong> разметка дыска<strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Дыск <strong>%1</strong> (%2) - + Current: Бягучы: - + After: Пасля: - + No EFI system partition configured Няма наладжанага сістэмнага раздзела EFI - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Не вызначаны сцяг сістэмнага раздзела EFI - + Option to use GPT on BIOS Параметр для выкарыстання GPT у BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Табліца раздзелаў GPT - найлепшы варыянт для ўсіх сістэм. Гэтая праграма ўсталёўкі таксама падтрымлівае гэты варыянт і для BIOS.<br/><br/>Каб наладзіць GPT для BIOS (калі гэта яшчэ не зроблена), вярніцеся назад і абярыце табліцу раздзелаў GPT, пасля стварыце нефарматаваны раздзел памерам 8 МБ са сцягам <strong>bios_grub</strong>.<br/><br/>Гэты раздзел патрэбны для запуску %1 у BIOS з GPT. - + 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. Уключана шыфраванне каранёвага раздзела, але выкарыстаны асобны загрузачны раздзел без шыфравання.<br/><br/>Пры такой канфігурацыі могуць узнікнуць праблемы з бяспекай, бо важныя сістэмныя даныя будуць захоўвацца на раздзеле без шыфравання.<br/>Вы можаце працягнуць, але файлавая сістэма разблакуецца падчас запуску сістэмы.<br/>Каб уключыць шыфраванне загрузачнага раздзела, вярніцеся назад і стварыце яго нанова, адзначыўшы <strong>Шыфраваць</strong> у акне стварэння раздзела. - + has at least one disk device available. ёсць прынамсі адна даступная дыскавая прылада. - + There are no partitions to install on. Няма раздзелаў для ўсталёўкі. @@ -2662,14 +2690,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. Вываду ад загада няма. - + Output: @@ -2678,52 +2706,52 @@ Output: - + External command crashed. Вонкавы загад схібіў. - + Command <i>%1</i> crashed. Загад <i>%1</i> схібіў. - + External command failed to start. Не атрымалася запусціць вонкавы загад. - + Command <i>%1</i> failed to start. Не атрымалася запусціць загад <i>%1</i>. - + 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. Загад <i>%1</i> не атрымалася завяршыць за %2 секунд. - + External command finished with errors. Вонкавы загад завяршыўся з памылкамі. - + Command <i>%1</i> finished with exit code %2. Загад <i>%1</i> завяршыўся з кодам %2. @@ -2731,32 +2759,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Праверка патрабаванняў да модуля <i>%1</i> выкананая. - - - + unknown невядома - + extended пашыраны - + unformatted нефарматавана - + swap swap @@ -2810,6 +2833,15 @@ Output: Прастора без раздзелаў, альбо невядомая табліца раздзелаў + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2845,73 +2877,88 @@ Output: Форма - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Абярыце куды ўсталяваць %1.<br/><font color="red">Увага: </font>усе файлы на абраным раздзеле выдаляцца. - + The selected item does not appear to be a valid partition. Абраны элемент не з’яўляецца прыдатным раздзелам. - + %1 cannot be installed on empty space. Please select an existing partition. %1 немагчыма ўсталяваць па-за межамі раздзела. Калі ласка, абярыце існы раздзел. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 немагчыма ўсталяваць на пашыраны раздзел. Калі ласка, абярыце існы асноўны альбо лагічны раздзел. - + %1 cannot be installed on this partition. %1 немагчыма ўсталяваць на гэты раздзел. - + Data partition (%1) Раздзел даных (%1) - + Unknown system partition (%1) Невядомы сістэмны раздзел (%1) - + %1 system partition (%2) %1 сістэмны раздзел (%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>%4</strong><br/><br/>Раздзел %1 занадта малы для %2. Калі ласка, абярыце раздзел памерам прынамсі %3 Гб. - + <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>%2</strong><br/><br/>Не выяўлена сістэмнага раздзела EFI. Калі ласка, вярніцеся назад і ўласнаручна выканайце разметку для ўсталёўкі %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. <strong>%3</strong><br/><br/>%1 будзе ўсталяваны на %2.<br/><font color="red">Увага: </font>усе даныя на раздзеле %2 страцяцца. - + The EFI system partition at %1 will be used for starting %2. Сістэмны раздзел EFI на %1 будзе выкарыстаны для запуску %2. - + EFI system partition: Сістэмны раздзел EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3034,12 +3081,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Для дасягнення найлепшых вынікаў пераканайцеся, што гэты камп’ютар: - + System requirements Сістэмныя патрабаванні @@ -3047,27 +3094,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Гэты камп’ютар не адпавядае мінімальным патрэбам для ўсталёўкі %1.<br/>Немагчыма працягнуць. <a href="#details">Падрабязней...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Гэты камп’ютар не адпавядае мінімальным патрэбам для ўсталёўкі %1.<br/>Немагчыма працягнуць. <a href="#details">Падрабязней...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Гэты камп’ютар адпавядае не ўсім патрэбам для ўсталёўкі %1.<br/>Можна працягнуць усталёўку, але некаторыя магчымасці могуць быць недаступнымі. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Гэты камп’ютар адпавядае не ўсім патрэбам для ўсталёўкі %1.<br/>Можна працягнуць усталёўку, але некаторыя магчымасці могуць быць недаступнымі. - + This program will ask you some questions and set up %2 on your computer. Гэтая праграма задасць вам некалькі пытанняў і дапаможа ўсталяваць %2 на ваш камп’ютар. @@ -3350,51 +3397,80 @@ Output: TrackingInstallJob - + Installation feedback Справаздача па ўсталёўцы - + Sending installation feedback. Адпраўленне справаздачы па ўсталёўцы. - + Internal error in install-tracking. Унутраная памылка адсочвання ўсталёўкі. - + HTTP request timed out. Час чакання адказу ад HTTP сышоў. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Сістэма зваротнай сувязі - + Configuring machine feedback. Наладка сістэмы зваротнай сувязі. - - + + Error in machine feedback configuration. Памылка ў канфігурацыі сістэмы зваротнай сувязі. - + Could not configure machine feedback correctly, script error %1. Не атрымалася наладзіць сістэму зваротнай сувязі, памылка скрыпта %1. - + Could not configure machine feedback correctly, Calamares error %1. Не атрымалася наладзіць сістэму зваротнай сувязі, памылка Calamares %1. @@ -3413,8 +3489,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Калі вы гэта абярэце, то не будзе адпрашлена <span style=" font-weight:600;">ніякіх звестак</span> пра вашу ўсталёўку.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3422,30 +3498,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Пстрыкніце сюды, каб праглядзець больш звестак зваротнай сувязі ад карыстальнікаў</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. - Адсочванне ўсталёўкі дазваляе %1 даведацца пра колькасць карыстальнікаў, на якім абсталяванні ўсталёўваецца %1, якія праграмы карыстаюцца найбольшым попытам. Каб праглядзець звесткі, якія будуць адпраўляцца, пстрыкніце па значку ля кожнай вобласці. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Абраўшы гэты пункт вы адправіце звесткі пра сваю канфігурацыю ўсталёўкі і ваша абсталяванне. Звесткі адправяцца <b>адзін раз</b> пасля завяршэння ўсталёўкі. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Абраўшы гэты пункт вы будзеце <b>перыядычна</b> адпраўляць %1 звесткі пра канфігурацыю сваёй усталёўкі, абсталяванне і праграмы. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Абраўшы гэты пункт вы будзеце <b>рэгулярна</b> адпраўляць %1 звесткі пра канфігурацыю сваёй усталёўкі, абсталяванне, праграмы і вобласці іх выкарыстання. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Зваротная сувязь @@ -3631,42 +3707,42 @@ Output: &Нататкі да выпуску - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Вітаем у праграме ўсталёўкі Calamares для %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Вітаем у праграме ўсталёўкі %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Вітаем ва ўсталёўшчыку Calamares для %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Вітаем у праграме ўсталёўкі %1.</h1> - + %1 support падтрымка %1 - + About %1 setup Пра ўсталёўку %1 - + About %1 installer Пра ўсталёўшчык %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3674,7 +3750,7 @@ Output: WelcomeQmlViewStep - + Welcome Вітаем @@ -3682,7 +3758,7 @@ Output: WelcomeViewStep - + Welcome Вітаем @@ -3721,6 +3797,26 @@ Output: Назад + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Назад + + keyboardq @@ -3766,6 +3862,24 @@ Output: Пратэстуйце сваю клавіятуру + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3818,27 +3932,27 @@ Output: - + About Пра праграму - + Support Падтрымка - + Known issues Вядомыя праблемы - + Release notes Нататкі да выпуску - + Donate Ахвяраваць diff --git a/lang/calamares_bg.ts b/lang/calamares_bg.ts index 1b7a8ee83..17c13fd90 100644 --- a/lang/calamares_bg.ts +++ b/lang/calamares_bg.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Инсталирай @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Готово @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Изпълняване на команда %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Изпълнение на %1 операция. - + Bad working directory path Невалиден път на работната директория - + Working directory %1 for python job %2 is not readable. Работна директория %1 за python задача %2 не се чете. - + Bad main script file Невалиден файл на главен скрипт - + Main script file %1 for python job %2 is not readable. Файлът на главен скрипт %1 за python задача %2 не се чете. - + Boost.Python error in job "%1". Boost.Python грешка в задача "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Да - + &No &Не @@ -314,108 +319,108 @@ <br/>Следните модули не могат да се заредят: - + Continue with setup? Продължаване? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Инсталатора на %1 ще направи промени по вашия диск за да инсталира %2. <br><strong>Промените ще бъдат окончателни.</strong> - + &Set up now - + &Install now &Инсталирай сега - + Go &back В&ръщане - + &Set up - + &Install &Инсталирай - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Инсталацията е завършена. Затворете инсталаторa. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Отказ от инсталацията без промяна на системата. - + &Next &Напред - + &Back &Назад - + &Done &Готово - + &Cancel &Отказ - + Cancel setup? - + Cancel installation? Отмяна на инсталацията? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Наистина ли искате да отмените текущият процес на инсталиране? @@ -425,22 +430,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Неизвестен тип изключение - + unparseable Python error неанализируема грешка на Python - + unparseable Python traceback неанализируемо проследяване на Python - + Unfetchable Python error. Недостъпна грешка на Python. @@ -457,32 +462,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information Покажи информация за отстраняване на грешки - + &Back &Назад - + &Next &Напред - + &Cancel &Отказ - + %1 Setup Program - + %1 Installer %1 Инсталатор @@ -679,18 +684,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. Командата не може да се изпълни. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Командата се изпълнява в средата на хоста и трябва да установи местоположението на основния дял, но rootMountPoint не е определен. - + The command needs to know the user's name, but no username is defined. Командата трябва да установи потребителското име на профила, но такова не е определено. @@ -743,50 +748,50 @@ The installer will quit and all changes will be lost. Мрежова инсталация. (Изключена: Списъкът с пакети не може да бъде извлечен, проверете Вашата Интернет връзка) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Този компютър не отговаря на минималните изисквания за инсталиране %1.<br/>Инсталацията не може да продължи. <a href="#details">Детайли...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Този компютър не отговаря на някои от препоръчителните изисквания за инсталиране %1.<br/>Инсталацията може да продължи, но някои свойства могат да бъдат недостъпни. - + This program will ask you some questions and set up %2 on your computer. Тази програма ще ви зададе няколко въпроса и ще конфигурира %2 на вашия компютър. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Добре дошли при инсталатора Calamares на %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Добре дошли при инсталатора на %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1223,37 +1228,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information Постави информация за дял - + Install %1 on <strong>new</strong> %2 system partition. Инсталирай %1 на <strong>нов</strong> %2 системен дял. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Създай <strong>нов</strong> %2 дял със точка на монтиране <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Инсталирай %2 на %3 системен дял <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Създай %3 дял <strong>%1</strong> с точка на монтиране <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Инсталиране на зареждач върху <strong>%1</strong>. - + Setting up mount points. Настройка на точките за монтиране. @@ -1271,32 +1276,32 @@ The installer will quit and all changes will be lost. &Рестартирай сега - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Завършено.</h1><br/>%1 беше инсталирана на вашият компютър.<br/>Вече можете да рестартирате в новата си система или да продължите да използвате %2 Живата среда. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Инсталацията е неуспешна</h1><br/>%1 не е инсталиран на Вашия компютър.<br/>Съобщението с грешката е: %2. @@ -1304,27 +1309,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Завърши - + Setup Complete - + Installation Complete Инсталацията е завършена - + The setup of %1 is complete. - + The installation of %1 is complete. Инсталацията на %1 е завършена. @@ -1355,72 +1360,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. Системата не е свързана с интернет. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Инсталаторът не е стартиран с права на администратор. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Екранът е твърде малък за инсталатора. @@ -1768,6 +1773,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ The installer will quit and all changes will be lost. Дялове - + Install %1 <strong>alongside</strong> another operating system. Инсталирай %1 <strong>заедно</strong> с друга операционна система. - + <strong>Erase</strong> disk and install %1. <strong>Изтрий</strong> диска и инсталирай %1. - + <strong>Replace</strong> a partition with %1. <strong>Замени</strong> дял с %1. - + <strong>Manual</strong> partitioning. <strong>Ръчно</strong> поделяне. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Инсталирай %1 <strong>заедно</strong> с друга операционна система на диск <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Изтрий</strong> диск <strong>%2</strong> (%3) и инсталирай %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Замени</strong> дял на диск <strong>%2</strong> (%3) с %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ръчно</strong> поделяне на диск <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Диск <strong>%1</strong> (%2) - + Current: Сегашен: - + After: След: - + No EFI system partition configured Няма конфигуриран EFI системен дял - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Не е зададен флаг на EFI системен дял - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2659,13 +2687,13 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. - + Output: @@ -2674,52 +2702,52 @@ 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. @@ -2727,32 +2755,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown неизвестна - + extended разширена - + unformatted неформатирана - + swap swap @@ -2806,6 +2829,15 @@ Output: Неразделено пространство или неизвестна таблица на дяловете + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2841,73 +2873,88 @@ Output: Форма - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Изберете къде да инсталирате %1.<br/><font color="red">Предупреждение: </font>това ще изтрие всички файлове върху избраният дял. - + The selected item does not appear to be a valid partition. Избраният предмет не изглежда да е валиден дял. - + %1 cannot be installed on empty space. Please select an existing partition. %1 не може да бъде инсталиран на празно пространство. Моля изберете съществуващ дял. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 не може да бъде инсталиран върху разширен дял. Моля изберете съществуващ основен или логически дял. - + %1 cannot be installed on this partition. %1 не може да бъде инсталиран върху този дял. - + Data partition (%1) Дял на данните (%1) - + Unknown system partition (%1) Непознат системен дял (%1) - + %1 system partition (%2) %1 системен дял (%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>%4</strong><br/><br/>Дялът %1 е твърде малък за %2. Моля изберете дял с капацитет поне %3 ГБ. - + <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>%2</strong><br/><br/>EFI системен дял не е намерен. Моля, опитайте пак като използвате ръчно поделяне за %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. <strong>%3</strong><br/><br/>%1 ще бъде инсталиран върху %2.<br/><font color="red">Предупреждение: </font>всички данни на дял %2 ще бъдат изгубени. - + The EFI system partition at %1 will be used for starting %2. EFI системен дял в %1 ще бъде използван за стартиране на %2. - + EFI system partition: EFI системен дял: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3030,12 +3077,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: За най-добри резултати, моля бъдете сигурни че този компютър: - + System requirements Системни изисквания @@ -3043,28 +3090,28 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Този компютър не отговаря на минималните изисквания за инсталиране %1.<br/>Инсталацията не може да продължи. <a href="#details">Детайли...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Този компютър не отговаря на някои от препоръчителните изисквания за инсталиране %1.<br/>Инсталацията може да продължи, но някои свойства могат да бъдат недостъпни. - + This program will ask you some questions and set up %2 on your computer. Тази програма ще ви зададе няколко въпроса и ще конфигурира %2 на вашия компютър. @@ -3347,51 +3394,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob - + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3410,7 +3486,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3419,30 +3495,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback Обратна връзка @@ -3628,42 +3704,42 @@ Output: &Бележки по изданието - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Добре дошли при инсталатора Calamares на %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Добре дошли при инсталатора на %1.</h1> - + %1 support %1 поддръжка - + About %1 setup - + About %1 installer Относно инсталатор %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3671,7 +3747,7 @@ Output: WelcomeQmlViewStep - + Welcome Добре дошли @@ -3679,7 +3755,7 @@ Output: WelcomeViewStep - + Welcome Добре дошли @@ -3708,6 +3784,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3753,6 +3849,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3804,27 +3918,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_bn.ts b/lang/calamares_bn.ts index a74690da3..afb7f16ee 100644 --- a/lang/calamares_bn.ts +++ b/lang/calamares_bn.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done সম্পন্ন @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path খারাপ ওয়ার্কিং ডিরেক্টরি পাথ - + Working directory %1 for python job %2 is not readable. ওয়ার্কিং ডিরেক্টরি 1% পাইথন কাজের জন্য % 2 পাঠযোগ্য নয়। - + Bad main script file খারাপ প্রধান স্ক্রিপ্ট ফাইল - + Main script file %1 for python job %2 is not readable. মূল স্ক্রিপ্ট ফাইল 1% পাইথন কাজের জন্য 2% পাঠযোগ্য নয়। - + Boost.Python error in job "%1". বুস্ট.পাইথন কাজে 1% ত্রুটি @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next এবং পরবর্তী - + &Back এবং পেছনে - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type অজানা ব্যতিক্রম প্রকার - + unparseable Python error আনপারসেবল পাইথন ত্রুটি - + unparseable Python traceback আনপারসেবল পাইথন ট্রেসব্যাক - + Unfetchable Python error. অপরিবর্তনীয় পাইথন ত্রুটি। @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back এবং পেছনে - + &Next এবং পরবর্তী - + &Cancel - + %1 Setup Program - + %1 Installer 1% ইনস্টল @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ca.ts b/lang/calamares_ca.ts index 800221588..66f10c019 100644 --- a/lang/calamares_ca.ts +++ b/lang/calamares_ca.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Configuració - + Install Instal·la @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Ha fallat la tasca (%1) - + Programmed job failure was explicitly requested. S'ha demanat explícitament la fallada de la tasca programada. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Fet @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Tasca d'exemple (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Executa l'ordre "%1" al sistema de destinació. - + Run command '%1'. Executa l'ordre "%1". - + Running command %1 %2 S'executa l'ordre %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. S'executa l'operació %1. - + Bad working directory path Camí incorrecte al directori de treball - + Working directory %1 for python job %2 is not readable. El directori de treball %1 per a la tasca python %2 no és llegible. - + Bad main script file Fitxer erroni d'script principal - + Main script file %1 for python job %2 is not readable. El fitxer de script principal %1 per a la tasca de python %2 no és llegible. - + Boost.Python error in job "%1". Error de Boost.Python a la tasca "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + S'ha completat la comprovació dels requeriments per al mòdul <i>%1</i>. + - + Waiting for %n module(s). S'espera %n mòdul. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n segon) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. S'ha completat la comprovació dels requeriments del sistema. @@ -273,13 +278,13 @@ - + &Yes &Sí - + &No &No @@ -314,109 +319,109 @@ <br/>No s'han pogut carregar els mòduls següents: - + Continue with setup? Voleu continuar la configuració? - + Continue with installation? Voleu continuar la instal·lació? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> El programa de configuració %1 està a punt de fer canvis al disc per tal de configurar %2.<br/><strong>No podreu desfer aquests canvis.</strong> - + 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> L'instal·lador per a %1 està a punt de fer canvis al disc per tal d'instal·lar-hi %2.<br/><strong>No podreu desfer aquests canvis.</strong> - + &Set up now Con&figura-ho ara - + &Install now &Instal·la'l ara - + Go &back Ves &enrere - + &Set up Con&figura-ho - + &Install &Instal·la - + Setup is complete. Close the setup program. La configuració s'ha acabat. Tanqueu el programa de configuració. - + The installation is complete. Close the installer. La instal·lació s'ha acabat. Tanqueu l'instal·lador. - + Cancel setup without changing the system. Cancel·la la configuració sense canviar el sistema. - + Cancel installation without changing the system. Cancel·leu la instal·lació sense canviar el sistema. - + &Next &Següent - + &Back &Enrere - + &Done &Fet - + &Cancel &Cancel·la - + Cancel setup? Voleu cancel·lar la configuració? - + Cancel installation? Voleu cancel·lar la instal·lació? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Realment voleu cancel·lar el procés de configuració actual? El programa de configuració es tancarà i es perdran tots els canvis. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Voleu cancel·lar el procés d'instal·lació actual? @@ -426,22 +431,22 @@ L'instal·lador es tancarà i tots els canvis es perdran. CalamaresPython::Helper - + Unknown exception type Tipus d'excepció desconeguda - + unparseable Python error Error de Python no analitzable - + unparseable Python traceback Traceback de Python no analitzable - + Unfetchable Python error. Error de Python irrecuperable. @@ -459,32 +464,32 @@ L'instal·lador es tancarà i tots els canvis es perdran. CalamaresWindow - + Show debug information Informació de depuració - + &Back &Enrere - + &Next &Següent - + &Cancel &Cancel·la - + %1 Setup Program Programa de configuració %1 - + %1 Installer Instal·lador de %1 @@ -681,18 +686,18 @@ L'instal·lador es tancarà i tots els canvis es perdran. CommandList - - + + Could not run command. No s'ha pogut executar l'ordre. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. L'odre s'executa a l'entorn de l'amfitrió i necessita saber el camí de l'arrel, però no hi ha definit el punt de muntatge de l'arrel. - + The command needs to know the user's name, but no username is defined. L'ordre necessita saber el nom de l'usuari, però no s'ha definit cap nom d'usuari. @@ -745,49 +750,49 @@ L'instal·lador es tancarà i tots els canvis es perdran. Instal·lació per xarxa. (Inhabilitada: no es poden obtenir les llistes de paquets, comproveu la connexió.) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Aquest ordinador no satisfà els requisits mínims per configurar-hi %1.<br/> La configuració no pot continuar. <a href="#details">Detalls...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Aquest ordinador no satisfà els requisits mínims per instal·lar-hi %1.<br/> La instal·lació no pot continuar. <a href="#details">Detalls...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Aquest ordinador no satisfà alguns dels requisits recomanats per configurar-hi %1.<br/>La configuració pot continuar, però algunes característiques podrien estar inhabilitades. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Aquest ordinador no satisfà alguns dels requisits recomanats per instal·lar-hi %1.<br/>La instal·lació pot continuar, però algunes característiques podrien estar inhabilitades. - + This program will ask you some questions and set up %2 on your computer. Aquest programa us farà unes preguntes i instal·larà %2 a l'ordinador. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Benvingut/da al programa de configuració del Calamares per a %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Benvingut/da al programa de configuració del Calamares per a %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Benvingut/da a la configuració per a %1.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Benvingut/da a la configuració per a %1</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Benvingut/da a l'instal·lador Calamares per a %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Benvingut/da a l'instal·lador Calamares per a %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Benvingut/da a l'instal·lador per a %1.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Benvingut/da a l'instal·lador per a %1</h1> @@ -1224,37 +1229,37 @@ L'instal·lador es tancarà i tots els canvis es perdran. FillGlobalStorageJob - + Set partition information Estableix la informació de la partició - + Install %1 on <strong>new</strong> %2 system partition. Instal·la %1 a la partició de sistema <strong>nova</strong> %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Estableix la partició <strong>nova</strong> %2 amb el punt de muntatge <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instal·la %2 a la partició de sistema %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Estableix la partició %3 <strong>%1</strong> amb el punt de muntatge <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instal·la el gestor d'arrencada a <strong>%1</strong>. - + Setting up mount points. S'estableixen els punts de muntatge. @@ -1272,32 +1277,32 @@ L'instal·lador es tancarà i tots els canvis es perdran. &Reinicia ara - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Tot fet.</h1><br/>%1 s'ha configurat a l'ordinador.<br/>Ara podeu començar a usar el nou sistema. - + <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 setup program.</p></body></html> <html><head/><body><p>Quan aquesta casella està marcada, el sistema es reiniciarà immediatament quan cliqueu a <span style="font-style:italic;">Fet</span> o tanqueu el programa de configuració.</p></body></html> - + <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>Tot fet.</h1><br/>%1 s'ha instal·lat a l'ordinador.<br/>Ara podeu reiniciar-lo per tal d'accedir al sistema operatiu nou o bé continuar usant l'entorn autònom de %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Quan aquesta casella està marcada, el sistema es reiniciarà immediatament quan cliqueu a <span style=" font-style:italic;">Fet</span> o tanqueu l'instal·lador.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>La configuració ha fallat.</h1><br/>No s'ha configurat %1 a l'ordinador.<br/>El missatge d'error ha estat el següent: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>La instal·lació ha fallat</h1><br/>No s'ha instal·lat %1 a l'ordinador.<br/>El missatge d'error ha estat el següent: %2. @@ -1305,27 +1310,27 @@ L'instal·lador es tancarà i tots els canvis es perdran. FinishedViewStep - + Finish Acaba - + Setup Complete Configuració completa - + Installation Complete Instal·lació acabada - + The setup of %1 is complete. La configuració de %1 ha acabat. - + The installation of %1 is complete. La instal·lació de %1 ha acabat. @@ -1356,72 +1361,72 @@ L'instal·lador es tancarà i tots els canvis es perdran. GeneralRequirements - + has at least %1 GiB available drive space tingui com a mínim %1 GiB d'espai de disc disponible. - + There is not enough drive space. At least %1 GiB is required. No hi ha prou espai de disc disponible. Com a mínim hi ha d'haver %1 GiB. - + has at least %1 GiB working memory tingui com a mínim %1 GiB de memòria de treball. - + The system does not have enough working memory. At least %1 GiB is required. El sistema no té prou memòria de treball. Com a mínim hi ha d'haver %1 GiB. - + is plugged in to a power source estigui connectat a una presa de corrent. - + The system is not plugged in to a power source. El sistema no està connectat a una presa de corrent. - + is connected to the Internet estigui connectat a Internet. - + The system is not connected to the Internet. El sistema no està connectat a Internet. - + is running the installer as an administrator (root) executi l'instal·lador com a administrador (arrel). - + The setup program is not running with administrator rights. El programa de configuració no s'executa amb privilegis d'administrador. - + The installer is not running with administrator rights. L'instal·lador no s'executa amb privilegis d'administrador. - + has a screen large enough to show the whole installer tingui una pantalla prou grossa per mostrar completament l'instal·lador. - + The screen is too small to display the setup program. La pantalla és massa petita per mostrar el programa de configuració. - + The screen is too small to display the installer. La pantalla és massa petita per mostrar l'instal·lador. @@ -1769,6 +1774,18 @@ L'instal·lador es tancarà i tots els canvis es perdran. No hi ha punt de muntatge d'arrel establert per a MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Si us plau, seleccioneu la ubicació preferida al mapa perquè l'instal·lador pugui suggerir la configuració +de la llengua i la zona horària. Podeu afinar la configuració suggerida a continuació. Busqueu pel mapa arrossegant-lo +per desplaçar-s'hi i useu els botons +/- per fer ampliar-lo o reduir-lo, o bé useu la rodeta del ratolí. + + NetInstallViewStep @@ -1907,6 +1924,19 @@ L'instal·lador es tancarà i tots els canvis es perdran. Estableix l'identificador de lots d'OEM a<code>%1</code>. + + Offline + + + Timezone: %1 + Zona horària: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Per poder seleccionar una zona horària, assegureu-vos que hi hagi connexió a Internet. Reinicieu l'instal·lador després de connectar-hi. A continuació podeu afinar la configuració local i de la llengua. + + PWQ @@ -2494,107 +2524,107 @@ L'instal·lador es tancarà i tots els canvis es perdran. Particions - + Install %1 <strong>alongside</strong> another operating system. Instal·la %1 <strong>al costat</strong> d'un altre sistema operatiu. - + <strong>Erase</strong> disk and install %1. <strong>Esborra</strong> el disc i instal·la-hi %1. - + <strong>Replace</strong> a partition with %1. <strong>Reemplaça</strong> una partició amb %1. - + <strong>Manual</strong> partitioning. Particions <strong>manuals</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instal·la %1 <strong>al costat</strong> d'un altre sistema operatiu al disc <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Esborra</strong> el disc <strong>%2</strong> (%3) i instal·la-hi %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Reemplaça</strong> una partició del disc <strong>%2</strong> (%3) amb %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particions <strong>manuals</strong> del disc <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disc <strong>%1</strong> (%2) - + Current: Actual: - + After: Després: - + No EFI system partition configured No hi ha cap partició EFI de sistema configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</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. Cal una partició EFI de sistema per iniciar %1. <br/><br/>Per configurar una partició EFI de sistema, torneu enrere i seleccioneu o creeu un sistema de fitxers FAT32 amb la bandera <strong>%3</strong> habilitada i el punt de muntatge <strong>%2</strong>. <br/><br/>Podeu continuar sense la creació d'una partició EFI de sistema, però el sistema podria no iniciar-se. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. Cal una partició EFI de sistema per iniciar %1. <br/><br/> Ja s'ha configurat una partició amb el punt de muntatge <strong>%2</strong> però no se n'ha establert la bandera <strong>%3</strong>. <br/>Per establir-la-hi, torneu enrere i editeu la partició. <br/><br/>Podeu continuar sense establir la bandera, però el sistema podria no iniciar-se. - + EFI system partition flag not set No s'ha establert la bandera de la partició EFI del sistema - + Option to use GPT on BIOS Opció per usar GPT amb BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. La millor opció per a tots els sistemes és una taula de particions GPT. Aquest instal·lador també admet aquesta configuració per a sistemes BIOS.<br/><br/>Per configurar una taula de particions GPT en un sistema BIOS, (si no s'ha fet ja) torneu enrere i establiu la taula de particions a GPT, després creeu una partició sense formatar de 8 MB amb la bandera <strong>bios_grub</strong> habilitada.<br/><br/>Cal una partició sense format de 8 MB per iniciar %1 en un sistema BIOS amb GPT. - + Boot partition not encrypted Partició d'arrencada sense encriptar - + 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. S'ha establert una partició d'arrencada separada conjuntament amb una partició d'arrel encriptada, però la partició d'arrencada no està encriptada.<br/><br/>Hi ha assumptes de seguretat amb aquest tipus de configuració, perquè hi ha fitxers del sistema importants en una partició no encriptada.<br/>Podeu continuar, si així ho desitgeu, però el desbloqueig del sistema de fitxers succeirà després, durant l'inici del sistema.<br/>Per encriptar la partició d'arrencada, torneu enrere i torneu-la a crear seleccionant <strong>Encripta</strong> a la finestra de creació de la partició. - + has at least one disk device available. tingui com a mínim un dispositiu de disc disponible. - + There are no partitions to install on. No hi ha particions per fer-hi una instal·lació. @@ -2660,14 +2690,14 @@ L'instal·lador es tancarà i tots els canvis es perdran. ProcessResult - + There was no output from the command. No hi ha hagut sortida de l'ordre. - + Output: @@ -2676,52 +2706,52 @@ Sortida: - + External command crashed. L'ordre externa ha fallat. - + Command <i>%1</i> crashed. L'ordre <i>%1</i> ha fallat. - + External command failed to start. L'ordre externa no s'ha pogut iniciar. - + Command <i>%1</i> failed to start. L'ordre <i>%1</i> no s'ha pogut iniciar. - + Internal error when starting command. Error intern en iniciar l'ordre. - + Bad parameters for process job call. Paràmetres incorrectes per a la crida de la tasca del procés. - + External command failed to finish. L'ordre externa no ha acabat correctament. - + Command <i>%1</i> failed to finish in %2 seconds. L'ordre <i>%1</i> no ha pogut acabar en %2 segons. - + External command finished with errors. L'ordre externa ha acabat amb errors. - + Command <i>%1</i> finished with exit code %2. L'ordre <i>%1</i> ha acabat amb el codi de sortida %2. @@ -2729,32 +2759,27 @@ Sortida: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - S'ha completat la comprovació dels requeriments per al mòdul <i>%1</i>. - - - + unknown desconeguda - + extended ampliada - + unformatted sense format - + swap Intercanvi @@ -2808,6 +2833,16 @@ Sortida: Espai sense partir o taula de particions desconeguda + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Aquest ordinador no satisfà alguns dels requisits recomanats per configurar-hi %1.<br/> +La configuració pot continuar, però algunes característiques podrien estar inhabilitades.</p> + + RemoveUserJob @@ -2843,73 +2878,90 @@ Sortida: Formulari - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Seleccioneu on instal·lar %1.<br/><font color="red">Atenció: </font>això suprimirà tots els fitxers de la partició seleccionada. - + The selected item does not appear to be a valid partition. L'element seleccionat no sembla que sigui una partició vàlida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 no es pot instal·lar en un espai buit. Si us plau, seleccioneu una partició existent. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 no es pot instal·lar en un partició ampliada. Si us plau, seleccioneu una partició existent primària o lògica. - + %1 cannot be installed on this partition. %1 no es pot instal·lar en aquesta partició. - + Data partition (%1) Partició de dades (%1) - + Unknown system partition (%1) Partició de sistema desconeguda (%1) - + %1 system partition (%2) %1 partició de sistema (%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>%4</strong><br/><br/>La partició %1 és massa petita per a %2. Si us plau, seleccioneu una partició amb capacitat d'almenys %3 GB. - + <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>%2</strong><br/><br/>No es pot trobar cap partició EFI enlloc del sistema. Si us plau, torneu enrere i useu les particions manuals per establir %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. <strong>%3</strong><br/><br/>%1 s'instal·larà a %2.<br/><font color="red">Atenció: </font>totes les dades de la partició %2 es perdran. - + The EFI system partition at %1 will be used for starting %2. La partició EFI de sistema a %1 s'usarà per iniciar %2. - + EFI system partition: Partició EFI del sistema: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Aquest ordinador no satisfà els requisits mínims per instal·lar-hi %1.<br/> +La instal·lació no pot continuar.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Aquest ordinador no satisfà alguns dels requisits recomanats per configurar-hi %1.<br/> +La configuració pot continuar, però algunes característiques podrien estar inhabilitades.</p> + + ResizeFSJob @@ -3032,12 +3084,12 @@ Sortida: ResultsListDialog - + For best results, please ensure that this computer: Per obtenir els millors resultats, assegureu-vos, si us plau, que aquest ordinador... - + System requirements Requisits del sistema @@ -3045,27 +3097,27 @@ Sortida: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Aquest ordinador no satisfà els requisits mínims per configurar-hi %1.<br/> La configuració no pot continuar. <a href="#details">Detalls...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Aquest ordinador no satisfà els requisits mínims per instal·lar-hi %1.<br/> La instal·lació no pot continuar. <a href="#details">Detalls...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Aquest ordinador no satisfà alguns dels requisits recomanats per configurar-hi %1.<br/>La configuració pot continuar, però algunes característiques podrien estar inhabilitades. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Aquest ordinador no satisfà alguns dels requisits recomanats per instal·lar-hi %1.<br/>La instal·lació pot continuar, però algunes característiques podrien estar inhabilitades. - + This program will ask you some questions and set up %2 on your computer. Aquest programa us farà unes preguntes i instal·larà %2 a l'ordinador. @@ -3348,51 +3400,80 @@ Sortida: TrackingInstallJob - + Installation feedback Informació de retorn de la instal·lació - + Sending installation feedback. S'envia la informació de retorn de la instal·lació. - + Internal error in install-tracking. Error intern a install-tracking. - + HTTP request timed out. La petició HTTP ha esgotat el temps d'espera. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + Informació de retorn d'usuaris de KDE + + + + Configuring KDE user feedback. + Es configura la informació de retorn dels usuaris de KDE. + + + + + Error in KDE user feedback configuration. + Error de configuració de la informació de retorn dels usuaris de KDE. + - + + Could not configure KDE user feedback correctly, script error %1. + No s'ha pogut configurar la informació de retorn dels usuaris de KDE correctament. Error d'script %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + No s'ha pogut configurar la informació de retorn dels usuaris de KDE correctament. Error del Calamares %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Informació de retorn de la màquina - + Configuring machine feedback. Es configura la informació de retorn de la màquina. - - + + Error in machine feedback configuration. Error a la configuració de la informació de retorn de la màquina. - + Could not configure machine feedback correctly, script error %1. No s'ha pogut configurar la informació de retorn de la màquina correctament. Error d'script %1. - + Could not configure machine feedback correctly, Calamares error %1. No s'ha pogut configurar la informació de retorn de la màquina correctament. Error del Calamares %1. @@ -3411,8 +3492,8 @@ Sortida: - <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>Si seleccioneu això, no enviareu <span style=" font-weight:600;">cap mena d'informació</span> sobre la vostra instal·lació.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Cliqueu aquí per no enviar <span style=" font-weight:600;">cap mena d'informació</span> de la vostra instal·lació.</p></body></html> @@ -3420,30 +3501,30 @@ Sortida: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Cliqueu aquí per a més informació sobre la informació de retorn dels usuaris.</span></a></p></body></html> - - Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - El seguiment de la instal·lació ajuda %1 a veure quants usuaris tenen, en quin maquinari s'instal·la %1 i (amb les últimes dues opcions de baix), a obtenir informació contínua d'aplicacions preferides. Per veure el que s'enviarà, cliqueu a la icona d'ajuda contigua a cada àrea. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + El seguiment ajuda els desenvolupadors de %1 a veure amb quina freqüència, en quin maquinari s’instal·la i quines aplicacions s’usen. Per veure què s’enviarà, cliqueu a la icona d’ajuda que hi ha al costat de cada àrea. - - By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - Si seleccioneu això, enviareu informació sobre la vostra instal·lació i el vostre maquinari. Aquesta informació <b>només s'enviarà un cop</b> després d'acabar la instal·lació. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Si seleccioneu això, enviareu informació de la vostra instal·lació i el vostre maquinari. Aquesta informació només s'enviarà <b>un cop</b> després d'acabar la instal·lació. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Si seleccioneu això, enviareu informació <b>periòdicament</b>sobre la instal·lació, el maquinari i les aplicacions a %1. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Si seleccioneu això, enviareu informació periòdicament de la instal·lació a la vostra <b>màquina</b>, el maquinari i les aplicacions a %1. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Si seleccioneu això, enviareu informació <b>regularment</b>sobre la instal·lació, el maquinari, les aplicacions i els patrons d'ús a %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Si seleccioneu això, enviareu informació regularment de la instal·lació del vostre <b>usuari</b>, el maquinari, les aplicacions i els patrons d'ús a %1. TrackingViewStep - + Feedback Informació de retorn @@ -3629,42 +3710,42 @@ Sortida: &Notes de la versió - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Benvingut/da al programa de configuració del Calamares per a %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Benvingut/da a la configuració per a %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Benvingut/da a l'instal·lador Calamares per a %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Benvingut/da a l'instal·lador per a %1.</h1> - + %1 support %1 suport - + About %1 setup Quant a la configuració de %1 - + About %1 installer Quant a l'instal·lador %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Agraïments per a <a href="https://calamares.io/team/">l'equip del Calamares</a> i per a <a href="https://www.transifex.com/calamares/calamares/">l'equip de traductors del Calamares</a>.<br/><br/>El desenvolupament del<a href="https://calamares.io/">Calamares</a> està patrocinat per <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3672,7 +3753,7 @@ Sortida: WelcomeQmlViewStep - + Welcome Benvingut/da @@ -3680,7 +3761,7 @@ Sortida: WelcomeViewStep - + Welcome Benvingut/da @@ -3720,6 +3801,28 @@ Sortida: Enrere + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Llengües</h1> </br> + La configuració local del sistema afecta la llengua i el joc de caràcters d'alguns elements de la interfície de línia d'ordres. La configuració actual és <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Configuració local</h1> </br> + La configuració local del sistema afecta la llengua i el joc de caràcters d'alguns elements de la interfície de línia d'ordres. La configuració actual és <strong>%1</strong>. + + + + Back + Enrere + + keyboardq @@ -3765,6 +3868,24 @@ Sortida: Proveu el teclat. + + localeq + + + System language set to %1 + Llengua del sistema establerta a %1 + + + + Numbers and dates locale set to %1 + Llengua dels números i dates establerta a %1 + + + + Change + Canvia-ho + + notesqml @@ -3838,27 +3959,27 @@ Sortida: <p>Aquest programa us preguntarà unes quantes coses i instal·larà el %1 a l'ordinador. </p> - + About Quant a - + Support Suport - + Known issues Problemes coneguts - + Release notes Notes de la versió - + Donate Feu una donació diff --git a/lang/calamares_ca@valencia.ts b/lang/calamares_ca@valencia.ts index b959a29a5..0b8747b2e 100644 --- a/lang/calamares_ca@valencia.ts +++ b/lang/calamares_ca@valencia.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support %1 soport - + About %1 setup - + About %1 installer Sobre %1 instal·lador - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome Benvingut @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome Benvingut @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_cs_CZ.ts b/lang/calamares_cs_CZ.ts index 367c4f94d..e38f1ff69 100644 --- a/lang/calamares_cs_CZ.ts +++ b/lang/calamares_cs_CZ.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Nastavit - + Install Instalovat @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Úloha se nezdařila (%1) - + Programmed job failure was explicitly requested. Byl výslovně vyžádán nezdar naprogramované úlohy. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Hotovo @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Úloha pro ukázku (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Spustit v cílovém systému příkaz „%1“. - + Run command '%1'. Spustit příkaz „%1“ - + Running command %1 %2 Spouštění příkazu %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Spouštění %1 operace. - + Bad working directory path Chybný popis umístění pracovní složky - + Working directory %1 for python job %2 is not readable. Pracovní složku %1 pro Python skript %2 se nedaří otevřít pro čtení. - + Bad main script file Nesprávný soubor s hlavním skriptem - + Main script file %1 for python job %2 is not readable. Hlavní soubor s python skriptem %1 pro úlohu %2 se nedaří otevřít pro čtení.. - + Boost.Python error in job "%1". Boost.Python chyba ve skriptu „%1“. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Kontrola požadavků pro modul <i>%1</i> dokončena. + - + Waiting for %n module(s). Čeká se na %n modul @@ -238,7 +243,7 @@ - + (%n second(s)) (%n sekundu) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. Kontrola požadavků na systém dokončena. @@ -277,13 +282,13 @@ - + &Yes &Ano - + &No &Ne @@ -318,109 +323,109 @@ <br/> Následující moduly se nepodařilo načíst: - + Continue with setup? Pokračovat s instalací? - + Continue with installation? Pokračovat v instalaci? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Instalátor %1 provede změny na datovém úložišti, aby bylo nainstalováno %2.<br/><strong>Změny nebude možné vrátit zpět.</strong> - + 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> Instalátor %1 provede změny na datovém úložišti, aby bylo nainstalováno %2.<br/><strong>Změny nebude možné vrátit zpět.</strong> - + &Set up now Na&stavit nyní - + &Install now &Spustit instalaci - + Go &back Jít &zpět - + &Set up Na&stavit - + &Install Na&instalovat - + Setup is complete. Close the setup program. Nastavení je dokončeno. Ukončete nastavovací program. - + The installation is complete. Close the installer. Instalace je dokončena. Ukončete instalátor. - + Cancel setup without changing the system. Zrušit nastavení bez změny v systému. - + Cancel installation without changing the system. Zrušení instalace bez provedení změn systému. - + &Next &Další - + &Back &Zpět - + &Done &Hotovo - + &Cancel &Storno - + Cancel setup? Zrušit nastavování? - + Cancel installation? Přerušit instalaci? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Opravdu chcete přerušit instalaci? Instalační program bude ukončen a všechny změny ztraceny. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Opravdu chcete instalaci přerušit? @@ -430,22 +435,22 @@ Instalační program bude ukončen a všechny změny ztraceny. CalamaresPython::Helper - + Unknown exception type Neznámý typ výjimky - + unparseable Python error Chyba při zpracovávání (parse) Python skriptu. - + unparseable Python traceback Chyba při zpracovávání (parse) Python záznamu volání funkcí (traceback). - + Unfetchable Python error. Chyba při načítání Python skriptu. @@ -463,32 +468,32 @@ Instalační program bude ukončen a všechny změny ztraceny. CalamaresWindow - + Show debug information Zobrazit ladící informace - + &Back &Zpět - + &Next &Další - + &Cancel &Storno - + %1 Setup Program Instalátor %1 - + %1 Installer %1 instalátor @@ -685,18 +690,18 @@ Instalační program bude ukončen a všechny změny ztraceny. CommandList - - + + Could not run command. Nedaří se spustit příkaz. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Příkaz bude spuštěn v prostředí hostitele a potřebuje znát popis umístění kořene souborového systému. rootMountPoint ale není zadaný. - + The command needs to know the user's name, but no username is defined. Příkaz potřebuje znát uživatelské jméno, to ale zadáno nebylo. @@ -749,49 +754,49 @@ Instalační program bude ukončen a všechny změny ztraceny. Síťová instalace. (Vypnuto: Nedaří se stáhnout seznamy balíčků – zkontrolujte připojení k síti) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Počítač nesplňuje minimální požadavky pro instalaci %1.<br/>Instalace nemůže pokračovat <a href="#details">Podrobnosti…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Počítač nesplňuje minimální požadavky pro instalaci %1.<br/>Instalace nemůže pokračovat <a href="#details">Podrobnosti…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Počítač nesplňuje některé doporučené požadavky pro instalaci %1.<br/>Instalace může pokračovat, ale některé funkce mohou být vypnuty. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Počítač nesplňuje některé doporučené požadavky pro instalaci %1.<br/>Instalace může pokračovat, ale některé funkce mohou být vypnuty. - + This program will ask you some questions and set up %2 on your computer. Tento program vám položí několik dotazů, aby na základě odpovědí příslušně nainstaloval %2 na váš počítač. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Vítejte v Calamares, instalačním programu (nejen) pro %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Vítejte v instalátoru pro %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Vítejte v Calamares, instalačním programu (nejen) pro %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Vítejte v instalátoru %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1228,37 +1233,37 @@ Instalační program bude ukončen a všechny změny ztraceny. FillGlobalStorageJob - + Set partition information Nastavit informace o oddílu - + Install %1 on <strong>new</strong> %2 system partition. Nainstalovat %1 na <strong>nový</strong> %2 systémový oddíl. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Nastavit <strong>nový</strong> %2 oddíl s přípojným bodem <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Nainstalovat %2 na %3 systémový oddíl <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Nastavit %3 oddíl <strong>%1</strong> s přípojným bodem <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Nainstalovat zavaděč do <strong>%1</strong>. - + Setting up mount points. Nastavují se přípojné body. @@ -1276,32 +1281,32 @@ Instalační program bude ukončen a všechny změny ztraceny. &Restartovat nyní - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Instalace je u konce.</h1><br/>%1 byl nainstalován na váš počítač.<br/>Nyní ho můžete restartovat a přejít do čerstvě nainstalovaného systému, nebo můžete pokračovat v práci ve stávajícím prostředím %2, spuštěným z instalačního média. - + <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 setup program.</p></body></html> <html><head/><body><p>Když je tato kolonka zaškrtnutá, systém se restartuje jakmile kliknete na <span style="font-style:italic;">Hotovo</span> nebo zavřete instalátor.</p></body></html> - + <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>Instalace je u konce.</h1><br/>%1 bylo nainstalováno na váš počítač.<br/>Nyní ho můžete restartovat a přejít do čerstvě nainstalovaného systému, nebo můžete pokračovat v práci ve stávajícím prostředím %2, spuštěným z instalačního média. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Když je tato kolonka zaškrtnutá, systém se restartuje jakmile kliknete na <span style="font-style:italic;">Hotovo</span> nebo zavřete instalátor.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Instalace se nezdařila</h1><br/>%1 nebyl instalován na váš počítač.<br/>Hlášení o chybě: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalace se nezdařila</h1><br/>%1 nebylo nainstalováno na váš počítač.<br/>Hlášení o chybě: %2. @@ -1309,27 +1314,27 @@ Instalační program bude ukončen a všechny změny ztraceny. FinishedViewStep - + Finish Dokončit - + Setup Complete Nastavení dokončeno - + Installation Complete Instalace dokončena - + The setup of %1 is complete. Nastavení %1 je dokončeno. - + The installation of %1 is complete. Instalace %1 je dokončena. @@ -1360,72 +1365,72 @@ Instalační program bude ukončen a všechny změny ztraceny. GeneralRequirements - + has at least %1 GiB available drive space má alespoň %1 GiB dostupného prostoru - + There is not enough drive space. At least %1 GiB is required. Nedostatek místa na úložišti. Je potřeba nejméně %1 GiB. - + has at least %1 GiB working memory má alespoň %1 GiB operační paměti - + The system does not have enough working memory. At least %1 GiB is required. Systém nemá dostatek operační paměti. Je potřeba nejméně %1 GiB. - + is plugged in to a power source je připojený ke zdroji napájení - + The system is not plugged in to a power source. Systém není připojen ke zdroji napájení. - + is connected to the Internet je připojený k Internetu - + The system is not connected to the Internet. Systém není připojený k Internetu. - + is running the installer as an administrator (root) instalátor je spuštěný s právy správce systému (root) - + The setup program is not running with administrator rights. Nastavovací program není spuštěn s právy správce systému. - + The installer is not running with administrator rights. Instalační program není spuštěn s právy správce systému. - + has a screen large enough to show the whole installer má obrazovku dostatečně velkou pro zobrazení celého instalátoru - + The screen is too small to display the setup program. Rozlišení obrazovky je příliš malé pro zobrazení nastavovacího programu. - + The screen is too small to display the installer. Rozlišení obrazovky je příliš malé pro zobrazení instalátoru. @@ -1773,6 +1778,16 @@ Instalační program bude ukončen a všechny změny ztraceny. Pro MachineId není nastaven žádný kořenový přípojný bod. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1911,6 +1926,19 @@ Instalační program bude ukončen a všechny změny ztraceny. Nastavit identifikátor OEM série na <code>%1</code>. + + Offline + + + Timezone: %1 + Časová zóna: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2498,107 +2526,107 @@ Instalační program bude ukončen a všechny změny ztraceny. Oddíly - + Install %1 <strong>alongside</strong> another operating system. Nainstalovat %1 <strong>vedle</strong> dalšího operačního systému. - + <strong>Erase</strong> disk and install %1. <strong>Smazat</strong> obsah jednotky a nainstalovat %1. - + <strong>Replace</strong> a partition with %1. <strong>Nahradit</strong> oddíl %1. - + <strong>Manual</strong> partitioning. <strong>Ruční</strong> dělení úložiště. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Nainstalovat %1 <strong>vedle</strong> dalšího operačního systému na disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Vymazat</strong> obsah jednotky <strong>%2</strong> (%3) a nainstalovat %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Nahradit</strong> oddíl na jednotce <strong>%2</strong> (%3) %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ruční</strong> dělení jednotky <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Jednotka <strong>%1</strong> (%2) - + Current: Stávající: - + After: Potom: - + No EFI system partition configured Není nastavený žádný EFI systémový oddíl - + 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>%3</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. Pro spuštění %1 je potřeba EFI systémový oddíl.<br/><br/>Pro nastavení EFI systémového oddílu se vraťte zpět a vyberte nebo vytvořte oddíl typu FAT32 s příznakem <strong>%3</strong> a přípojným bodem <strong>%2</strong>.<br/><br/>Je možné pokračovat bez nastavení EFI systémového oddílu, ale systém nemusí jít spustit. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. Pro spuštění %1 je potřeba EFI systémový oddíl.<br/><br/>Byl nastaven oddíl s přípojným bodem <strong>%2</strong> ale nemá nastaven příznak <strong>%3</strong>.<br/>Pro nastavení příznaku se vraťte zpět a upravte oddíl.<br/><br/>Je možné pokračovat bez nastavení příznaku, ale systém nemusí jít spustit. - + EFI system partition flag not set Příznak EFI systémového oddílu není nastavený - + Option to use GPT on BIOS Volba použít GPT i pro BIOS zavádění (MBR) - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT tabulka oddílů je nejlepší volbou pro všechny systémy. Tento instalátor podporuje takové uspořádání i pro zavádění v režimu BIOS firmware.<br/><br/>Pro nastavení GPT tabulky oddílů v případě BIOS, (pokud už není provedeno) jděte zpět a nastavte tabulku oddílů na, dále vytvořte 8 MB oddíl (bez souborového systému s příznakem <strong>bios_grub</strong>.<br/><br/>Tento oddíl je zapotřebí pro spuštění %1 na systému s BIOS firmware/režimem a GPT. - + Boot partition not encrypted Zaváděcí oddíl není šifrován - + 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. Kromě šifrovaného kořenového oddílu byl vytvořen i nešifrovaný oddíl zavaděče.<br/><br/>To by mohl být bezpečnostní problém, protože na nešifrovaném oddílu jsou důležité soubory systému.<br/>Pokud chcete, můžete pokračovat, ale odemykání souborového systému bude probíhat později při startu systému.<br/>Pro zašifrování oddílu zavaděče se vraťte a vytvořte ho vybráním možnosti <strong>Šifrovat</strong> v okně při vytváření oddílu. - + has at least one disk device available. má k dispozici alespoň jedno zařízení pro ukládání dat. - + There are no partitions to install on. Nejsou zde žádné oddíly na které by se dalo nainstalovat. @@ -2664,14 +2692,14 @@ Instalační program bude ukončen a všechny změny ztraceny. ProcessResult - + There was no output from the command. Příkaz neposkytl žádný výstup. - + Output: @@ -2680,52 +2708,52 @@ Výstup: - + External command crashed. Vnější příkaz byl neočekávaně ukončen. - + Command <i>%1</i> crashed. Příkaz <i>%1</i> byl neočekávaně ukončen. - + External command failed to start. Vnější příkaz se nepodařilo spustit. - + Command <i>%1</i> failed to start. Příkaz <i>%1</i> se nepodařilo spustit. - + Internal error when starting command. Vnitřní chyba při spouštění příkazu. - + Bad parameters for process job call. Chybné parametry volání úlohy procesu. - + External command failed to finish. Vnější příkaz se nepodařilo dokončit. - + Command <i>%1</i> failed to finish in %2 seconds. Příkaz <i>%1</i> se nepodařilo dokončit do %2 sekund. - + External command finished with errors. Vnější příkaz skončil s chybami. - + Command <i>%1</i> finished with exit code %2. Příkaz <i>%1</i> skončil s návratovým kódem %2. @@ -2733,32 +2761,27 @@ Výstup: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Kontrola požadavků pro modul <i>%1</i> dokončena. - - - + unknown neznámý - + extended rozšířený - + unformatted nenaformátovaný - + swap odkládací oddíl @@ -2812,6 +2835,15 @@ Výstup: Nerozdělené prázné místo nebo neznámá tabulka oddílů + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2847,73 +2879,88 @@ Výstup: Formulář - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Vyberte, kam nainstalovat %1.<br/><font color="red">Upozornění: </font>tímto smažete všechny soubory ve vybraném oddílu. - + The selected item does not appear to be a valid partition. Vybraná položka se nezdá být platným oddílem. - + %1 cannot be installed on empty space. Please select an existing partition. %1 nemůže být instalován na místo bez oddílu. Vyberte existující oddíl. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 nemůže být instalován na rozšířený oddíl. Vyberte existující primární nebo logický oddíl. - + %1 cannot be installed on this partition. %1 nemůže být instalován na tento oddíl. - + Data partition (%1) Datový oddíl (%1) - + Unknown system partition (%1) Neznámý systémový oddíl (%1) - + %1 system partition (%2) %1 systémový oddíl (%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>%4</strong><br/><br/>Oddíl %1 je příliš malý pro %2. Vyberte oddíl s kapacitou alespoň %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>%2</strong><br/><br/>EFI systémový oddíl nenalezen. Vraťte se, zvolte ruční rozdělení jednotky, a nastavte %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. <strong>%3</strong><br/><br/>%1 bude instalován na %2.<br/><font color="red">Upozornění: </font>všechna data v oddílu %2 budou ztracena. - + The EFI system partition at %1 will be used for starting %2. Pro zavedení %2 se využije EFI systémový oddíl %1. - + EFI system partition: EFI systémový oddíl: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3036,12 +3083,12 @@ Výstup: ResultsListDialog - + For best results, please ensure that this computer: Nejlepších výsledků se dosáhne, pokud tento počítač bude: - + System requirements Požadavky na systém @@ -3049,27 +3096,27 @@ Výstup: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Počítač nesplňuje minimální požadavky pro instalaci %1.<br/>Instalace nemůže pokračovat <a href="#details">Podrobnosti…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Počítač nesplňuje minimální požadavky pro instalaci %1.<br/>Instalace nemůže pokračovat <a href="#details">Podrobnosti…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Počítač nesplňuje některé doporučené požadavky pro instalaci %1.<br/>Instalace může pokračovat, ale některé funkce mohou být vypnuty. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Počítač nesplňuje některé doporučené požadavky pro instalaci %1.<br/>Instalace může pokračovat, ale některé funkce mohou být vypnuty. - + This program will ask you some questions and set up %2 on your computer. Tento program vám položí několik dotazů, aby na základě odpovědí příslušně nainstaloval %2 na váš počítač. @@ -3352,51 +3399,80 @@ Výstup: TrackingInstallJob - + Installation feedback Zpětná vazba z instalace - + Sending installation feedback. Posílání zpětné vazby z instalace. - + Internal error in install-tracking. Vnitřní chyba v install-tracking. - + HTTP request timed out. Překročen časový limit HTTP požadavku. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Zpětná vazba stroje - + Configuring machine feedback. Nastavování zpětné vazby stroje - - + + Error in machine feedback configuration. Chyba v nastavení zpětné vazby stroje. - + Could not configure machine feedback correctly, script error %1. Nepodařilo se správně nastavit zpětnou vazbu stroje, chyba skriptu %1. - + Could not configure machine feedback correctly, Calamares error %1. Nepodařilo se správně nastavit zpětnou vazbu stroje, chyba Calamares %1. @@ -3415,8 +3491,8 @@ Výstup: - <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>Nastavením tohoto nebudete posílat <span style=" font-weight:600;">žádné vůbec žádné informace</span> o vaší instalaci.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3424,30 +3500,30 @@ Výstup: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Kliknutím sem se dozvíte více o zpětné vazbě od uživatelů</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. - Sledování instalace pomůže %1 zjistit, kolik má uživatelů, na jakém hardware %1 instalují a (s posledními dvěma možnostmi níže), získávat průběžné informace o upřednostňovaných aplikacích. Co bude posíláno je možné si zobrazit kliknutím na ikonu nápovědy v každé z oblastí. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Výběrem tohoto pošlete informace o své instalaci a hardware. Tyto údaje budou poslány <b>pouze jednorázově</b> po dokončení instalace. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Výběrem tohoto budete <b>pravidelně</b> posílat informace o své instalaci, hardware a aplikacích do %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Výběrem tohoto budete <b>pravidelně</b> posílat informace o své instalaci, hardware, aplikacích a způsobu využití do %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Zpětná vazba @@ -3633,42 +3709,42 @@ Výstup: &Poznámky k vydání - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Vítejte v Calamares, instalačním programu (nejen) pro %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Vítejte v instalátoru pro %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Vítejte v Calamares, instalačním programu (nejen) pro %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Vítejte v instalátoru %1.</h1> - + %1 support %1 podpora - + About %1 setup O nastavování %1 - + About %1 installer O instalátoru %1. - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Poděkování <a href="https://calamares.io/team/">týmu Calamares</a> a <a href="https://www.transifex.com/calamares/calamares/">týmu překladatelů Calamares</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> vývoj je sponzorován <br/><a href="http://www.blue-systems.com/">Blue Systems</a> – Liberating Software. @@ -3676,7 +3752,7 @@ Výstup: WelcomeQmlViewStep - + Welcome Vítejte @@ -3684,7 +3760,7 @@ Výstup: WelcomeViewStep - + Welcome Vítejte @@ -3713,6 +3789,26 @@ Výstup: Zpět + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Zpět + + keyboardq @@ -3758,6 +3854,24 @@ Výstup: Vyzkoušejte si svou klávesnici + + localeq + + + System language set to %1 + Jazyk systému nastaven na %1 + + + + Numbers and dates locale set to %1 + Místní formát čísel a data nastaven na %1 + + + + Change + Změnit + + notesqml @@ -3831,27 +3945,27 @@ Výstup: <p>Tato aplikace vám položí několik otázek a na základě odpovědí příslušně nainstaluje %1 na váš počítač.</p> - + About O projektu - + Support Podpora - + Known issues Známé problémy - + Release notes Poznámky k vydání - + Donate Podpořit vývoj darem diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 2caa87006..76995d9d6 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Sæt op - + Install Installation @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Job mislykkedes (%1) - + Programmed job failure was explicitly requested. Mislykket programmeret job blev udtrykkeligt anmodet. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Færdig @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Eksempeljob (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Kør kommandoen '%1' i målsystemet. - + Run command '%1'. Kør kommandoen '%1'. - + Running command %1 %2 Kører kommando %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Kører %1-handling. - + Bad working directory path Ugyldig arbejdsmappesti - + Working directory %1 for python job %2 is not readable. Arbejdsmappen %1 til python-jobbet %2 er ikke læsbar. - + Bad main script file Ugyldig primær skriptfil - + Main script file %1 for python job %2 is not readable. Primær skriptfil %1 til python-jobbet %2 er ikke læsbar. - + Boost.Python error in job "%1". Boost.Python-fejl i job "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Tjek at krav for modulet <i>%1</i> er fuldført. + - + Waiting for %n module(s). Venter på %n modul. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n sekund) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Tjek af systemkrav er fuldført. @@ -273,13 +278,13 @@ - + &Yes &Ja - + &No &Nej @@ -314,109 +319,109 @@ <br/>Følgende moduler kunne ikke indlæses: - + Continue with setup? Fortsæt med opsætningen? - + Continue with installation? Fortsæt installationen? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1-opsætningsprogrammet er ved at foretage ændringer til din disk for at opsætte %2.<br/><strong>Det vil ikke være muligt at fortryde ændringerne.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1-installationsprogrammet er ved at foretage ændringer til din disk for at installere %2.<br/><strong>Det vil ikke være muligt at fortryde ændringerne.</strong> - + &Set up now &Sæt op nu - + &Install now &Installér nu - + Go &back Gå &tilbage - + &Set up &Sæt op - + &Install &Installér - + Setup is complete. Close the setup program. Opsætningen er fuldført. Luk opsætningsprogrammet. - + The installation is complete. Close the installer. Installationen er fuldført. Luk installationsprogrammet. - + Cancel setup without changing the system. Annullér opsætningen uden at ændre systemet. - + Cancel installation without changing the system. Annullér installation uden at ændre systemet. - + &Next &Næste - + &Back &Tilbage - + &Done &Færdig - + &Cancel &Annullér - + Cancel setup? Annullér opsætningen? - + Cancel installation? Annullér installationen? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Vil du virkelig annullere den igangværende opsætningsproces? Opsætningsprogrammet vil stoppe og alle ændringer vil gå tabt. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Vil du virkelig annullere den igangværende installationsproces? @@ -426,22 +431,22 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CalamaresPython::Helper - + Unknown exception type Ukendt undtagelsestype - + unparseable Python error Python-fejl som ikke kan fortolkes - + unparseable Python traceback Python-traceback som ikke kan fortolkes - + Unfetchable Python error. Python-fejl som ikke kan hentes. @@ -459,32 +464,32 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CalamaresWindow - + Show debug information Vis fejlretningsinformation - + &Back &Tilbage - + &Next &Næste - + &Cancel &Annullér - + %1 Setup Program %1-opsætningsprogram - + %1 Installer %1-installationsprogram @@ -681,18 +686,18 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CommandList - - + + Could not run command. Kunne ikke køre kommando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Kommandoen kører i værtsmiljøet og har brug for at kende rodstien, men der er ikke defineret nogen rootMountPoint. - + The command needs to know the user's name, but no username is defined. Kommandoen har brug for at kende brugerens navn, men der er ikke defineret noget brugernavn. @@ -745,49 +750,49 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Netværksinstallation. (deaktiveret: kunne ikke hente pakkelister, tjek din netværksforbindelse) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Computeren imødekommer ikke minimumsystemkravene for at opsætte %1.<br/>Opsætningen kan ikke fortsætte. <a href="#details">Detaljer ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Computeren imødekommer ikke minimumsystemkravene for at installere %1.<br/>Installationen kan ikke fortsætte. <a href="#details">Detaljer ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Computeren imødekommer ikke nogle af de anbefalede systemkrav for at opsætte %1.<br/>Opsætningen kan fortsætte, men nogle funktionaliteter kan være deaktiveret. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Computeren imødekommer ikke nogle af de anbefalede systemkrav for at installere %1.<br/>Installationen kan fortsætte, men nogle funktionaliteter kan være deaktiveret. - + This program will ask you some questions and set up %2 on your computer. Programmet vil stille dig nogle spørgsmål og opsætte %2 på din computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Velkommen til Calamares-opsætningsprogrammet til %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Velkommen til Calamares-opsætningsprogrammet til %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Velkommen til %1-opsætningen.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Velkommen til %1-opsætningen</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Velkommen til Calamares-installationsprogrammet for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Velkommen til Calamares-installationsprogrammet for %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Velkommen til %1-installationsprogrammet.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Velkommen til %1-installationsprogrammet</h1> @@ -1224,37 +1229,37 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. FillGlobalStorageJob - + Set partition information Sæt partitionsinformation - + Install %1 on <strong>new</strong> %2 system partition. Installér %1 på <strong>ny</strong> %2-systempartition. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Opsæt den <strong>nye</strong> %2 partition med monteringspunkt <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Installér %2 på %3-systempartition <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Opsæt %3 partition <strong>%1</strong> med monteringspunkt <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Installér bootloader på <strong>%1</strong>. - + Setting up mount points. Opsætter monteringspunkter. @@ -1272,32 +1277,32 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.&Genstart nu - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Færdig.</h1><br/>%1 er blevet opsat på din computer.<br/>Du kan nu begynde at bruge dit nye system. - + <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 setup program.</p></body></html> <html><head/><body><p>Når boksen er tilvalgt, vil dit system genstarte med det samme når du klikker på <span style="font-style:italic;">Færdig</span> eller lukker opsætningsprogrammet.</p></body></html> - + <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>Færdig.</h1><br/>%1 er blevet installeret på din computer.<br/>Du kan nu genstarte for at komme ind i dit nye system eller fortsætte med at bruge %2 livemiljøet. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Når boksen er tilvalgt, vil dit system genstarte med det samme når du klikker på <span style="font-style:italic;">Færdig</span> eller lukker installationsprogrammet.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Opsætningen mislykkede</h1><br/>%1 er ikke blevet sat op på din computer.<br/>Fejlmeddelelsen var: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation mislykkede</h1><br/>%1 er ikke blevet installeret på din computer.<br/>Fejlmeddelelsen var: %2. @@ -1305,27 +1310,27 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. FinishedViewStep - + Finish Færdig - + Setup Complete Opsætningen er fuldført - + Installation Complete Installation fuldført - + The setup of %1 is complete. Opsætningen af %1 er fuldført. - + The installation of %1 is complete. Installationen af %1 er fuldført. @@ -1356,72 +1361,72 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. GeneralRequirements - + has at least %1 GiB available drive space har mindst %1 GiB ledig plads på drevet - + There is not enough drive space. At least %1 GiB is required. Der er ikke nok ledig plads på drevet. Mindst %1 GiB er påkrævet. - + has at least %1 GiB working memory har mindst %1 GiB hukkommelse - + The system does not have enough working memory. At least %1 GiB is required. Systemet har ikke nok arbejdshukommelse. Mindst %1 GiB er påkrævet. - + is plugged in to a power source er tilsluttet en strømkilde - + The system is not plugged in to a power source. Systemet er ikke tilsluttet en strømkilde. - + is connected to the Internet er forbundet til internettet - + The system is not connected to the Internet. Systemet er ikke forbundet til internettet. - + is running the installer as an administrator (root) kører installationsprogrammet som administrator (root) - + The setup program is not running with administrator rights. Opsætningsprogrammet kører ikke med administratorrettigheder. - + The installer is not running with administrator rights. Installationsprogrammet kører ikke med administratorrettigheder. - + has a screen large enough to show the whole installer har en skærm, som er stor nok til at vise hele installationsprogrammet - + The screen is too small to display the setup program. Skærmen er for lille til at vise opsætningsprogrammet. - + The screen is too small to display the installer. Skærmen er for lille til at vise installationsprogrammet. @@ -1769,6 +1774,16 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Der er ikke angivet noget rodmonteringspunkt for MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Indstil OEM-batchidentifikatoren til <code>%1</code>. + + Offline + + + Timezone: %1 + Tidszone: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Partitioner - + Install %1 <strong>alongside</strong> another operating system. Installér %1 <strong>ved siden af</strong> et andet styresystem. - + <strong>Erase</strong> disk and install %1. <strong>Slet</strong> disk og installér %1. - + <strong>Replace</strong> a partition with %1. <strong>Erstat</strong> en partition med %1. - + <strong>Manual</strong> partitioning. <strong>Manuel</strong> partitionering. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installér %1 <strong>ved siden af</strong> et andet styresystem på disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Slet</strong> disk <strong>%2</strong> (%3) og installér %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Erstat</strong> en partition på disk <strong>%2</strong> (%3) med %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuel</strong> partitionering på disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Nuværende: - + After: Efter: - + No EFI system partition configured Der er ikke konfigureret nogen EFI-systempartition - + 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>%3</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. En EFI-systempartition er nødvendig for at starte %1.<br/><br/>For at konfigurere en EFI-systempartition skal du gå tilbage og vælge eller oprette et FAT32-filsystem med <strong>%3</strong>-flaget aktiveret og monteringspunkt <strong>%2</strong>.<br/><br/>Du kan fortsætte uden at opsætte en EFI-systempartition, men dit system vil muligvis ikke kunne starte. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. En EFI-systempartition er nødvendig for at starte %1.<br/><br/>En partition var konfigureret med monteringspunkt <strong>%2</strong>, men dens <strong>%3</strong>-flag var ikke sat.<br/>For at sætte flaget skal du gå tilbage og redigere partitionen.<br/><br/>Du kan fortsætte uden at konfigurere flaget, men dit system vil muligvis ikke kunne starte. - + EFI system partition flag not set EFI-systempartitionsflag ikke sat - + Option to use GPT on BIOS Valgmulighed til at bruge GPT på BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. En GPT-partitionstabel er den bedste valgmulighed til alle systemer. Installationsprogrammet understøtter også sådan en opsætning for BIOS-systemer.<br/><br/>Konfigurer en GPT-partitionstabel på BIOS, (hvis det ikke allerede er gjort) ved at gå tilbage og indstil partitionstabellen til GPT, opret herefter en 8 MB uformateret partition med <strong>bios_grub</strong>-flaget aktiveret.<br/><br/>En uformateret 8 MB partition er nødvendig for at starte %1 på et BIOS-system med GPT. - + Boot partition not encrypted Bootpartition ikke krypteret - + 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. En separat bootpartition blev opsat sammen med en krypteret rodpartition, men bootpartitionen er ikke krypteret.<br/><br/>Der er sikkerhedsmæssige bekymringer med denne slags opsætning, da vigtige systemfiler er gemt på en ikke-krypteret partition.<br/>Du kan fortsætte hvis du vil, men oplåsning af filsystemet sker senere under systemets opstart.<br/>For at kryptere bootpartitionen skal du gå tilbage og oprette den igen, vælge <strong>Kryptér</strong> i partitionsoprettelsesvinduet. - + has at least one disk device available. har mindst én tilgængelig diskenhed. - + There are no partitions to install on. Der er ikke nogen partitioner at installere på. @@ -2660,14 +2688,14 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. ProcessResult - + There was no output from the command. Der var ikke nogen output fra kommandoen. - + Output: @@ -2676,52 +2704,52 @@ Output: - + External command crashed. Ekstern kommando holdt op med at virke. - + Command <i>%1</i> crashed. Kommandoen <i>%1</i> holdte op med at virke. - + External command failed to start. Ekstern kommando kunne ikke starte. - + Command <i>%1</i> failed to start. Kommandoen <i>%1</i> kunne ikke starte. - + Internal error when starting command. Intern fejl ved start af kommando. - + Bad parameters for process job call. Ugyldige parametre til kald af procesjob. - + External command failed to finish. Ekstern kommando blev ikke færdig. - + Command <i>%1</i> failed to finish in %2 seconds. Kommandoen <i>%1</i> blev ikke færdig på %2 sekunder. - + External command finished with errors. Ekstern kommando blev færdig med fejl. - + Command <i>%1</i> finished with exit code %2. Kommandoen <i>%1</i> blev færdig med afslutningskoden %2. @@ -2729,32 +2757,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Tjek at krav for modulet <i>%1</i> er fuldført. - - - + unknown ukendt - + extended udvidet - + unformatted uformatteret - + swap swap @@ -2808,6 +2831,17 @@ Output: Upartitioneret plads eller ukendt partitionstabel + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Computeren imødekommer ikke nogle af de anbefalede systemkrav til opsætning af %1.<br/> +setting + Opsætningen kan fortsætte, men nogle funktionaliteter kan være deaktiveret.</p> + + RemoveUserJob @@ -2843,73 +2877,91 @@ Output: Formular - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Vælg hvor %1 skal installeres.<br/><font color="red">Advarsel: </font>Det vil slette alle filer på den valgte partition. - + The selected item does not appear to be a valid partition. Det valgte emne ser ikke ud til at være en gyldig partition. - + %1 cannot be installed on empty space. Please select an existing partition. %1 kan ikke installeres på tom plads. Vælg venligst en eksisterende partition. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 kan ikke installeres på en udvidet partition. Vælg venligst en eksisterende primær eller logisk partition. - + %1 cannot be installed on this partition. %1 kan ikke installeres på partitionen. - + Data partition (%1) Datapartition (%1) - + Unknown system partition (%1) Ukendt systempartition (%1) - + %1 system partition (%2) %1-systempartition (%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>%4</strong><br/><br/>Partitionen %1 er for lille til %2. Vælg venligst en partition med mindst %3 GiB plads. - + <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>%2</strong><br/><br/>En EFI-systempartition kunne ikke findes på systemet. Gå venligst tilbage og brug manuel partitionering til at opsætte %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. <strong>%3</strong><br/><br/>%1 vil blive installeret på %2.<br/><font color="red">Advarsel: </font>Al data på partition %2 vil gå tabt. - + The EFI system partition at %1 will be used for starting %2. EFI-systempartitionen ved %1 vil blive brugt til at starte %2. - + EFI system partition: EFI-systempartition: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Computeren imødekommer ikke minimumskravene til installation af %1. + Installation kan ikke fortsætte.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Computeren imødekommer ikke nogle af de anbefalede systemkrav til opsætning af %1.<br/> +setting + Opsætningen kan fortsætte, men nogle funktionaliteter kan være deaktiveret.</p> + + ResizeFSJob @@ -3032,12 +3084,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: For at få det bedste resultat sørg venligst for at computeren: - + System requirements Systemkrav @@ -3045,27 +3097,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Computeren imødekommer ikke minimumsystemkravene for at opsætte %1.<br/>Opsætningen kan ikke fortsætte. <a href="#details">Detaljer ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Computeren imødekommer ikke minimumsystemkravene for at installere %1.<br/>Installationen kan ikke fortsætte. <a href="#details">Detaljer ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Computeren imødekommer ikke nogle af de anbefalede systemkrav for at opsætte %1.<br/>Opsætningen kan fortsætte, men nogle funktionaliteter kan være deaktiveret. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Computeren imødekommer ikke nogle af de anbefalede systemkrav for at installere %1.<br/>Installationen kan fortsætte, men nogle funktionaliteter kan være deaktiveret. - + This program will ask you some questions and set up %2 on your computer. Programmet vil stille dig nogle spørgsmål og opsætte %2 på din computer. @@ -3348,51 +3400,80 @@ Output: TrackingInstallJob - + Installation feedback Installationsfeedback - + Sending installation feedback. Sender installationsfeedback. - + Internal error in install-tracking. Intern fejl i installationssporing. - + HTTP request timed out. HTTP-anmodning fik timeout. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + KDE-brugerfeedback + + + + Configuring KDE user feedback. + Konfigurer KDE-brugerfeedback. + + + + + Error in KDE user feedback configuration. + Fejl i konfiguration af KDE-brugerfeedback. + - + + Could not configure KDE user feedback correctly, script error %1. + Kunne ikke konfigurere KDE-brugerfeedback korrekt, fejl i script %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + Kunne ikke konfigurere KDE-brugerfeedback korrekt, fejl i Calamares %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Maskinfeedback - + Configuring machine feedback. Konfigurer maskinfeedback. - - + + Error in machine feedback configuration. Fejl i maskinfeedback-konfiguration. - + Could not configure machine feedback correctly, script error %1. Kunne ikke konfigurere maskinfeedback korrekt, skript-fejl %1. - + Could not configure machine feedback correctly, Calamares error %1. Kunne ikke konfigurere maskinfeedback korrekt, Calamares-fejl %1. @@ -3411,8 +3492,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Vælges dette sender du <span style=" font-weight:600;">slet ikke nogen information</span> om din installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Klik her for <span style=" font-weight:600;">slet ikke at sende nogen information</span> om din installation.</p></body></html> @@ -3420,30 +3501,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klik her for mere information om brugerfeedback</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. - Installationssporing hjælper %1 til at se hvor mange brugere de har, hvilket hardware de installere %1 på og (med de sidste to valgmuligheder nedenfor), hente information om fortrukne programmer løbende. Klik venligst på hjælp-ikonet ved siden af hvert område, for at se hvad der vil blive sendt. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Vælges dette sender du information om din installation og hardware. Informationen vil <b>første blive sendt</b> efter installationen er færdig. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Vælges dette sender du information om din installation og hardware. Informationen sendes kun <b>én gang</b> efter installationen er færdig. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Vælges dette sender du <b>periodisk</b> information om din installation, hardware og programmer, til %1. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Vælges dette sender du periodisk information om din <b>maskines</b> installation, hardware og programmer, til %1. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Vælges dette sender du <b>regelmæssigt</b> information om din installation, hardware, programmer og anvendelsesmønstre, til %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Feedback @@ -3629,42 +3710,42 @@ Output: &Udgivelsesnoter - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Velkommen til Calamares-opsætningsprogrammet til %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Velkommen til %1-opsætningen.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Velkommen til Calamares-installationsprogrammet for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Velkommen til %1-installationsprogrammet.</h1> - + %1 support %1 support - + About %1 setup Om %1-opsætningen - + About %1 installer Om %1-installationsprogrammet - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Ophavsret 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Ophavsret 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Tak til <a href="https://calamares.io/team/">Calamares-teamet</a> og <a href="https://www.transifex.com/calamares/calamares/">Calamares-oversætterteamet</a>.<br/><br/>Udviklingen af <a href="https://calamares.io/">Calamares</a> sponsoreres af <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3672,7 +3753,7 @@ Output: WelcomeQmlViewStep - + Welcome Velkommen @@ -3680,7 +3761,7 @@ Output: WelcomeViewStep - + Welcome Velkommen @@ -3720,6 +3801,28 @@ Output: Tilbage + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Sprog</h1></br> + Systemets lokalitetsindstilling har indflydelse på sproget og tegnsættet for nogle brugerfladeelementer i kommandolinjen. Den nuværende indstilling er <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Lokaliteter</h1></br> + Systemets lokalitetsindstilling har indflydelse på sproget og tegnsættet for nogle brugerfladeelementer i kommandolinjen. Den nuværende indstilling er <strong>%1</strong>. + + + + Back + Tilbage + + keyboardq @@ -3765,6 +3868,24 @@ Output: Test dit tastatur + + localeq + + + System language set to %1 + Systemsproget indstillet til %1. + + + + Numbers and dates locale set to %1 + Lokalitet for tal og datoer sat til %1 + + + + Change + Skift + + notesqml @@ -3838,27 +3959,27 @@ Output: <p>Programmet stiller dig nogle spørgsmål og opsætte %2 på din computer.</p> - + About Om - + Support Support - + Known issues Kendte problemer - + Release notes Udgivelsesnoter - + Donate Donér diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index d4eccbf95..b59fe4f38 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Einrichtung - + Install Installieren @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Auftrag fehlgeschlagen (%1) - + Programmed job failure was explicitly requested. Die Unterlassung einer vorgesehenen Aufgabe wurde ausdrücklich erwünscht. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Fertig @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Beispielaufgabe (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Führen Sie den Befehl '%1' im Zielsystem aus. - + Run command '%1'. Führen Sie den Befehl '%1' aus. - + Running command %1 %2 Befehl %1 %2 wird ausgeführt @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Operation %1 wird ausgeführt. - + Bad working directory path Fehlerhafter Arbeitsverzeichnis-Pfad - + Working directory %1 for python job %2 is not readable. Arbeitsverzeichnis %1 für Python-Job %2 ist nicht lesbar. - + Bad main script file Fehlerhaftes Hauptskript - + Main script file %1 for python job %2 is not readable. Hauptskript-Datei %1 für Python-Job %2 ist nicht lesbar. - + Boost.Python error in job "%1". Boost.Python-Fehler in Job "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Die Anforderungsprüfung für das Modul <i>%1</i> ist abgeschlossen. + - + Waiting for %n module(s). Warten auf %n Modul. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n Sekunde) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Die Überprüfung der Systemvoraussetzungen ist abgeschlossen. @@ -273,13 +278,13 @@ - + &Yes &Ja - + &No &Nein @@ -314,109 +319,109 @@ <br/>Die folgenden Module konnten nicht geladen werden: - + Continue with setup? Setup fortsetzen? - + Continue with installation? Installation fortsetzen? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Das %1 Installationsprogramm ist dabei, Änderungen an Ihrer Festplatte vorzunehmen, um %2 einzurichten.<br/><strong> Sie werden diese Änderungen nicht rückgängig machen können.</strong> - + 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> Das %1 Installationsprogramm wird Änderungen an Ihrer Festplatte vornehmen, um %2 zu installieren.<br/><strong>Diese Änderungen können nicht rückgängig gemacht werden.</strong> - + &Set up now &Jetzt einrichten - + &Install now Jetzt &installieren - + Go &back Gehe &zurück - + &Set up &Einrichten - + &Install &Installieren - + Setup is complete. Close the setup program. Setup ist abgeschlossen. Schließe das Installationsprogramm. - + The installation is complete. Close the installer. Die Installation ist abgeschlossen. Schließe das Installationsprogramm. - + Cancel setup without changing the system. Installation abbrechen ohne das System zu verändern. - + Cancel installation without changing the system. Installation abbrechen, ohne das System zu verändern. - + &Next &Weiter - + &Back &Zurück - + &Done &Erledigt - + &Cancel &Abbrechen - + Cancel setup? Installation abbrechen? - + Cancel installation? Installation abbrechen? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Wollen Sie die Installation wirklich abbrechen? Dadurch wird das Installationsprogramm beendet und alle Änderungen gehen verloren. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Wollen Sie wirklich die aktuelle Installation abbrechen? @@ -426,22 +431,22 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CalamaresPython::Helper - + Unknown exception type Unbekannter Ausnahmefehler - + unparseable Python error Nicht analysierbarer Python-Fehler - + unparseable Python traceback Nicht analysierbarer Python-Traceback - + Unfetchable Python error. Nicht zuzuordnender Python-Fehler @@ -459,32 +464,32 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CalamaresWindow - + Show debug information Debug-Information anzeigen - + &Back &Zurück - + &Next &Weiter - + &Cancel &Abbrechen - + %1 Setup Program %1 Installationsprogramm - + %1 Installer %1 Installationsprogramm @@ -681,18 +686,18 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CommandList - - + + Could not run command. Befehl konnte nicht ausgeführt werden. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Dieser Befehl wird im installierten System ausgeführt und muss daher den Root-Pfad kennen, jedoch wurde kein rootMountPoint definiert. - + The command needs to know the user's name, but no username is defined. Dieser Befehl benötigt den Benutzernamen, jedoch ist kein Benutzername definiert. @@ -745,49 +750,49 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Netzwerk-Installation. (Deaktiviert: Paketlisten nicht erreichbar, prüfe deine Netzwerk-Verbindung) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Dieser Computer erfüllt nicht die Mindestvoraussetzungen für die Installation von %1.<br/>Die Installation kann nicht fortgesetzt werden. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Dieser Computer erfüllt nicht die Mindestvoraussetzungen für die Installation von %1.<br/>Die Installation kann nicht fortgesetzt werden. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Dieser Computer erfüllt nicht alle empfohlenen Voraussetzungen für die Installation von %1.<br/>Die Installation kann fortgesetzt werden, aber es werden eventuell nicht alle Funktionen verfügbar sein. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Dieser Computer erfüllt nicht alle empfohlenen Voraussetzungen für die Installation von %1.<br/>Die Installation kann fortgesetzt werden, aber es werden eventuell nicht alle Funktionen verfügbar sein. - + This program will ask you some questions and set up %2 on your computer. Dieses Programm wird Ihnen einige Fragen stellen, um %2 auf Ihrem Computer zu installieren. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Willkommen bei Calamares, dem Installationsprogramm für %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Willkommen zur Installation von %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Willkommen beim Calamares-Installationsprogramm für %1. + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Willkommen im %1 Installationsprogramm.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. FillGlobalStorageJob - + Set partition information Setze Partitionsinformationen - + Install %1 on <strong>new</strong> %2 system partition. Installiere %1 auf <strong>neuer</strong> %2 Systempartition. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Erstelle <strong>neue</strong> %2 Partition mit Einhängepunkt <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Installiere %2 auf %3 Systempartition <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Erstelle %3 Partition <strong>%1</strong> mit Einhängepunkt <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Installiere Bootloader auf <strong>%1</strong>. - + Setting up mount points. Richte Einhängepunkte ein. @@ -1272,32 +1277,32 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Jetzt &Neustarten - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Alles erledigt.</h1><br/>%1 wurde auf Ihrem Computer eingerichtet.<br/>Sie können nun mit Ihrem neuen System arbeiten. - + <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 setup program.</p></body></html> <html><head/><body><p>Wenn diese Option aktiviert ist, genügt zum Neustart des Systems ein Klick auf <span style="font-style:italic;">Fertig</span> oder das Schließen des Installationsprogramms.</p></body></html> - + <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>Alles erledigt.</h1><br/>%1 wurde auf Ihrem Computer installiert.<br/>Sie können nun in Ihr neues System neustarten oder mit der %2 Live-Umgebung fortfahren. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Wenn diese Option aktiviert ist, genügt zum Neustart des Systems ein Klick auf <span style="font-style:italic;">Fertig</span> oder das Schließen des Installationsprogramms.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Installation fehlgeschlagen</h1><br/>%1 wurde nicht auf Ihrem Computer eingerichtet.<br/>Die Fehlermeldung war: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation fehlgeschlagen</h1><br/>%1 wurde nicht auf deinem Computer installiert.<br/>Die Fehlermeldung lautet: %2. @@ -1305,27 +1310,27 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. FinishedViewStep - + Finish Beenden - + Setup Complete Installation abgeschlossen - + Installation Complete Installation abgeschlossen - + The setup of %1 is complete. Die Installation von %1 ist abgeschlossen. - + The installation of %1 is complete. Die Installation von %1 ist abgeschlossen. @@ -1356,72 +1361,72 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. GeneralRequirements - + has at least %1 GiB available drive space mindestens %1 GiB freien Festplattenplatz hat - + There is not enough drive space. At least %1 GiB is required. Zu wenig Speicherplatz auf der Festplatte. Es wird mindestens %1 GiB benötigt. - + has at least %1 GiB working memory mindestens %1 GiB Arbeitsspeicher hat - + The system does not have enough working memory. At least %1 GiB is required. Das System hat nicht genug Arbeitsspeicher. Es wird mindestens %1 GiB benötigt. - + is plugged in to a power source ist an eine Stromquelle angeschlossen - + The system is not plugged in to a power source. Der Computer ist an keine Stromquelle angeschlossen. - + is connected to the Internet ist mit dem Internet verbunden - + The system is not connected to the Internet. Der Computer ist nicht mit dem Internet verbunden. - + is running the installer as an administrator (root) führt das Installationsprogramm als Administrator (root) aus - + The setup program is not running with administrator rights. Das Installationsprogramm wird nicht mit Administratorrechten ausgeführt. - + The installer is not running with administrator rights. Das Installationsprogramm wird nicht mit Administratorrechten ausgeführt. - + has a screen large enough to show the whole installer hat einen ausreichend großen Bildschirm für die Anzeige des gesamten Installationsprogramm - + The screen is too small to display the setup program. Der Bildschirm ist zu klein, um das Installationsprogramm anzuzeigen. - + The screen is too small to display the installer. Der Bildschirm ist zu klein, um das Installationsprogramm anzuzeigen. @@ -1769,6 +1774,16 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Für die Computer-ID wurde kein Einhängepunkt für die Root-Partition festgelegt. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. OEM-Chargenkennung auf <code>%1</code> setzen. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Partitionen - + Install %1 <strong>alongside</strong> another operating system. Installiere %1 <strong>neben</strong> einem anderen Betriebssystem. - + <strong>Erase</strong> disk and install %1. <strong>Lösche</strong> Festplatte und installiere %1. - + <strong>Replace</strong> a partition with %1. <strong>Ersetze</strong> eine Partition durch %1. - + <strong>Manual</strong> partitioning. <strong>Manuelle</strong> Partitionierung. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). %1 <strong>parallel</strong> zu einem anderen Betriebssystem auf der Festplatte <strong>%2</strong> (%3) installieren. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. Festplatte <strong>%2</strong> <strong>löschen</strong> (%3) und %1 installieren. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. Eine Partition auf Festplatte <strong>%2</strong> (%3) durch %1 <strong>ersetzen</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuelle</strong> Partitionierung auf Festplatte <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Festplatte <strong>%1</strong> (%2) - + Current: Aktuell: - + After: Nachher: - + No EFI system partition configured Keine EFI-Systempartition konfiguriert - + 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>%3</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. Eine EFI Systempartition wird benötigt, um %1 zu starten.<br/><br/>Um eine EFI Systempartition einzurichten, gehen Sie zurück und wählen oder erstellen Sie ein FAT32-Dateisystem mit einer aktivierten <strong>%3</strong> Markierung sowie <strong>%2</strong> als Einhängepunkt .<br/><br/>Sie können ohne die Einrichtung einer EFI-Systempartition fortfahren, aber ihr System wird unter Umständen nicht starten können. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. Eine EFI Systempartition wird benötigt, um %1 zu starten.<br/><br/>Eine Partition mit dem Einhängepunkt <strong>%2</strong> wurde eingerichtet, jedoch wurde dort keine <strong>%3</strong> Markierung gesetzt.<br/>Um diese Markierung zu setzen, gehen Sie zurück und bearbeiten Sie die Partition.<br/><br/>Sie können ohne diese Markierung fortfahren, aber ihr System wird unter Umständen nicht starten können. - + EFI system partition flag not set Die Markierung als EFI-Systempartition wurde nicht gesetzt - + Option to use GPT on BIOS Option zur Verwendung von GPT im BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Eine GPT-Partitionstabelle ist die beste Option für alle Systeme. Dieses Installationsprogramm unterstützt ein solches Setup auch für BIOS-Systeme.<br/><br/>Um eine GPT-Partitionstabelle im BIOS zu konfigurieren, gehen Sie (falls noch nicht geschehen) zurück und setzen Sie die Partitionstabelle auf GPT, als nächstes erstellen Sie eine 8 MB große unformatierte Partition mit aktiviertem <strong>bios_grub</strong>-Markierung.<br/><br/>Eine unformatierte 8 MB große Partition ist erforderlich, um %1 auf einem BIOS-System mit GPT zu starten. - + Boot partition not encrypted Bootpartition nicht verschlüsselt - + 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. Eine separate Bootpartition wurde zusammen mit einer verschlüsselten Rootpartition erstellt, die Bootpartition ist aber unverschlüsselt.<br/><br/> Dies ist sicherheitstechnisch nicht optimal, da wichtige Systemdateien auf der unverschlüsselten Bootpartition gespeichert werden.<br/>Wenn Sie wollen, können Sie fortfahren, aber das Entschlüsseln des Dateisystems wird erst später während des Systemstarts erfolgen.<br/>Um die Bootpartition zu verschlüsseln, gehen Sie zurück und erstellen Sie diese neu, indem Sie bei der Partitionierung <strong>Verschlüsseln</strong> wählen. - + has at least one disk device available. mindestens eine Festplatte zur Verfügung hat - + There are no partitions to install on. Keine Partitionen für die Installation verfügbar. @@ -2660,14 +2688,14 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. ProcessResult - + There was no output from the command. Dieser Befehl hat keine Ausgabe erzeugt. - + Output: @@ -2676,52 +2704,52 @@ Ausgabe: - + External command crashed. Externes Programm abgestürzt. - + Command <i>%1</i> crashed. Programm <i>%1</i> abgestürzt. - + External command failed to start. Externes Programm konnte nicht gestartet werden. - + Command <i>%1</i> failed to start. Das Programm <i>%1</i> konnte nicht gestartet werden. - + Internal error when starting command. Interner Fehler beim Starten des Programms. - + Bad parameters for process job call. Ungültige Parameter für Prozessaufruf. - + External command failed to finish. Externes Programm konnte nicht abgeschlossen werden. - + Command <i>%1</i> failed to finish in %2 seconds. Programm <i>%1</i> konnte nicht innerhalb von %2 Sekunden abgeschlossen werden. - + External command finished with errors. Externes Programm mit Fehlern beendet. - + Command <i>%1</i> finished with exit code %2. Befehl <i>%1</i> beendet mit Exit-Code %2. @@ -2729,32 +2757,27 @@ Ausgabe: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Die Anforderungsprüfung für das Modul <i>%1</i> ist abgeschlossen. - - - + unknown unbekannt - + extended erweitert - + unformatted unformatiert - + swap Swap @@ -2808,6 +2831,15 @@ Ausgabe: Nicht zugeteilter Speicherplatz oder unbekannte Partitionstabelle + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Ausgabe: Form - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Wählen Sie den Installationsort für %1.<br/><font color="red">Warnung: </font>Dies wird alle Daten auf der ausgewählten Partition löschen. - + The selected item does not appear to be a valid partition. Die aktuelle Auswahl scheint keine gültige Partition zu sein. - + %1 cannot be installed on empty space. Please select an existing partition. %1 kann nicht in einem unpartitionierten Bereich installiert werden. Bitte wählen Sie eine existierende Partition aus. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 kann nicht auf einer erweiterten Partition installiert werden. Bitte wählen Sie eine primäre oder logische Partition aus. - + %1 cannot be installed on this partition. %1 kann auf dieser Partition nicht installiert werden. - + Data partition (%1) Datenpartition (%1) - + Unknown system partition (%1) Unbekannte Systempartition (%1) - + %1 system partition (%2) %1 Systempartition (%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>%4</strong><br/><br/>Die Partition %1 ist zu klein für %2. Bitte wählen Sie eine Partition mit einer Kapazität von mindestens %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>%2</strong><br/><br/>Es wurde keine EFI-Systempartition auf diesem System gefunden. Bitte gehen Sie zurück, und nutzen Sie die manuelle Partitionierung, um %1 aufzusetzen. - - - + + + <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 wird installiert auf %2.<br/><font color="red">Warnung: </font> Alle Daten auf der Partition %2 werden gelöscht. - + The EFI system partition at %1 will be used for starting %2. Die EFI-Systempartition auf %1 wird benutzt, um %2 zu starten. - + EFI system partition: EFI-Systempartition: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Ausgabe: ResultsListDialog - + For best results, please ensure that this computer: Für das beste Ergebnis stellen Sie bitte sicher, dass dieser Computer: - + System requirements Systemanforderungen @@ -3045,27 +3092,27 @@ Ausgabe: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Dieser Computer erfüllt nicht die Mindestvoraussetzungen für die Installation von %1.<br/>Die Installation kann nicht fortgesetzt werden. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Dieser Computer erfüllt nicht die Mindestvoraussetzungen für die Installation von %1.<br/>Die Installation kann nicht fortgesetzt werden. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Dieser Computer erfüllt nicht alle empfohlenen Voraussetzungen für die Installation von %1.<br/>Die Installation kann fortgesetzt werden, aber es werden eventuell nicht alle Funktionen verfügbar sein. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Dieser Computer erfüllt nicht alle empfohlenen Voraussetzungen für die Installation von %1.<br/>Die Installation kann fortgesetzt werden, aber es werden eventuell nicht alle Funktionen verfügbar sein. - + This program will ask you some questions and set up %2 on your computer. Dieses Programm wird Ihnen einige Fragen stellen, um %2 auf Ihrem Computer zu installieren. @@ -3348,51 +3395,80 @@ Ausgabe: TrackingInstallJob - + Installation feedback Rückmeldungen zur Installation - + Sending installation feedback. Senden der Rückmeldungen zur Installation. - + Internal error in install-tracking. Interner Fehler bei der Überwachung der Installation. - + HTTP request timed out. Zeitüberschreitung bei HTTP-Anfrage - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Rückinformationen zum Computer - + Configuring machine feedback. Konfiguriere Rückmeldungen zum Computer. - - + + Error in machine feedback configuration. Fehler bei der Konfiguration der Rückmeldungen zum Computer - + Could not configure machine feedback correctly, script error %1. Rückmeldungen zum Computer konnten nicht korrekt konfiguriert werden, Skriptfehler %1. - + Could not configure machine feedback correctly, Calamares error %1. Rückmeldungen zum Computer konnten nicht korrekt konfiguriert werden, Calamares-Fehler %1. @@ -3411,8 +3487,8 @@ Ausgabe: - <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>Ist diese Option aktiviert, werden <span style=" font-weight:600;">keinerlei Informationen</span> über Ihre Installation gesendet.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Ausgabe: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klicken sie hier für weitere Informationen über Benutzer-Rückmeldungen</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. - Rückinformationen über die Installation helfen %1 festzustellen, wieviele Menschen es benutzen und auf welcher Hardware sie %1 installieren. Mit den beiden letzten Optionen gestatten Sie die Erhebung kontinuierlicher Informationen über Ihre bevorzugte Software. Um zu prüfen, welche Informationen gesendet werden, klicken Sie bitte auf das Hilfesymbol neben dem jeweiligen Abschnitt. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Wenn Sie diese Option auswählen, senden Sie Informationen zu Ihrer Installation und Hardware. Diese Informationen werden <b>nur einmalig</b> nach Abschluss der Installation gesendet. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Wenn Sie diese Option auswählen, senden Sie <b>regelmäßig</b> Informationen zu Installation, Hardware und Anwendungen an %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Wenn Sie diese Option auswählen, senden Sie <b>regelmäßig</b> Informationen zu Installation, Hardware, Anwendungen und Nutzungsmuster an %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Rückmeldung @@ -3629,42 +3705,42 @@ Ausgabe: &Veröffentlichungshinweise - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Willkommen bei Calamares, dem Installationsprogramm für %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Willkommen zur Installation von %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Willkommen beim Calamares-Installationsprogramm für %1. - + <h1>Welcome to the %1 installer.</h1> <h1>Willkommen im %1 Installationsprogramm.</h1> - + %1 support Unterstützung für %1 - + About %1 setup Über das Installationsprogramm %1 - + About %1 installer Über das %1 Installationsprogramm - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Danke an <a href="https://calamares.io/team/">das Calamares Team</a> und das <a href="https://www.transifex.com/calamares/calamares/">Calamares Übersetzerteam</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> Entwicklung wird gesponsert von <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3672,7 +3748,7 @@ Ausgabe: WelcomeQmlViewStep - + Welcome Willkommen @@ -3680,7 +3756,7 @@ Ausgabe: WelcomeViewStep - + Welcome Willkommen @@ -3720,6 +3796,26 @@ Liberating Software. Zurück + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Zurück + + keyboardq @@ -3765,6 +3861,24 @@ Liberating Software. Testen Sie Ihre Tastatur + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3837,27 +3951,27 @@ Liberating Software. <h3>Willkommen zum %1 <quote>%2</quote> Installationsprogramm</h3><p>Dieses Programm wird Ihnen einige Fragen stellen und %1 auf Ihrem Computer einrichten.</p> - + About Über - + Support Unterstützung - + Known issues Bekannte Probleme - + Release notes Veröffentlichungshinweise - + Donate Spenden diff --git a/lang/calamares_el.ts b/lang/calamares_el.ts index 50b5f2498..2d16ba3ac 100644 --- a/lang/calamares_el.ts +++ b/lang/calamares_el.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Εγκατάσταση @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Ολοκληρώθηκε @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Εκτελείται η εντολή %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Εκτελείται η λειτουργία %1. - + Bad working directory path Λανθασμένη διαδρομή καταλόγου εργασίας - + Working directory %1 for python job %2 is not readable. Ο ενεργός κατάλογος %1 για την εργασία python %2 δεν είναι δυνατόν να διαβαστεί. - + Bad main script file Λανθασμένο κύριο αρχείο δέσμης ενεργειών - + Main script file %1 for python job %2 is not readable. Η κύρια δέσμη ενεργειών %1 για την εργασία python %2 δεν είναι δυνατόν να διαβαστεί. - + Boost.Python error in job "%1". Σφάλμα Boost.Python στην εργασία "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Ναι - + &No &Όχι @@ -314,108 +319,108 @@ - + Continue with setup? Συνέχεια με την εγκατάσταση; - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Το πρόγραμμα εγκατάστασης %1 θα κάνει αλλαγές στον δίσκο για να εγκαταστήσετε το %2.<br/><strong>Δεν θα είστε σε θέση να αναιρέσετε τις αλλαγές.</strong> - + &Set up now - + &Install now &Εγκατάσταση τώρα - + Go &back Μετάβαση &πίσω - + &Set up - + &Install &Εγκατάσταση - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Η εγκτάσταση ολοκληρώθηκε. Κλείστε το πρόγραμμα εγκατάστασης. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Ακύρωση της εγκατάστασης χωρίς αλλαγές στο σύστημα. - + &Next &Επόμενο - + &Back &Προηγούμενο - + &Done &Ολοκληρώθηκε - + &Cancel &Ακύρωση - + Cancel setup? - + Cancel installation? Ακύρωση της εγκατάστασης; - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Θέλετε πραγματικά να ακυρώσετε τη διαδικασία εγκατάστασης; @@ -425,22 +430,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Άγνωστος τύπος εξαίρεσης - + unparseable Python error Μη αναγνώσιμο σφάλμα Python - + unparseable Python traceback Μη αναγνώσιμη ανίχνευση Python - + Unfetchable Python error. Μη ανακτήσιµο σφάλμα Python. @@ -457,32 +462,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information Εμφάνιση πληροφοριών απασφαλμάτωσης - + &Back &Προηγούμενο - + &Next &Επόμενο - + &Cancel &Ακύρωση - + %1 Setup Program - + %1 Installer Εφαρμογή εγκατάστασης του %1 @@ -679,18 +684,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -743,49 +748,49 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ο υπολογιστής δεν ικανοποιεί τις ελάχιστες απαιτήσεις για την εγκατάσταση του %1.<br/>Η εγκατάσταση δεν μπορεί να συνεχιστεί. <a href="#details">Λεπτομέριες...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Αυτός ο υπολογιστής δεν ικανοποιεί μερικές από τις συνιστώμενες απαιτήσεις για την εγκατάσταση του %1.<br/>Η εγκατάσταση μπορεί να συνεχιστεί, αλλά ορισμένες λειτουργίες μπορεί να απενεργοποιηθούν. - + This program will ask you some questions and set up %2 on your computer. Το πρόγραμμα θα σας κάνει μερικές ερωτήσεις και θα ρυθμίσει το %2 στον υπολογιστή σας. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Καλώς ήλθατε στην εγκατάσταση του %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information Ορισμός πληροφοριών κατάτμησης - + Install %1 on <strong>new</strong> %2 system partition. Εγκατάσταση %1 στο <strong>νέο</strong> %2 διαμέρισμα συστήματος. - + 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>. Εγκατάσταση φορτωτή εκκίνησης στο <strong>%1</strong>. - + Setting up mount points. @@ -1270,32 +1275,32 @@ The installer will quit and all changes will be lost. Ε&πανεκκίνηση τώρα - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Η εγκατάσταση ολοκληρώθηκε.</h1><br/>Το %1 εγκαταστήθηκε στον υπολογιστή.<br/>Τώρα, μπορείτε να επανεκκινήσετε τον υπολογιστή σας ή να συνεχίσετε να δοκιμάζετε το %2. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1303,27 +1308,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Τέλος - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1354,72 +1359,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. Το σύστημα δεν είναι συνδεδεμένο στο διαδίκτυο. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Το πρόγραμμα εγκατάστασης δεν εκτελείται με δικαιώματα διαχειριστή. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Η οθόνη είναι πολύ μικρή για να απεικονίσει το πρόγραμμα εγκατάστασης @@ -1767,6 +1772,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ The installer will quit and all changes will be lost. Κατατμήσεις - + Install %1 <strong>alongside</strong> another operating system. Εγκατάσταση του %1 <strong>παράλληλα με</strong> ένα άλλο λειτουργικό σύστημα στον δίσκο. - + <strong>Erase</strong> disk and install %1. <strong>Διαγραφή</strong> του δίσκου και εγκατάσταση του %1. - + <strong>Replace</strong> a partition with %1. <strong>Αντικατάσταση</strong> μιας κατάτμησης με το %1. - + <strong>Manual</strong> partitioning. <strong>Χειροκίνητη</strong> τμηματοποίηση. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Εγκατάσταση του %1 <strong>παράλληλα με</strong> ένα άλλο λειτουργικό σύστημα στον δίσκο<strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Διαγραφή</strong> του δίσκου <strong>%2</strong> (%3) και εγκατάσταση του %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Αντικατάσταση</strong> μιας κατάτμησης στον δίσκο <strong>%2</strong> (%3) με το %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Χειροκίνητη</strong> τμηματοποίηση του δίσκου <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Δίσκος <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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,65 +2686,65 @@ The installer will quit and all changes will be lost. 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. @@ -2724,32 +2752,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown άγνωστη - + extended εκτεταμένη - + unformatted μη μορφοποιημένη - + swap @@ -2803,6 +2826,15 @@ Output: Μη κατανεμημένος χώρος ή άγνωστος πίνακας κατατμήσεων + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2838,73 +2870,88 @@ Output: Τύπος - + 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 δεν μπορεί να εγκατασταθεί σε άδειο χώρο. Παρακαλώ επίλεξε ένα υφιστάμενο διαμέρισμα. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 δεν μπορεί να εγκατασταθεί σε ένα εκτεταμένο διαμέρισμα. Παρακαλώ επίλεξε ένα υφιστάμενο πρωτεύον ή λογικό διαμέρισμα. - + %1 cannot be installed on this partition. %1 δεν μπορεί να εγκατασταθεί σ' αυτό το διαμέρισμα. - + Data partition (%1) Κατάτμηση δεδομένων (%1) - + Unknown system partition (%1) Άγνωστη κατάτμηση συστήματος (%1) - + %1 system partition (%2) %1 κατάτμηση συστήματος (%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>%2</strong><br/><br/>Πουθενά στο σύστημα δεν μπορεί να ανιχθευθεί μία κατάτμηση EFI. Παρακαλώ επιστρέψτε πίσω και χρησιμοποιήστε τη χειροκίνητη τμηματοποίηση για την εγκατάσταση του %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 στο %1 θα χρησιμοποιηθεί για την εκκίνηση του %2. - + EFI system partition: Κατάτμηση συστήματος EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3027,12 +3074,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Για καλύτερο αποτέλεσμα, παρακαλώ βεβαιωθείτε ότι ο υπολογιστής: - + System requirements Απαιτήσεις συστήματος @@ -3040,27 +3087,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ο υπολογιστής δεν ικανοποιεί τις ελάχιστες απαιτήσεις για την εγκατάσταση του %1.<br/>Η εγκατάσταση δεν μπορεί να συνεχιστεί. <a href="#details">Λεπτομέριες...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Αυτός ο υπολογιστής δεν ικανοποιεί μερικές από τις συνιστώμενες απαιτήσεις για την εγκατάσταση του %1.<br/>Η εγκατάσταση μπορεί να συνεχιστεί, αλλά ορισμένες λειτουργίες μπορεί να απενεργοποιηθούν. - + This program will ask you some questions and set up %2 on your computer. Το πρόγραμμα θα σας κάνει μερικές ερωτήσεις και θα ρυθμίσει το %2 στον υπολογιστή σας. @@ -3343,51 +3390,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + 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. @@ -3406,7 +3482,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3415,30 +3491,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3624,42 +3700,42 @@ Output: Ση&μειώσεις έκδοσης - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Καλώς ήλθατε στην εγκατάσταση του %1.</h1> - + %1 support Υποστήριξη %1 - + About %1 setup - + About %1 installer Σχετικά με το πρόγραμμα εγκατάστασης %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3667,7 +3743,7 @@ Output: WelcomeQmlViewStep - + Welcome Καλώς ήλθατε @@ -3675,7 +3751,7 @@ Output: WelcomeViewStep - + Welcome Καλώς ήλθατε @@ -3704,6 +3780,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3749,6 +3845,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3800,27 +3914,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_en.ts b/lang/calamares_en.ts index ec80837bd..807863cf5 100644 --- a/lang/calamares_en.ts +++ b/lang/calamares_en.ts @@ -230,7 +230,7 @@ Requirements checking for module <i>%1</i> is complete. - Requirements checking for module <i>%1</i> is complete. + Requirements checking for module <i>%1</i> is complete. @@ -777,22 +777,22 @@ The installer will quit and all changes will be lost. <h1>Welcome to the Calamares setup program for %1</h1> - + <h1>Welcome to the Calamares setup program for %1</h1> <h1>Welcome to %1 setup</h1> - + <h1>Welcome to %1 setup</h1> <h1>Welcome to the Calamares installer for %1</h1> - + <h1>Welcome to the Calamares installer for %1</h1> <h1>Welcome to the %1 installer</h1> - + <h1>Welcome to the %1 installer</h1> @@ -1781,7 +1781,9 @@ The installer will quit and all changes will be lost. Please select your preferred location on the map so the installer can suggest the locale and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. - + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. @@ -1927,12 +1929,12 @@ The installer will quit and all changes will be lost. Timezone: %1 - + Timezone: %1 To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. - + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. @@ -2837,7 +2839,8 @@ Output: <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> @@ -2948,13 +2951,15 @@ Output: <p>This computer does not satisfy the minimum requirements for installing %1.<br/> Installation cannot continue.</p> - + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> @@ -3420,28 +3425,28 @@ Output: KDE user feedback - + KDE user feedback Configuring KDE user feedback. - + Configuring KDE user feedback. Error in KDE user feedback configuration. - + Error in KDE user feedback configuration. Could not configure KDE user feedback correctly, script error %1. - + Could not configure KDE user feedback correctly, script error %1. Could not configure KDE user feedback correctly, Calamares error %1. - + Could not configure KDE user feedback correctly, Calamares error %1. @@ -3449,28 +3454,28 @@ Output: Machine feedback - Machine feedback + Machine feedback Configuring machine feedback. - Configuring machine feedback. + Configuring machine feedback. Error in machine feedback configuration. - Error in machine feedback configuration. + Error in machine feedback configuration. Could not configure machine feedback correctly, script error %1. - Could not configure machine feedback correctly, script error %1. + Could not configure machine feedback correctly, script error %1. Could not configure machine feedback correctly, Calamares error %1. - Could not configure machine feedback correctly, Calamares error %1. + Could not configure machine feedback correctly, Calamares error %1. @@ -3488,7 +3493,7 @@ Output: <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3498,22 +3503,22 @@ Output: Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. - + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 only be sent <b>once</b> after the installation finishes. - + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. - + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. - + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. @@ -3802,18 +3807,20 @@ Output: <h1>Languages</h1> </br> The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. - + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. <h1>Locales</h1> </br> The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. - + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. Back - Back + Back @@ -3866,17 +3873,17 @@ Output: System language set to %1 - + System language set to %1 Numbers and dates locale set to %1 - + Numbers and dates locale set to %1 Change - + Change diff --git a/lang/calamares_en_GB.ts b/lang/calamares_en_GB.ts index 916173cf9..4f5d4603c 100644 --- a/lang/calamares_en_GB.ts +++ b/lang/calamares_en_GB.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Running command %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Running %1 operation. - + Bad working directory path Bad working directory path - + Working directory %1 for python job %2 is not readable. Working directory %1 for python job %2 is not readable. - + Bad main script file Bad main script file - + Main script file %1 for python job %2 is not readable. Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". Boost.Python error in job "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Yes - + &No &No @@ -314,108 +319,108 @@ <br/>The following modules could not be loaded: - + Continue with setup? Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> 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> - + &Set up now - + &Install now &Install now - + Go &back Go &back - + &Set up - + &Install &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Cancel installation without changing the system. - + &Next &Next - + &Back &Back - + &Done &Done - + &Cancel &Cancel - + Cancel setup? - + Cancel installation? Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Do you really want to cancel the current install process? @@ -425,22 +430,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Unknown exception type - + unparseable Python error unparseable Python error - + unparseable Python traceback unparseable Python traceback - + Unfetchable Python error. Unfetchable Python error. @@ -457,32 +462,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information Show debug information - + &Back &Back - + &Next &Next - + &Cancel &Cancel - + %1 Setup Program - + %1 Installer %1 Installer @@ -679,18 +684,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. The command needs to know the user's name, but no username is defined. @@ -743,49 +748,49 @@ The installer will quit and all changes will be lost. Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information Set partition information - + Install %1 on <strong>new</strong> %2 system partition. Install %1 on <strong>new</strong> %2 system partition. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - + Install %2 on %3 system partition <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>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Install boot loader on <strong>%1</strong>. - + Setting up mount points. Setting up mount points. @@ -1270,32 +1275,32 @@ The installer will quit and all changes will be lost. &Restart now - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1303,27 +1308,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Finish - + Setup Complete - + Installation Complete Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. The installation of %1 is complete. @@ -1354,72 +1359,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source is plugged in to a power source - + The system is not plugged in to a power source. The system is not plugged in to a power source. - + is connected to the Internet is connected to the Internet - + The system is not connected to the Internet. The system is not connected to the Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. The screen is too small to display the installer. @@ -1767,6 +1772,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ The installer will quit and all changes will be lost. Partitions - + Install %1 <strong>alongside</strong> another operating system. Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 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>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Current: - + After: After: - + No EFI system partition configured 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted 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. 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,14 +2686,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. There was no output from the command. - + Output: @@ -2674,52 +2702,52 @@ Output: - + External command crashed. External command crashed. - + Command <i>%1</i> crashed. Command <i>%1</i> crashed. - + External command failed to start. External command failed to start. - + Command <i>%1</i> failed to start. Command <i>%1</i> failed to start. - + Internal error when starting command. Internal error when starting command. - + Bad parameters for process job call. Bad parameters for process job call. - + External command failed to finish. External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. External command finished with errors. - + Command <i>%1</i> finished with exit code %2. Command <i>%1</i> finished with exit code %2. @@ -2727,32 +2755,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown unknown - + extended extended - + unformatted unformatted - + swap swap @@ -2806,6 +2829,15 @@ Output: Unpartitioned space or unknown partition table + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2841,73 +2873,88 @@ Output: Form - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. 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. 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 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 an extended partition. Please select an existing primary or logical partition. - + %1 cannot be installed on this partition. %1 cannot be installed on this partition. - + Data partition (%1) Data partition (%1) - + Unknown system partition (%1) Unknown system partition (%1) - + %1 system partition (%2) %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>%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>%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. <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. The EFI system partition at %1 will be used for starting %2. - + EFI system partition: EFI system partition: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3030,12 +3077,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: For best results, please ensure that this computer: - + System requirements System requirements @@ -3043,27 +3090,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. This program will ask you some questions and set up %2 on your computer. @@ -3346,51 +3393,80 @@ Output: TrackingInstallJob - + Installation feedback Installation feedback - + Sending installation feedback. Sending installation feedback. - + Internal error in install-tracking. Internal error in install-tracking. - + HTTP request timed out. HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Machine feedback - + Configuring machine feedback. Configuring machine feedback. - - + + Error in machine feedback configuration. Error in machine feedback configuration. - + Could not configure machine feedback correctly, script error %1. Could not configure machine feedback correctly, script error %1. - + Could not configure machine feedback correctly, Calamares error %1. Could not configure machine feedback correctly, Calamares error %1. @@ -3409,8 +3485,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3418,30 +3494,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - - 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. - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 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 send information about your installation and hardware. This information will only be sent <b>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>periodically</b> send information about your installation, hardware and applications, to %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Feedback @@ -3627,42 +3703,42 @@ Output: &Release notes - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Welcome to the %1 installer.</h1> - + %1 support %1 support - + About %1 setup - + About %1 installer 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3670,7 +3746,7 @@ Output: WelcomeQmlViewStep - + Welcome Welcome @@ -3678,7 +3754,7 @@ Output: WelcomeViewStep - + Welcome Welcome @@ -3707,6 +3783,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3752,6 +3848,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3803,27 +3917,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_eo.ts b/lang/calamares_eo.ts index a1149e8bd..dedcbbc29 100644 --- a/lang/calamares_eo.ts +++ b/lang/calamares_eo.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Aranĝu - + Install Instalu @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Finita @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Jes - + &No &Ne @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now &Aranĝu nun - + &Install now &Instali nun - + Go &back Iru &Reen - + &Set up &Aranĝu - + &Install &Instali - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Nuligi instalado sen ŝanĝante la sistemo. - + &Next &Sekva - + &Back &Reen - + &Done &Finita - + &Cancel &Nuligi - + Cancel setup? - + Cancel installation? Nuligi instalado? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Ĉu vi vere volas nuligi la instalan procedon? @@ -425,22 +430,22 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -457,32 +462,32 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. CalamaresWindow - + Show debug information - + &Back &Reen - + &Next &Sekva - + &Cancel &Nuligi - + %1 Setup Program - + %1 Installer %1 Instalilo @@ -679,18 +684,18 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -743,48 +748,48 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1222,37 +1227,37 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. 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. @@ -1270,32 +1275,32 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. &Restartigu nun - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Plenumita!</h1><br/>%1 estis agordita sur vian komputilon.<br/>Vi povas nun ekuzi vian novan sistemon. - + <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 setup program.</p></body></html> <html><head/><body><p>Se ĉi tio elektobutono estas elektita, via sistemo restartos senprokraste, kiam vi klikas <span style="font-style:italic;">Finita</span> aŭ vi malfermas la agordilon.</p></body></html> - + <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>Plenumita!</h1><br/>%1 estis instalita sur vian komputilon.<br/>Vi povas nun restartigas en vian novan sistemon, aŭ vi povas pluiri uzi la %2 aŭtonoman sistemon. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Se ĉi tio elektobutono estas elektita, via sistemo restartos senprokraste, kiam vi klikas <span style="font-style:italic;">Finita</span> aŭ vi malfermas la instalilon.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Agorado Malsukcesis</h1><br/>%1 ne estis agordita sur vian komputilon.<br/>La erara mesaĝo estis: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalaĵo Malsukcesis</h1><br/>%1 ne estis instalita sur vian komputilon.<br/>La erara mesaĝo estis: %2. @@ -1303,27 +1308,27 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. FinishedViewStep - + Finish Pretigu - + Setup Complete Agordaĵo Plenumita - + Installation Complete Instalaĵo Plenumita - + The setup of %1 is complete. La agordaĵo de %1 estas plenumita. - + The installation of %1 is complete. La instalaĵo de %1 estas plenumita. @@ -1354,72 +1359,72 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1767,6 +1772,16 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. - + 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: Nune: - + After: Poste: - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,65 +2686,65 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. 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. @@ -2724,32 +2752,27 @@ Output: QObject - + %1 (%2) %1(%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended kromsubdisko - + unformatted nestrukturita - + swap @@ -2803,6 +2826,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2838,73 +2870,88 @@ Output: Formularo - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3027,12 +3074,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3040,27 +3087,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3343,51 +3390,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3406,7 +3482,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3415,30 +3491,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3624,42 +3700,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3667,7 +3743,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3675,7 +3751,7 @@ Output: WelcomeViewStep - + Welcome @@ -3704,6 +3780,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3749,6 +3845,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3800,27 +3914,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 242f5a13f..793795034 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -118,12 +118,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::ExecutionViewStep - + Set up Instalar - + Install Instalar @@ -131,12 +131,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::FailJob - + Job failed (%1) Trabajo fallido (%1) - + Programmed job failure was explicitly requested. Se solicitó de manera explícita la falla del trabajo programado. @@ -144,7 +144,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::JobThread - + Done Hecho @@ -152,7 +152,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::NamedJob - + Example job (%1) Ejemplo de trabajo (%1) @@ -160,17 +160,17 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::ProcessJob - + Run command '%1' in target system. Ejecutar el comando '% 1' en el sistema de destino. - + Run command '%1'. Ejecutar el comando '% 1'. - + Running command %1 %2 Ejecutando comando %1 %2 @@ -178,32 +178,32 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::PythonJob - + Running %1 operation. Ejecutando %1 operación. - + Bad working directory path Error en la ruta del directorio de trabajo - + Working directory %1 for python job %2 is not readable. El directorio de trabajo %1 para el script de python %2 no se puede leer. - + Bad main script file Script principal erróneo - + Main script file %1 for python job %2 is not readable. El script principal %1 del proceso python %2 no es accesible. - + Boost.Python error in job "%1". Error Boost.Python en el proceso "%1". @@ -228,8 +228,13 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). Esperando %n módulo (s). @@ -237,7 +242,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar - + (%n second(s)) @@ -245,7 +250,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar - + System-requirements checking is complete. La verificación de los requisitos del sistema está completa. @@ -274,13 +279,13 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar - + &Yes &Sí - + &No &No @@ -315,108 +320,108 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Los siguientes módulos no se pudieron cargar: - + Continue with setup? ¿Continuar con la configuración? - + Continue with installation? Continuar con la instalación? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> El programa de instalación %1 está a punto de hacer cambios en el disco con el fin de configurar %2.<br/><strong>No podrá deshacer estos cambios.</strong> - + 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> El instalador %1 va a realizar cambios en su disco para instalar %2.<br/><strong>No podrá deshacer estos cambios.</strong> - + &Set up now &Configurar ahora - + &Install now &Instalar ahora - + Go &back Regresar - + &Set up &Instalar - + &Install &Instalar - + Setup is complete. Close the setup program. La instalación se ha completado. Cierre el instalador. - + The installation is complete. Close the installer. La instalación se ha completado. Cierre el instalador. - + Cancel setup without changing the system. Cancelar instalación sin cambiar el sistema. - + Cancel installation without changing the system. Cancelar instalación sin cambiar el sistema. - + &Next &Siguiente - + &Back &Atrás - + &Done &Hecho - + &Cancel &Cancelar - + Cancel setup? ¿Cancelar la instalación? - + Cancel installation? ¿Cancelar la instalación? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. ¿Realmente quiere cancelar el proceso de instalación? @@ -426,22 +431,22 @@ Saldrá del instalador y se perderán todos los cambios. CalamaresPython::Helper - + Unknown exception type Excepción desconocida - + unparseable Python error error unparseable Python - + unparseable Python traceback rastreo de Python unparseable - + Unfetchable Python error. Error de Python Unfetchable. @@ -458,32 +463,32 @@ Saldrá del instalador y se perderán todos los cambios. CalamaresWindow - + Show debug information Mostrar información de depuración. - + &Back &Atrás - + &Next &Siguiente - + &Cancel &Cancelar - + %1 Setup Program - + %1 Installer %1 Instalador @@ -680,18 +685,18 @@ Saldrá del instalador y se perderán todos los cambios. CommandList - - + + Could not run command. No se pudo ejecutar el comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. El comando corre en el ambiente anfitrión y necesita saber el directorio raiz, pero no está definido el punto de montaje de la raiz - + The command needs to know the user's name, but no username is defined. El comando necesita saber el nombre de usuario, pero no hay nombre de usuario definido. @@ -744,49 +749,49 @@ Saldrá del instalador y se perderán todos los cambios. Instalación a través de la Red. (Desactivada: no se ha podido obtener una lista de paquetes, comprueba tu conexión a la red) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este ordenador no cumple los requisitos mínimos para la instalación. %1.<br/>La instalación no puede continuar. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este ordenador no cumple alguno de los requisitos recomendados para la instalación %1.<br/>La instalación puede continuar, pero algunas funcionalidades podrían ser deshabilitadas. - + This program will ask you some questions and set up %2 on your computer. El programa le preguntará algunas cuestiones y configurará %2 en su ordenador. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Bienvenido al instalador %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Bienvenido al instalador de Calamares para %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Bienvenido al instalador %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1223,37 +1228,37 @@ Saldrá del instalador y se perderán todos los cambios. FillGlobalStorageJob - + Set partition information Establecer la información de la partición - + Install %1 on <strong>new</strong> %2 system partition. Instalar %1 en <strong>nuevo</strong> %2 partición del sistema. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Configurar <strong>nueva</strong> %2 partición con punto de montaje <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instalar %2 en %3 partición del sistema <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Configurar %3 partición <strong>%1</strong> con punto de montaje <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalar gestor de arranque en <strong>%1</strong>. - + Setting up mount points. Configurando puntos de montaje. @@ -1271,32 +1276,32 @@ Saldrá del instalador y se perderán todos los cambios. &Reiniciar ahora - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Listo.</h1><br/>%1 ha sido instalado en su equipo.<br/>Ahora puede reiniciar hacia su nuevo sistema, o continuar utilizando %2 Live. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>La instalación falló</h1><br/>%1 no se ha instalado en su equipo.<br/>El mensaje de error fue: %2. @@ -1304,27 +1309,27 @@ Saldrá del instalador y se perderán todos los cambios. FinishedViewStep - + Finish Finalizar - + Setup Complete - + Installation Complete Instalación completada - + The setup of %1 is complete. - + The installation of %1 is complete. Se ha completado la instalación de %1. @@ -1355,72 +1360,72 @@ Saldrá del instalador y se perderán todos los cambios. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. No hay suficiente espació en el disco duro. Se requiere al menos %1 GB libre. - + has at least %1 GiB working memory tiene al menos %1 GB de memoria. - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source esta conectado a una fuente de alimentación - + The system is not plugged in to a power source. El sistema no esta conectado a una fuente de alimentación. - + is connected to the Internet esta conectado a Internet - + The system is not connected to the Internet. El sistema no esta conectado a Internet - + is running the installer as an administrator (root) esta ejecutándose con permisos de administrador (root). - + The setup program is not running with administrator rights. El instalador no esta ejecutándose con permisos de administrador. - + The installer is not running with administrator rights. El instalador no esta ejecutándose con permisos de administrador. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. La pantalla es demasiado pequeña para mostrar el instalador. - + The screen is too small to display the installer. La pantalla es demasiado pequeña para mostrar el instalador. @@ -1768,6 +1773,16 @@ Saldrá del instalador y se perderán todos los cambios. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ Saldrá del instalador y se perderán todos los cambios. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ Saldrá del instalador y se perderán todos los cambios. Particiones - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>junto a</strong> otro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Borrar</strong> disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Reemplazar</strong> una partición con %1. - + <strong>Manual</strong> partitioning. Particionamiento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>junto a</strong> otro sistema operativo en disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Borrar</strong> disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Reemplazar</strong> una partición en disco <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamiento <strong>manual</strong> en disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1<strong> (%2) - + Current: Corriente - + After: Despúes: - + No EFI system partition configured No hay una partición del sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Bandera EFI no establecida en la partición del sistema - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Partición de arranque no cifrada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Se estableció una partición de arranque aparte junto con una partición raíz cifrada, pero la partición de arranque no está cifrada.<br/><br/>Hay consideraciones de seguridad con esta clase de instalación, porque los ficheros de sistema importantes se mantienen en una partición no cifrada.<br/>Puede continuar si lo desea, pero el desbloqueo del sistema de ficheros ocurrirá más tarde durante el arranque del sistema.<br/>Para cifrar la partición de arranque, retroceda y vuelva a crearla, seleccionando <strong>Cifrar</strong> en la ventana de creación de la partición. - + has at least one disk device available. - + There are no partitions to install on. @@ -2659,14 +2687,14 @@ Saldrá del instalador y se perderán todos los cambios. ProcessResult - + There was no output from the command. No hubo salida del comando. - + Output: @@ -2675,52 +2703,52 @@ Salida: - + External command crashed. El comando externo falló. - + Command <i>%1</i> crashed. El comando <i>%1</i> falló. - + External command failed to start. El comando externo no se pudo iniciar. - + Command <i>%1</i> failed to start. El comando <i>%1</i> no se pudo iniciar. - + Internal error when starting command. Error interno al iniciar el comando. - + Bad parameters for process job call. Parámetros erróneos para la llamada de la tarea del procreso. - + External command failed to finish. El comando externo no se pudo finalizar. - + Command <i>%1</i> failed to finish in %2 seconds. El comando <i>%1</i> no se pudo finalizar en %2 segundos. - + External command finished with errors. El comando externo finalizó con errores. - + Command <i>%1</i> finished with exit code %2. El comando <i>%1</i> finalizó con un código de salida %2. @@ -2728,32 +2756,27 @@ Salida: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown desconocido - + extended extendido - + unformatted sin formato - + swap swap @@ -2807,6 +2830,15 @@ Salida: Espacio no particionado o tabla de partición desconocida + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2842,73 +2874,88 @@ Salida: Formulario - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Seleccione dónde instalar %1<br/><font color="red">Atención: </font>esto borrará todos sus archivos en la partición seleccionada. - + The selected item does not appear to be a valid partition. El elemento seleccionado no parece ser una partición válida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 no se puede instalar en el espacio vacío. Por favor, seleccione una partición existente. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 no se puede instalar en una partición extendida. Por favor, seleccione una partición primaria o lógica existente. - + %1 cannot be installed on this partition. %1 no se puede instalar en esta partición. - + Data partition (%1) Partición de datos (%1) - + Unknown system partition (%1) Partición desconocida del sistema (%1) - + %1 system partition (%2) %1 partición del sistema (%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>%4</strong><br/><br/>La partición %1 es demasiado pequeña para %2. Por favor, seleccione una participación con capacidad para al menos %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>%2</strong><br/><br/>No se puede encontrar una partición de sistema EFI en ninguna parte de este sistema. Por favor, retroceda y use el particionamiento manual para establecer %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. <strong>%3</strong><br/><br/>%1 se instalará en %2.<br/><font color="red">Advertencia: </font>Todos los datos en la partición %2 se perderán. - + The EFI system partition at %1 will be used for starting %2. La partición del sistema EFI en %1 se utilizará para iniciar %2. - + EFI system partition: Partición del sistema EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3031,12 +3078,12 @@ Salida: ResultsListDialog - + For best results, please ensure that this computer: Para obtener los mejores resultados, por favor asegúrese que este ordenador: - + System requirements Requisitos del sistema @@ -3044,27 +3091,27 @@ Salida: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este ordenador no cumple los requisitos mínimos para la instalación. %1.<br/>La instalación no puede continuar. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este ordenador no cumple alguno de los requisitos recomendados para la instalación %1.<br/>La instalación puede continuar, pero algunas funcionalidades podrían ser deshabilitadas. - + This program will ask you some questions and set up %2 on your computer. El programa le preguntará algunas cuestiones y configurará %2 en su ordenador. @@ -3347,51 +3394,80 @@ Salida: TrackingInstallJob - + Installation feedback Respuesta de la instalación - + Sending installation feedback. Enviar respuesta de la instalación - + Internal error in install-tracking. Error interno en el seguimiento-de-instalación. - + HTTP request timed out. La petición HTTP agotó el tiempo de espera. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Respuesta de la máquina - + Configuring machine feedback. Configurando respuesta de la máquina. - - + + Error in machine feedback configuration. Error en la configuración de la respuesta de la máquina. - + Could not configure machine feedback correctly, script error %1. No se pudo configurar correctamente la respuesta de la máquina, error de script %1. - + Could not configure machine feedback correctly, Calamares error %1. No se pudo configurar correctamente la respuesta de la máquina, error de Calamares %1. @@ -3410,8 +3486,8 @@ Salida: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Al seleccionar esto, no enviará <span style=" font-weight:600;">información en absoluto</span> acerca de su instalación.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3419,30 +3495,30 @@ Salida: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Pulse aquí para más información acerca de la respuesta del usuario</span></a></p></body></html> - - Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - El seguimiento de instalación ayuda a %1 a ver cuántos usuarios tiene, en qué hardware se instala %1, y (con las últimas dos opciones de debajo) a obtener información continua acerca de las aplicaciones preferidas. Para ver lo que se enviará, por favor, pulse en el icono de ayuda junto a cada área. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Al seleccionar esto enviará información acerca de su instalación y hardware. Esta información <b>sólo se enviará una vez</b> después de que finalice la instalación. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Al seleccionar esto enviará información <b>periódicamente</b> acerca de su instalación, hardware y aplicaciones, a %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Al seleccionar esto enviará información <b>regularmente</b> acerca de su instalación, hardware, aplicaciones y patrones de uso, a %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Respuesta @@ -3628,42 +3704,42 @@ Salida: &Notas de publicación - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Bienvenido al instalador %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Bienvenido al instalador de Calamares para %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Bienvenido al instalador %1.</h1> - + %1 support %1 ayuda - + About %1 setup Acerca de la configuración %1 - + About %1 installer Acerca del instalador %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3671,7 +3747,7 @@ Salida: WelcomeQmlViewStep - + Welcome Bienvenido @@ -3679,7 +3755,7 @@ Salida: WelcomeViewStep - + Welcome Bienvenido @@ -3708,6 +3784,26 @@ Salida: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3753,6 +3849,24 @@ Salida: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3804,27 +3918,27 @@ Salida: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_es_MX.ts b/lang/calamares_es_MX.ts index a0aff287c..fdb2793bf 100644 --- a/lang/calamares_es_MX.ts +++ b/lang/calamares_es_MX.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Preparar - + Install Instalar @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Trabajo fallido (%1) - + Programmed job failure was explicitly requested. Falla del trabajo programado fue solicitado explícitamente. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Hecho @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Trabajo de ejemplo. (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Ejecutando comando %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Ejecutando operación %1. - + Bad working directory path Ruta a la carpeta de trabajo errónea - + Working directory %1 for python job %2 is not readable. La carpeta de trabajo %1 para la tarea de python %2 no es accesible. - + Bad main script file Script principal erróneo - + Main script file %1 for python job %2 is not readable. El script principal %1 del proceso python %2 no es accesible. - + Boost.Python error in job "%1". Error Boost.Python en el proceso "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Chequeo de requerimientos del sistema completado. @@ -273,13 +278,13 @@ - + &Yes &Si - + &No &No @@ -314,109 +319,109 @@ <br/>Los siguientes módulos no pudieron ser cargados: - + Continue with setup? ¿Continuar con la instalación? - + Continue with installation? ¿Continuar con la instalación? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> El %1 programa de instalación esta a punto de realizar cambios a su disco con el fin de establecer %2.<br/><strong>Usted no podrá deshacer estos cambios.</strong> - + 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> El instalador %1 va a realizar cambios en su disco para instalar %2.<br/><strong>No podrá deshacer estos cambios.</strong> - + &Set up now &Configurar ahora - + &Install now &Instalar ahora - + Go &back &Regresar - + &Set up &Configurar - + &Install &Instalar - + Setup is complete. Close the setup program. Configuración completa. Cierre el programa de instalación. - + The installation is complete. Close the installer. Instalación completa. Cierre el instalador. - + Cancel setup without changing the system. Cancelar la configuración sin cambiar el sistema. - + Cancel installation without changing the system. Cancelar instalación sin cambiar el sistema. - + &Next &Siguiente - + &Back &Atrás - + &Done &Hecho - + &Cancel &Cancelar - + Cancel setup? ¿Cancelar la configuración? - + Cancel installation? ¿Cancelar la instalación? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. ¿Realmente desea cancelar el actual proceso de configuración? El programa de instalación se cerrará y todos los cambios se perderán. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. ¿Realmente desea cancelar el proceso de instalación actual? @@ -426,22 +431,22 @@ El instalador terminará y se perderán todos los cambios. CalamaresPython::Helper - + Unknown exception type Tipo de excepción desconocida - + unparseable Python error error Python no analizable - + unparseable Python traceback rastreo de Python no analizable - + Unfetchable Python error. Error de Python inalcanzable. @@ -458,32 +463,32 @@ El instalador terminará y se perderán todos los cambios. CalamaresWindow - + Show debug information Mostrar información de depuración - + &Back &Atrás - + &Next &Siguiente - + &Cancel &Cancelar - + %1 Setup Program %1 Programa de instalación - + %1 Installer %1 Instalador @@ -681,18 +686,18 @@ El instalador terminará y se perderán todos los cambios. CommandList - - + + Could not run command. No puede ejecutarse el comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Este comando se ejecuta en el entorno host y necesita saber la ruta root, pero no hay rootMountPoint definido. - + The command needs to know the user's name, but no username is defined. Este comando necesita saber el nombre de usuario, pero no hay nombre de usuario definido. @@ -745,49 +750,49 @@ El instalador terminará y se perderán todos los cambios. Instalación de Red. (Deshabilitada: No se puede acceder a la lista de paquetes, verifique su conección de red) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este equipo no cumple los requisitos mínimos para la instalación. %1.<br/>La instalación no puede continuar. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este equipo no cumple alguno de los requisitos recomendados para la instalación %1.<br/>La instalación puede continuar, pero algunas funcionalidades podrían ser deshabilitadas. - + This program will ask you some questions and set up %2 on your computer. El programa le hará algunas preguntas y configurará %2 en su ordenador. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Bienvenido al programa de instalación Calamares para %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Bienvenido a la configuración %1</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Bienvenido al instalador Calamares para %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Bienvenido al instalador de %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ El instalador terminará y se perderán todos los cambios. FillGlobalStorageJob - + Set partition information Fijar información de la partición. - + Install %1 on <strong>new</strong> %2 system partition. Instalar %1 en <strong>nueva</strong> %2 partición de sistema. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Configurar <strong>nueva</strong> %2 partición con punto de montaje <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instalar %2 en %3 partición del sistema <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Configurar %3 partición <strong>%1</strong> con punto de montaje <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalar el cargador de arranque en <strong>%1</strong>. - + Setting up mount points. Configurando puntos de montaje. @@ -1272,32 +1277,32 @@ El instalador terminará y se perderán todos los cambios. &Reiniciar ahora - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Todo listo.</h1><br/>% 1 se ha configurado en su computadora. <br/>Ahora puede comenzar a usar su nuevo sistema. - + <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 setup program.</p></body></html> <html><head/><body><p>Cuando esta casilla está marcada, su sistema se reiniciará inmediatamente cuando haga clic en <span style="font-style:italic;">Listo</span> o cierre el programa de instalación.</p></body></html> - + <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>Listo.</h1><br/>%1 ha sido instalado en su computadora.<br/>Ahora puede reiniciar su nuevo sistema, o continuar usando el entorno Live %2. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalación fallida</h1> <br/>%1 no ha sido instalado en su computador. <br/>El mensaje de error es: %2. @@ -1305,27 +1310,27 @@ El instalador terminará y se perderán todos los cambios. FinishedViewStep - + Finish Terminado - + Setup Complete - + Installation Complete Instalación Completa - + The setup of %1 is complete. - + The installation of %1 is complete. La instalación de %1 está completa. @@ -1356,72 +1361,72 @@ El instalador terminará y se perderán todos los cambios. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source está conectado a una fuente de energía - + The system is not plugged in to a power source. El sistema no está conectado a una fuente de energía. - + is connected to the Internet está conectado a Internet - + The system is not connected to the Internet. El sistema no está conectado a Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. El instalador no se está ejecutando con privilegios de administrador. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. La pantalla es muy pequeña para mostrar el instalador @@ -1769,6 +1774,16 @@ El instalador terminará y se perderán todos los cambios. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ El instalador terminará y se perderán todos los cambios. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ El instalador terminará y se perderán todos los cambios. Particiones - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>junto con</strong> otro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Borrar</strong> el disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Reemplazar</strong> una parición con %1. - + <strong>Manual</strong> partitioning. Particionamiento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>junto con</strong> otro sistema operativo en el disco <strong>%2</strong>(%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Borrar</strong> el disco <strong>%2<strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Reemplazar</strong> una parición en el disco <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionar <strong>manualmente</strong> el disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Actual: - + After: Después: - + No EFI system partition configured Sistema de partición EFI no configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Indicador de partición del sistema EFI no configurado - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Partición de arranque no encriptada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Se creó una partición de arranque separada junto con una partición raíz cifrada, pero la partición de arranque no está encriptada.<br/><br/> Existen problemas de seguridad con este tipo de configuración, ya que los archivos importantes del sistema se guardan en una partición no encriptada. <br/>Puede continuar si lo desea, pero el desbloqueo del sistema de archivos ocurrirá más tarde durante el inicio del sistema. <br/>Para encriptar la partición de arranque, retroceda y vuelva a crearla, seleccionando <strong>Encriptar</strong> en la ventana de creación de la partición. - + has at least one disk device available. - + There are no partitions to install on. @@ -2660,14 +2688,14 @@ El instalador terminará y se perderán todos los cambios. ProcessResult - + There was no output from the command. No hubo salida desde el comando. - + Output: @@ -2676,52 +2704,52 @@ Salida - + External command crashed. El comando externo ha fallado. - + Command <i>%1</i> crashed. El comando <i>%1</i> ha fallado. - + External command failed to start. El comando externo falló al iniciar. - + Command <i>%1</i> failed to start. El comando <i>%1</i> Falló al iniciar. - + Internal error when starting command. Error interno al iniciar el comando. - + Bad parameters for process job call. Parámetros erróneos en la llamada al proceso. - + External command failed to finish. Comando externo falla al finalizar - + Command <i>%1</i> failed to finish in %2 seconds. Comando <i>%1</i> falló al finalizar en %2 segundos. - + External command finished with errors. Comando externo finalizado con errores - + Command <i>%1</i> finished with exit code %2. Comando <i>%1</i> finalizó con código de salida %2. @@ -2729,32 +2757,27 @@ Salida QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown desconocido - + extended extendido - + unformatted no formateado - + swap swap @@ -2808,6 +2831,15 @@ Salida Espacio no particionado o tabla de partición desconocida + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,74 +2875,89 @@ Salida Formulario - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Selecciona donde instalar %1.<br/><font color="red">Aviso: </font>Se borrarán todos los archivos de la partición seleccionada. - + The selected item does not appear to be a valid partition. El elemento seleccionado no parece ser una partición válida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 no se puede instalar en un espacio vacío. Selecciona una partición existente. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 no se puede instalar en una partición extendida. Selecciona una partición primaria o lógica. - + %1 cannot be installed on this partition. No se puede instalar %1 en esta partición. - + Data partition (%1) Partición de datos (%1) - + Unknown system partition (%1) Partición de sistema desconocida (%1) - + %1 system partition (%2) %1 partición de sistema (%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>%4</strong><br/><br/>La partición %1 es muy pequeña para %2. Selecciona otra partición que tenga al menos %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>%2</strong><br/><br/>No se puede encontrar una partición EFI en este sistema. Por favor vuelva atrás y use el particionamiento manual para configurar %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. <strong>%3</strong><br/><br/>%1 sera instalado en %2.<br/><font color="red">Advertencia: </font>toda la información en la partición %2 se perdera. - + The EFI system partition at %1 will be used for starting %2. La partición EFI en %1 será usada para iniciar %2. - + EFI system partition: Partición de sistema EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3033,12 +3080,12 @@ Salida ResultsListDialog - + For best results, please ensure that this computer: Para mejores resultados, por favor verifique que esta computadora: - + System requirements Requisitos de sistema @@ -3046,27 +3093,27 @@ Salida ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este equipo no cumple los requisitos mínimos para la instalación. %1.<br/>La instalación no puede continuar. <a href="#details">Detalles...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este equipo no cumple alguno de los requisitos recomendados para la instalación %1.<br/>La instalación puede continuar, pero algunas funcionalidades podrían ser deshabilitadas. - + This program will ask you some questions and set up %2 on your computer. El programa le hará algunas preguntas y configurará %2 en su ordenador. @@ -3349,51 +3396,80 @@ Salida TrackingInstallJob - + Installation feedback Retroalimentacion de la instalación - + Sending installation feedback. Envío de retroalimentación de instalación. - + Internal error in install-tracking. Error interno en el seguimiento de instalación. - + HTTP request timed out. Tiempo de espera en la solicitud HTTP agotado. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Retroalimentación de la maquina - + Configuring machine feedback. Configurando la retroalimentación de la maquina. - - + + Error in machine feedback configuration. Error en la configuración de retroalimentación de la máquina. - + Could not configure machine feedback correctly, script error %1. No se pudo configurar correctamente la retroalimentación de la máquina, error de script% 1. - + Could not configure machine feedback correctly, Calamares error %1. No se pudo configurar la retroalimentación de la máquina correctamente, Calamares error% 1. @@ -3412,8 +3488,8 @@ Salida - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Al seleccionar esto, usted no enviará <span style=" font-weight:600;">ninguna información</span> acerca de su instalacion.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3421,30 +3497,30 @@ Salida <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Haga clic aquí para más información acerca de comentarios del usuario</span></a></p></body></html> - - Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - El seguimiento de instalación ayuda a% 1 a ver cuántos usuarios tienen, qué hardware instalan% 1 y (con las dos últimas opciones a continuación), obtener información continua sobre las aplicaciones preferidas. Para ver qué se enviará, haga clic en el ícono de ayuda al lado de cada área. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Al seleccionar esto usted enviará información acerca de su instalación y hardware. Esta informacion será <b>enviada unicamente una vez</b> después de terminada la instalación. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Al seleccionar esto usted enviará información <b>periodicamente</b> acerca de su instalación, hardware y aplicaciones a %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Al seleccionar esto usted enviará información <b>regularmente</b> acerca de su instalación, hardware y patrones de uso de aplicaciones a %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Retroalimentación @@ -3630,42 +3706,42 @@ Salida &Notas de lanzamiento - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Bienvenido al programa de instalación Calamares para %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Bienvenido a la configuración %1</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Bienvenido al instalador Calamares para %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Bienvenido al instalador de %1.</h1> - + %1 support %1 Soporte - + About %1 setup Acerca de la configuración %1 - + About %1 installer Acerca del instalador %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3673,7 +3749,7 @@ Salida WelcomeQmlViewStep - + Welcome Bienvenido @@ -3681,7 +3757,7 @@ Salida WelcomeViewStep - + Welcome Bienvenido @@ -3710,6 +3786,26 @@ Salida + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3755,6 +3851,24 @@ Salida + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3806,27 +3920,27 @@ Salida - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_es_PR.ts b/lang/calamares_es_PR.ts index bc6cd41cf..be87e9323 100644 --- a/lang/calamares_es_PR.ts +++ b/lang/calamares_es_PR.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Instalar @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Hecho @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path La ruta del directorio de trabajo es incorrecta - + Working directory %1 for python job %2 is not readable. El directorio de trabajo %1 para el script de python %2 no se puede leer. - + Bad main script file Script principal erróneo - + Main script file %1 for python job %2 is not readable. El script principal %1 del proceso python %2 no es accesible. - + Boost.Python error in job "%1". Error Boost.Python en el proceso "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &Próximo - + &Back &Atrás - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back &Atrás - + &Next &Próximo - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. Parámetros erróneos para el trabajo en proceso. - + 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: Formulario - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_et.ts b/lang/calamares_et.ts index 66cd699ae..f9104cb0a 100644 --- a/lang/calamares_et.ts +++ b/lang/calamares_et.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Paigalda @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Valmis @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Käivitan käsklust %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Käivitan %1 tegevust. - + Bad working directory path Halb töökausta tee - + Working directory %1 for python job %2 is not readable. Töökaust %1 python tööle %2 pole loetav. - + Bad main script file Halb põhiskripti fail - + Main script file %1 for python job %2 is not readable. Põhiskripti fail %1 python tööle %2 pole loetav. - + Boost.Python error in job "%1". Boost.Python viga töös "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Jah - + &No &Ei @@ -314,108 +319,108 @@ <br/>Järgnevaid mooduleid ei saanud laadida: - + Continue with setup? Jätka seadistusega? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 paigaldaja on tegemas muudatusi sinu kettale, et paigaldada %2.<br/><strong>Sa ei saa neid muudatusi tagasi võtta.</strong> - + &Set up now &Seadista kohe - + &Install now &Paigalda kohe - + Go &back Mine &tagasi - + &Set up &Seadista - + &Install &Paigalda - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Paigaldamine on lõpetatud. Sulge paigaldaja. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Tühista paigaldamine ilma süsteemi muutmata. - + &Next &Edasi - + &Back &Tagasi - + &Done &Valmis - + &Cancel &Tühista - + Cancel setup? - + Cancel installation? Tühista paigaldamine? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Kas sa tõesti soovid tühistada praeguse paigaldusprotsessi? @@ -425,22 +430,22 @@ Paigaldaja sulgub ning kõik muutused kaovad. CalamaresPython::Helper - + Unknown exception type Tundmatu veateade - + unparseable Python error mittetöödeldav Python'i viga - + unparseable Python traceback mittetöödeldav Python'i traceback - + Unfetchable Python error. Kättesaamatu Python'i viga. @@ -457,32 +462,32 @@ Paigaldaja sulgub ning kõik muutused kaovad. CalamaresWindow - + Show debug information Kuva silumisteavet - + &Back &Tagasi - + &Next &Edasi - + &Cancel &Tühista - + %1 Setup Program - + %1 Installer %1 paigaldaja @@ -679,18 +684,18 @@ Paigaldaja sulgub ning kõik muutused kaovad. CommandList - - + + Could not run command. Käsku ei saanud käivitada. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. See käsklus käivitatakse hostikeskkonnas ning peab teadma juurteed, kuid rootMountPoint pole defineeritud. - + The command needs to know the user's name, but no username is defined. Käsklus peab teadma kasutaja nime, aga kasutajanimi pole defineeritud. @@ -743,49 +748,49 @@ Paigaldaja sulgub ning kõik muutused kaovad. Võrgupaigaldus. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> See arvuti ei rahulda %1 paigldamiseks vajalikke minimaaltingimusi.<br/>Paigaldamine ei saa jätkuda. <a href="#details">Detailid...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.<br/>Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud. - + This program will ask you some questions and set up %2 on your computer. See programm küsib sult mõned küsimused ja seadistab %2 sinu arvutisse. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Tere tulemast Calamares'i paigaldajasse %1 jaoks.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Tere tulemast %1 paigaldajasse.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ Paigaldaja sulgub ning kõik muutused kaovad. FillGlobalStorageJob - + Set partition information Sea partitsiooni teave - + Install %1 on <strong>new</strong> %2 system partition. Paigalda %1 <strong>uude</strong> %2 süsteemipartitsiooni. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Seadista <strong>uus</strong> %2 partitsioon monteerimiskohaga <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Paigalda %2 %3 süsteemipartitsioonile <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Seadista %3 partitsioon <strong>%1</strong> monteerimiskohaga <strong>%2</strong> - + Install boot loader on <strong>%1</strong>. Paigalda käivituslaadur kohta <strong>%1</strong>. - + Setting up mount points. Seadistan monteerimispunkte. @@ -1270,32 +1275,32 @@ Paigaldaja sulgub ning kõik muutused kaovad. &Taaskäivita nüüd - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Kõik on valmis.</h1><br/>%1 on paigaldatud sinu arvutisse.<br/>Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Paigaldamine ebaõnnestus</h1><br/>%1 ei paigaldatud sinu arvutisse.<br/>Veateade oli: %2. @@ -1303,27 +1308,27 @@ Paigaldaja sulgub ning kõik muutused kaovad. FinishedViewStep - + Finish Valmis - + Setup Complete Seadistus valmis - + Installation Complete Paigaldus valmis - + The setup of %1 is complete. - + The installation of %1 is complete. %1 paigaldus on valmis. @@ -1354,72 +1359,72 @@ Paigaldaja sulgub ning kõik muutused kaovad. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source on ühendatud vooluallikasse - + The system is not plugged in to a power source. Süsteem pole ühendatud vooluallikasse. - + is connected to the Internet on ühendatud Internetti - + The system is not connected to the Internet. Süsteem pole ühendatud Internetti. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Paigaldaja pole käivitatud administraatoriõigustega. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Ekraan on paigaldaja kuvamiseks liiga väike. @@ -1767,6 +1772,16 @@ Paigaldaja sulgub ning kõik muutused kaovad. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ Paigaldaja sulgub ning kõik muutused kaovad. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ Paigaldaja sulgub ning kõik muutused kaovad. Partitsioonid - + Install %1 <strong>alongside</strong> another operating system. Paigalda %1 praeguse operatsioonisüsteemi <strong>kõrvale</strong> - + <strong>Erase</strong> disk and install %1. <strong>Tühjenda</strong> ketas ja paigalda %1. - + <strong>Replace</strong> a partition with %1. <strong>Asenda</strong> partitsioon operatsioonisüsteemiga %1. - + <strong>Manual</strong> partitioning. <strong>Käsitsi</strong> partitsioneerimine. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Paigalda %1 teise operatsioonisüsteemi <strong>kõrvale</strong> kettal <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Tühjenda</strong> ketas <strong>%2</strong> (%3) ja paigalda %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Asenda</strong> partitsioon kettal <strong>%2</strong> (%3) operatsioonisüsteemiga %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Käsitsi</strong> partitsioneerimine kettal <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Ketas <strong>%1</strong> (%2). - + Current: Hetkel: - + After: Pärast: - + No EFI system partition configured EFI süsteemipartitsiooni pole seadistatud - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI süsteemipartitsiooni silt pole määratud - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Käivituspartitsioon pole krüptitud - + 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. Eraldi käivituspartitsioon seadistati koos krüptitud juurpartitsiooniga, aga käivituspartitsioon ise ei ole krüptitud.<br/><br/>Selle seadistusega kaasnevad turvaprobleemid, sest tähtsad süsteemifailid hoitakse krüptimata partitsioonil.<br/>Sa võid soovi korral jätkata, aga failisüsteemi lukust lahti tegemine toimub hiljem süsteemi käivitusel.<br/>Et krüpteerida käivituspartisiooni, mine tagasi ja taasloo see, valides <strong>Krüpteeri</strong> partitsiooni loomise aknas. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,14 +2686,14 @@ Paigaldaja sulgub ning kõik muutused kaovad. ProcessResult - + There was no output from the command. Käsul polnud väljundit. - + Output: @@ -2674,52 +2702,52 @@ Väljund: - + External command crashed. Väline käsk jooksis kokku. - + Command <i>%1</i> crashed. Käsk <i>%1</i> jooksis kokku. - + External command failed to start. Välise käsu käivitamine ebaõnnestus. - + Command <i>%1</i> failed to start. Käsu <i>%1</i> käivitamine ebaõnnestus. - + Internal error when starting command. Käsu käivitamisel esines sisemine viga. - + Bad parameters for process job call. Protsessi töö kutsel olid halvad parameetrid. - + External command failed to finish. Väline käsk ei suutnud lõpetada. - + Command <i>%1</i> failed to finish in %2 seconds. Käsk <i>%1</i> ei suutnud lõpetada %2 sekundi jooksul. - + External command finished with errors. Väline käsk lõpetas vigadega. - + Command <i>%1</i> finished with exit code %2. Käsk <i>%1</i> lõpetas sulgemiskoodiga %2. @@ -2727,32 +2755,27 @@ Väljund: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown tundmatu - + extended laiendatud - + unformatted vormindamata - + swap swap @@ -2806,6 +2829,15 @@ Väljund: Partitsioneerimata ruum või tundmatu partitsioonitabel + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2841,73 +2873,88 @@ Väljund: Form - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Vali, kuhu soovid %1 paigaldada.<br/><font color="red">Hoiatus: </font>see kustutab valitud partitsioonilt kõik failid. - + The selected item does not appear to be a valid partition. Valitud üksus ei paista olevat sobiv partitsioon. - + %1 cannot be installed on empty space. Please select an existing partition. %1 ei saa paigldada tühjale kohale. Palun vali olemasolev partitsioon. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 ei saa paigaldada laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon. - + %1 cannot be installed on this partition. %1 ei saa sellele partitsioonile paigaldada. - + Data partition (%1) Andmepartitsioon (%1) - + Unknown system partition (%1) Tundmatu süsteemipartitsioon (%1) - + %1 system partition (%2) %1 süsteemipartitsioon (%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>%4</strong><br/><br/>Partitsioon %1 on liiga väike %2 jaoks. Palun vali partitsioon suurusega vähemalt %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>%2</strong><br/><br/>Sellest süsteemist ei leitud EFI süsteemipartitsiooni. Palun mine tagasi ja kasuta käsitsi partitsioneerimist, et seadistada %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. <strong>%3</strong><br/><br/>%1 paigaldatakse partitsioonile %2.<br/><font color="red">Hoiatus: </font>kõik andmed partitsioonil %2 kaovad. - + The EFI system partition at %1 will be used for starting %2. EFI süsteemipartitsioon asukohas %1 kasutatakse %2 käivitamiseks. - + EFI system partition: EFI süsteemipartitsioon: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3030,12 +3077,12 @@ Väljund: ResultsListDialog - + For best results, please ensure that this computer: Parimate tulemuste jaoks palun veendu, et see arvuti: - + System requirements Süsteeminõudmised @@ -3043,27 +3090,27 @@ Väljund: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> See arvuti ei rahulda %1 paigldamiseks vajalikke minimaaltingimusi.<br/>Paigaldamine ei saa jätkuda. <a href="#details">Detailid...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.<br/>Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud. - + This program will ask you some questions and set up %2 on your computer. See programm küsib sult mõned küsimused ja seadistab %2 sinu arvutisse. @@ -3346,51 +3393,80 @@ Väljund: TrackingInstallJob - + Installation feedback Paigalduse tagasiside - + Sending installation feedback. Saadan paigalduse tagasisidet. - + Internal error in install-tracking. Paigaldate jälitamisel esines sisemine viga. - + HTTP request timed out. HTTP taotlusel esines ajalõpp. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Seadme tagasiside - + Configuring machine feedback. Seadistan seadme tagasisidet. - - + + Error in machine feedback configuration. Masina tagasiside konfiguratsioonis esines viga. - + Could not configure machine feedback correctly, script error %1. Masina tagasisidet ei suudetud korralikult konfigureerida, skripti viga %1. - + Could not configure machine feedback correctly, Calamares error %1. Masina tagasisidet ei suudetud korralikult konfigureerida, Calamares'e viga %1. @@ -3409,8 +3485,8 @@ Väljund: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Seda valides <span style=" font-weight:600;">ei saada sa üldse</span> teavet oma paigalduse kohta.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3418,30 +3494,30 @@ Väljund: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klõpsa siia, et saada rohkem teavet kasutaja tagasiside kohta</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. - Paigalduse jälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 paigaldavad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Seda valides saadad sa teavet oma paigalduse ja riistvara kohta. See teave <b>saadetakse ainult korra</b>peale paigalduse lõppu. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Seda valides saadad sa %1-le <b>perioodiliselt</b> infot oma paigalduse, riistvara ja rakenduste kohta. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Seda valides saadad sa %1-le <b>regulaarselt</b> infot oma paigalduse, riistvara, rakenduste ja kasutusharjumuste kohta. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Tagasiside @@ -3627,42 +3703,42 @@ Väljund: &Väljalaskemärkmed - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Tere tulemast Calamares'i paigaldajasse %1 jaoks.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Tere tulemast %1 paigaldajasse.</h1> - + %1 support %1 tugi - + About %1 setup - + About %1 installer Teave %1 paigaldaja kohta - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3670,7 +3746,7 @@ Väljund: WelcomeQmlViewStep - + Welcome Tervist @@ -3678,7 +3754,7 @@ Väljund: WelcomeViewStep - + Welcome Tervist @@ -3707,6 +3783,26 @@ Väljund: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3752,6 +3848,24 @@ Väljund: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3803,27 +3917,27 @@ Väljund: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_eu.ts b/lang/calamares_eu.ts index a2d04b649..ea7e41226 100644 --- a/lang/calamares_eu.ts +++ b/lang/calamares_eu.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Instalatu @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Egina @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 %1 %2 komandoa exekutatzen @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 eragiketa burutzen. - + Bad working directory path Direktorio ibilbide ezegokia - + Working directory %1 for python job %2 is not readable. %1 lanerako direktorioa %2 python lanak ezin du irakurri. - + Bad main script file Script fitxategi nagusi okerra - + Main script file %1 for python job %2 is not readable. %1 script fitxategi nagusia ezin da irakurri python %2 lanerako - + Boost.Python error in job "%1". Boost.Python errorea "%1" lanean. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Bai - + &No &Ez @@ -314,108 +319,108 @@ <br/> Ondorengo moduluak ezin izan dira kargatu: - + Continue with setup? Ezarpenarekin jarraitu? - + Continue with installation? Instalazioarekin jarraitu? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 instalatzailea zure diskoan aldaketak egitera doa %2 instalatzeko.<br/><strong>Ezingo dituzu desegin aldaketa hauek.</strong> - + &Set up now - + &Install now &Instalatu orain - + Go &back &Atzera - + &Set up - + &Install &Instalatu - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Instalazioa burutu da. Itxi instalatzailea. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Instalazioa bertan behera utsi da sisteman aldaketarik gabe. - + &Next &Hurrengoa - + &Back &Atzera - + &Done E&ginda - + &Cancel &Utzi - + Cancel setup? - + Cancel installation? Bertan behera utzi instalazioa? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Ziur uneko instalazio prozesua bertan behera utzi nahi duzula? @@ -425,22 +430,22 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. CalamaresPython::Helper - + Unknown exception type Salbuespen-mota ezezaguna - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -457,32 +462,32 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. CalamaresWindow - + Show debug information Erakutsi arazte informazioa - + &Back &Atzera - + &Next &Hurrengoa - + &Cancel &Utzi - + %1 Setup Program - + %1 Installer %1 Instalatzailea @@ -679,18 +684,18 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. CommandList - - + + Could not run command. Ezin izan da komandoa exekutatu. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Komandoa exekutatzen da ostalariaren inguruan eta erro bidea jakin behar da baina erroaren muntaketa punturik ez da zehaztu. - + The command needs to know the user's name, but no username is defined. Komandoak erabiltzailearen izena jakin behar du baina ez da zehaztu erabiltzaile-izenik. @@ -743,49 +748,49 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Konputagailu honek ez dauzka gutxieneko eskakizunak %1 instalatzeko. <br/>Instalazioak ezin du jarraitu. <a href="#details">Xehetasunak...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Konputagailu honek ez du betetzen gomendatutako zenbait eskakizun %1 instalatzeko. <br/>Instalazioak jarraitu ahal du, baina zenbait ezaugarri desgaituko dira. - + This program will ask you some questions and set up %2 on your computer. Konputagailuan %2 ezartzeko programa honek hainbat galdera egingo dizkizu. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Ongi etorri %1 instalatzailera.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. FillGlobalStorageJob - + Set partition information Ezarri partizioaren informazioa - + Install %1 on <strong>new</strong> %2 system partition. Instalatu %1 sistemako %2 partizio <strong>berrian</strong>. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Ezarri %2 partizio <strong>berria</strong> <strong>%1</strong> muntatze puntuarekin. - + Install %2 on %3 system partition <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Ezarri %3 partizioa <strong>%1</strong> <strong>%2</strong> muntatze puntuarekin. - + Install boot loader on <strong>%1</strong>. Instalatu abio kargatzailea <strong>%1</strong>-(e)n. - + Setting up mount points. Muntatze puntuak ezartzen. @@ -1270,32 +1275,32 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. &Berrabiarazi orain - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1303,27 +1308,27 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. FinishedViewStep - + Finish Bukatu - + Setup Complete - + Installation Complete Instalazioa amaitua - + The setup of %1 is complete. - + The installation of %1 is complete. %1 instalazioa amaitu da. @@ -1354,72 +1359,72 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. Sistema ez dago indar iturri batetara konektatuta. - + is connected to the Internet Internetera konektatuta dago - + The system is not connected to the Internet. Sistema ez dago Internetera konektatuta. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Instalatzailea ez dabil exekutatzen administrari eskubideekin. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Pantaila txikiegia da instalatzailea erakusteko. @@ -1767,6 +1772,16 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. Partizioak - + 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: Unekoa: - + After: Ondoren: - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,13 +2686,13 @@ Instalatzailea irten egingo da eta aldaketa guztiak galduko dira. ProcessResult - + There was no output from the command. - + Output: @@ -2673,52 +2701,52 @@ Irteera: - + External command crashed. Kanpo-komandoak huts egin du. - + Command <i>%1</i> crashed. <i>%1</i> komandoak huts egin du. - + External command failed to start. Ezin izan da %1 kanpo-komandoa abiarazi. - + Command <i>%1</i> failed to start. Ezin izan da <i>%1</i> komandoa abiarazi. - + Internal error when starting command. Barne-akatsa komandoa abiarazterakoan. - + Bad parameters for process job call. - + External command failed to finish. Kanpo-komandoa ez da bukatu. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. Kanpo-komandoak akatsekin bukatu da. - + Command <i>%1</i> finished with exit code %2. @@ -2726,32 +2754,27 @@ Irteera: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown Ezezaguna - + extended Hedatua - + unformatted Formatugabea - + swap swap @@ -2805,6 +2828,15 @@ Irteera: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2840,73 +2872,88 @@ Irteera: Formulario - + 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. %1eko EFI partizio sistema erabiliko da abiarazteko %2. - + EFI system partition: EFI sistema-partizioa: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3029,12 +3076,12 @@ Irteera: ResultsListDialog - + For best results, please ensure that this computer: Emaitza egokienak lortzeko, ziurtatu ordenagailu honek baduela: - + System requirements Sistemaren betebeharrak @@ -3042,27 +3089,27 @@ Irteera: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Konputagailu honek ez dauzka gutxieneko eskakizunak %1 instalatzeko. <br/>Instalazioak ezin du jarraitu. <a href="#details">Xehetasunak...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Konputagailu honek ez du betetzen gomendatutako zenbait eskakizun %1 instalatzeko. <br/>Instalazioak jarraitu ahal du, baina zenbait ezaugarri desgaituko dira. - + This program will ask you some questions and set up %2 on your computer. Konputagailuan %2 ezartzeko programa honek hainbat galdera egingo dizkizu. @@ -3345,51 +3392,80 @@ Irteera: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + 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. @@ -3408,7 +3484,7 @@ Irteera: - <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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3417,30 +3493,30 @@ Irteera: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback Feedback @@ -3626,42 +3702,42 @@ Irteera: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Ongi etorri %1 instalatzailera.</h1> - + %1 support %1 euskarria - + About %1 setup - + About %1 installer %1 instalatzaileari buruz - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3669,7 +3745,7 @@ Irteera: WelcomeQmlViewStep - + Welcome Ongi etorri @@ -3677,7 +3753,7 @@ Irteera: WelcomeViewStep - + Welcome Ongi etorri @@ -3706,6 +3782,26 @@ Irteera: Atzera + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Atzera + + keyboardq @@ -3751,6 +3847,24 @@ Irteera: Frogatu zure teklatua + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3802,27 +3916,27 @@ Irteera: - + About Honi buruz - + Support - + Known issues - + Release notes - + Donate Egin dohaintza diff --git a/lang/calamares_fa.ts b/lang/calamares_fa.ts index 00b82036f..06f58e00a 100644 --- a/lang/calamares_fa.ts +++ b/lang/calamares_fa.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up راه‌اندازی - + Install نصب @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) کار شکست خورد. (%1) - + Programmed job failure was explicitly requested. عدم موفقیت کار برنامه ریزی شده به صورت صریح درخواست شد @@ -143,7 +143,7 @@ Calamares::JobThread - + Done انجام شد. @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) کار نمونه (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. دستور '%1' را در سیستم هدف اجرا کنید - + Run command '%1'. دستور '%1' را اجرا کنید - + Running command %1 %2 اجرای دستور %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. اجرا عملیات %1 - + Bad working directory path مسیر شاخهٔ جاری بد - + Working directory %1 for python job %2 is not readable. شاخهٔ کاری %1 برای کار پایتونی %2 خواندنی نیست - + Bad main script file پروندهٔ کدنوشتهٔ اصلی بد - + Main script file %1 for python job %2 is not readable. پروندهٔ کدنویسهٔ اصلی %1 برای کار پایتونی %2 قابل خواندن نیست. - + Boost.Python error in job "%1". خطای Boost.Python در کار %1. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). منتظر ماندن برای n% ماژول @@ -236,7 +241,7 @@ - + (%n second(s)) (%n ثانیه) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. چک کردن نیازمندی‌های سیستم تمام شد. @@ -273,13 +278,13 @@ - + &Yes &بله - + &No &خیر @@ -314,109 +319,109 @@ <br/>این ماژول نمی‌تواند بالا بیاید: - + Continue with setup? ادامهٔ برپایی؟ - + Continue with installation? نصب ادامه یابد؟ - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> برنامه نصب %1 در شرف ایجاد تغییرات در دیسک شما به منظور راه‌اندازی %2 است. <br/><strong>شما قادر نخواهید بود تا این تغییرات را برگردانید.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> نصب‌کنندهٔ %1 می‌خواهد برای نصب %2 تغییراتی در دیسکتان بدهد. <br/><strong>نخواهید توانست این تغییرات را برگردانید.</strong> - + &Set up now &همین حالا راه‌انداری کنید - + &Install now &اکنون نصب شود - + Go &back &بازگشت - + &Set up &راه‌اندازی - + &Install &نصب - + Setup is complete. Close the setup program. نصب انجام شد. برنامه نصب را ببندید. - + The installation is complete. Close the installer. نصب انجام شد. نصاب را ببندید. - + Cancel setup without changing the system. لغو راه‌اندازی بدون تغییر سیستم. - + Cancel installation without changing the system. لغو نصب بدون تغییر کردن سیستم. - + &Next &بعدی - + &Back &پیشین - + &Done &انجام شد - + &Cancel &لغو - + Cancel setup? لغو راه‌اندازی؟ - + Cancel installation? لغو نصب؟ - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. آیا واقعا می‌خواهید روند راه‌اندازی فعلی رو لغو کنید؟ برنامه راه اندازی ترک می شود و همه تغییرات از بین می روند. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. واقعاً می خواهید فرایند نصب فعلی را لغو کنید؟ @@ -426,22 +431,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type گونهٔ استثنای ناشناخته - + unparseable Python error خطای پایتونی غیرقابل تجزیه - + unparseable Python traceback ردیابی پایتونی غیرقابل تجزیه - + Unfetchable Python error. خطای پایتونی غیرقابل دریافت. @@ -459,32 +464,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information نمایش اطّلاعات اشکال‌زدایی - + &Back &قبلی - + &Next &بعدی - + &Cancel &لغو - + %1 Setup Program %1 برنامه راه‌اندازی - + %1 Installer نصب‌کنندهٔ %1 @@ -681,18 +686,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. نمی‌توان دستور را اجرا کرد. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. دستور در محیط میزبان اجرا می‌شود و نیاز دارد مسیر ریشه را بداند، ولی هیچ نقطهٔ اتّصال ریشه‌ای تعریف نشده. - + The command needs to know the user's name, but no username is defined. دستور نیاز دارد نام کاربر را بداند، ولی هیچ نام کاربری‌ای تعریف نشده. @@ -745,49 +750,49 @@ The installer will quit and all changes will be lost. نصب شبکه‌ای. (از کار افتاده: ناتوان در گرفتن فهرست بسته‌ها. اتّصال شبکه‌تان را بررسی کنید) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. - + This program will ask you some questions and set up %2 on your computer. این برنامه تعدادی سوال از شما پرسیده و %2 را روی رایانه‌تان برپا می‌کند. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>به برنامهٔ برپاسازی کالامارس برای %1 خوش آمدید.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>به برپاسازی %1 خوش آمدید.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>به نصب‌کنندهٔ کالامارس برای %1 خوش آمدید.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>به نصب‌کنندهٔ %1 خوش آمدید.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ The installer will quit and all changes will be lost. 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. برپایی نقطه‌های اتّصال @@ -1272,32 +1277,32 @@ The installer will quit and all changes will be lost. &راه‌اندازی دوباره - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>همه‌چیز انجام شد.</h1><br/>%1 روی رایانه‌تان نصب شد.<br/>ممکن است بخواهید به سامانهٔ جدیدتان وارد شده تا به استفاده از محیط زندهٔ %2 ادامه دهید. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1305,27 +1310,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish پایان - + Setup Complete برپایی کامل شد - + Installation Complete نصب کامل شد - + The setup of %1 is complete. برپایی %1 کامل شد. - + The installation of %1 is complete. نصب %1 کامل شد. @@ -1356,72 +1361,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. سامانه به اینترنت وصل نیست. - + is running the installer as an administrator (root) دارد نصب‌کننده را به عنوان یک مدیر (ریشه) اجرا می‌کند - + The setup program is not running with administrator rights. برنامهٔ برپایی با دسترسی‌های مدیر اجرا نشده‌است. - + The installer is not running with administrator rights. برنامهٔ نصب کننده با دسترسی‌های مدیر اجرا نشده‌است. - + has a screen large enough to show the whole installer صفحه‌ای با بزرگی کافی برای نمایش تمام نصب‌کننده دارد - + The screen is too small to display the setup program. صفحه برای نمایش برنامهٔ برپایی خیلی کوچک است. - + The screen is too small to display the installer. صفحه برای نمایش نصب‌کننده خیلی کوچک است. @@ -1769,6 +1774,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ The installer will quit and all changes will be lost. افرازها - + Install %1 <strong>alongside</strong> another operating system. نصب %1 <strong>در امتداد</strong> سیستم عامل دیگر. - + <strong>Erase</strong> disk and install %1. <strong>پاک کردن</strong> دیسک و نصب %1. - + <strong>Replace</strong> a partition with %1. <strong>جایگزینی</strong> یک پارتیشن و با %1 - + <strong>Manual</strong> partitioning. <strong>پارتیشن‌بندی</strong> دستی. - + 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) دیسک <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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. هیچ پارتیشنی برای نصب وجود ندارد @@ -2660,65 +2688,65 @@ The installer will quit and all changes will be lost. 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. @@ -2726,32 +2754,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown ناشناخته - + extended گسترده - + unformatted قالب‌بندی نشده - + swap مبادله @@ -2805,6 +2828,15 @@ Output: فضای افرازنشده یا جدول افراز ناشناخته + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2840,73 +2872,88 @@ Output: فرم - + 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. پارتیشن سیستم ای.اف.آی در %1 برای شروع %2 استفاده خواهد شد. - + EFI system partition: پارتیشن سیستم ای.اف.آی + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3029,12 +3076,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements نیازمندی‌های سامانه @@ -3042,27 +3089,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب نمی‌تواند ادامه یابد. <a href="#details">جزییات…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. رایانه کمینهٔ نیازمندی‌های برپاسازی %1 را ندارد.<br/>برپاسازی می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. رایانه کمینهٔ نیازمندی‌های نصب %1 را ندارد.<br/>نصب می‌تواند ادامه یابد، ولی ممکن است برخی ویژگی‌ها از کار افتاده باشند. - + This program will ask you some questions and set up %2 on your computer. این برنامه تعدادی سوال از شما پرسیده و %2 را روی رایانه‌تان برپا می‌کند. @@ -3345,51 +3392,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3408,7 +3484,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3417,30 +3493,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback بازخورد @@ -3626,42 +3702,42 @@ Output: &یادداشت‌های انتشار - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>به برنامهٔ برپاسازی کالامارس برای %1 خوش آمدید.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>به برپاسازی %1 خوش آمدید.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>به نصب‌کنندهٔ کالامارس برای %1 خوش آمدید.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>به نصب‌کنندهٔ %1 خوش آمدید.</h1> - + %1 support پشتیبانی %1 - + About %1 setup دربارهٔ برپاسازی %1 - + About %1 installer دربارهٔ نصب‌کنندهٔ %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3669,7 +3745,7 @@ Output: WelcomeQmlViewStep - + Welcome خوش آمدید @@ -3677,7 +3753,7 @@ Output: WelcomeViewStep - + Welcome خوش آمدید @@ -3706,6 +3782,26 @@ Output: بازگشت + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + بازگشت + + keyboardq @@ -3751,6 +3847,24 @@ Output: صفحه‌کلیدتان را بیازمایید + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3802,27 +3916,27 @@ Output: - + About درباره - + Support پشتیبانی - + Known issues اشکالات شناخته‌شده - + Release notes یادداشت‌های انتشار - + Donate اعانه diff --git a/lang/calamares_fi_FI.ts b/lang/calamares_fi_FI.ts index c645149fb..e3e1baf4a 100644 --- a/lang/calamares_fi_FI.ts +++ b/lang/calamares_fi_FI.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Määritä - + Install Asenna @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Työ epäonnistui (%1) - + Programmed job failure was explicitly requested. Ohjelmoitua työn epäonnistumista pyydettiin erikseen. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Valmis @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Esimerkki työ (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Suorita komento '%1' kohdejärjestelmässä. - + Run command '%1'. Suorita komento '%1'. - + Running command %1 %2 Suoritetaan komentoa %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Suoritetaan %1 toimenpidettä. - + Bad working directory path Epäkelpo työskentelyhakemiston polku - + Working directory %1 for python job %2 is not readable. Työkansio %1 pythonin työlle %2 ei ole luettavissa. - + Bad main script file Huono pää-skripti tiedosto - + Main script file %1 for python job %2 is not readable. Pääskriptitiedosto %1 pythonin työlle %2 ei ole luettavissa. - + Boost.Python error in job "%1". Boost.Python virhe työlle "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Moduulin vaatimusten tarkistaminen <i>%1</i> on valmis. + - + Waiting for %n module(s). Odotetaan %n moduuli(t). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n sekunttia(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Järjestelmävaatimusten tarkistus on valmis. @@ -273,13 +278,13 @@ - + &Yes &Kyllä - + &No &Ei @@ -314,109 +319,109 @@ <br/>Seuraavia moduuleja ei voitu ladata: - + Continue with setup? Jatka asennusta? - + Continue with installation? Jatka asennusta? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 asennusohjelma on aikeissa tehdä muutoksia levylle, jotta voit määrittää kohteen %2.<br/><strong>Et voi kumota näitä muutoksia.</strong> - + 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> Asennus ohjelman %1 on tehtävä muutoksia levylle, jotta %2 voidaan asentaa.<br/><strong>Et voi kumota näitä muutoksia.</strong> - + &Set up now &Määritä nyt - + &Install now &Asenna nyt - + Go &back Mene &takaisin - + &Set up &Määritä - + &Install &Asenna - + Setup is complete. Close the setup program. Asennus on valmis. Sulje asennusohjelma. - + The installation is complete. Close the installer. Asennus on valmis. Sulje asennusohjelma. - + Cancel setup without changing the system. Peruuta asennus muuttamatta järjestelmää. - + Cancel installation without changing the system. Peruuta asennus tekemättä muutoksia järjestelmään. - + &Next &Seuraava - + &Back &Takaisin - + &Done &Valmis - + &Cancel &Peruuta - + Cancel setup? Peruuta asennus? - + Cancel installation? Peruuta asennus? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Haluatko todella peruuttaa nykyisen asennuksen? Asennusohjelma lopetetaan ja kaikki muutokset menetetään. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Oletko varma että haluat peruuttaa käynnissä olevan asennusprosessin? @@ -426,22 +431,22 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CalamaresPython::Helper - + Unknown exception type Tuntematon poikkeustyyppi - + unparseable Python error jäsentämätön Python virhe - + unparseable Python traceback jäsentämätön Python jäljitys - + Unfetchable Python error. Python virhettä ei voitu hakea. @@ -459,32 +464,32 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CalamaresWindow - + Show debug information Näytä virheenkorjaustiedot - + &Back &Takaisin - + &Next &Seuraava - + &Cancel &Peruuta - + %1 Setup Program %1 Asennusohjelma - + %1 Installer %1 Asennusohjelma @@ -681,18 +686,18 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CommandList - - + + Could not run command. Komentoa ei voi suorittaa. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Komento toimii isäntäympäristössä ja sen täytyy tietää juuren polku, mutta root-liityntä kohtaa ei ole määritetty. - + The command needs to know the user's name, but no username is defined. Komennon on tiedettävä käyttäjän nimi, mutta käyttäjän tunnusta ei ole määritetty. @@ -745,50 +750,50 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. Verkkoasennus. (Ei käytössä: Pakettiluetteloita ei voi hakea, tarkista verkkoyhteys) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Tämä tietokone ei täytä vähimmäisvaatimuksia, %1.<br/>Asennusta ei voi jatkaa. <a href="#details">Yksityiskohdat...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Tämä tietokone ei täytä asennuksen vähimmäisvaatimuksia, %1.<br/>Asennus ei voi jatkua. <a href="#details">Yksityiskohdat...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.<br/>Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1. Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + This program will ask you some questions and set up %2 on your computer. Tämä ohjelma kysyy joitakin kysymyksiä %2 ja asentaa tietokoneeseen. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Tervetuloa Calamares -asennusohjelmaan %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Tervetuloa Calamares -asennusohjelmaan %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Tervetuloa %1 asennukseen.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Tervetuloa %1 asennukseen</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Tervetuloa Calamares -asennusohjelmaan %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Tervetuloa Calamares -asennusohjelmaan %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Tervetuloa %1 -asennusohjelmaan.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Tervetuloa %1 -asennusohjelmaan</h1> @@ -1225,37 +1230,37 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. FillGlobalStorageJob - + Set partition information Aseta osion tiedot - + Install %1 on <strong>new</strong> %2 system partition. Asenna %1 <strong>uusi</strong> %2 järjestelmä osio. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Määritä <strong>uusi</strong> %2 -osio liitepisteellä<strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Asenna %2 - %3 -järjestelmän osioon <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Määritä %3 osio <strong>%1</strong> jossa on liitäntäpiste <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Asenna käynnistyslatain <strong>%1</strong>. - + Setting up mount points. Liitosten määrittäminen. @@ -1273,32 +1278,32 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.&Käynnistä uudelleen - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Valmista.</h1><br/>%1 on määritetty tietokoneellesi.<br/>Voit nyt alkaa käyttää uutta järjestelmääsi. - + <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 setup program.</p></body></html> <html><head/><body><p>Kun tämä valintaruutu on valittu, järjestelmä käynnistyy heti, kun napsautat <span style="font-style:italic;">Valmis</span> -painiketta tai suljet asennusohjelman.</p></body></html> - + <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>Kaikki tehty.</h1><br/>%1 on asennettu tietokoneellesi.<br/>Voit joko uudelleenkäynnistää uuteen kokoonpanoosi, tai voit jatkaa %2 live-ympäristön käyttöä. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Kun tämä valintaruutu on valittuna, järjestelmä käynnistyy heti, kun napsautat <span style="font-style:italic;">Valmis</span> tai suljet asentimen.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Asennus epäonnistui</h1><br/>%1 ei ole määritetty tietokoneellesi.<br/> Virhesanoma oli: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Asennus epäonnistui </h1><br/>%1 ei ole asennettu tietokoneeseesi.<br/>Virhesanoma oli: %2. @@ -1306,27 +1311,27 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. FinishedViewStep - + Finish Valmis - + Setup Complete Asennus valmis - + Installation Complete Asennus valmis - + The setup of %1 is complete. Asennus %1 on valmis. - + The installation of %1 is complete. Asennus %1 on valmis. @@ -1357,72 +1362,72 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. GeneralRequirements - + has at least %1 GiB available drive space vähintään %1 GiB vapaata levytilaa - + There is not enough drive space. At least %1 GiB is required. Levytilaa ei ole riittävästi. Vähintään %1 GiB tarvitaan. - + has at least %1 GiB working memory vähintään %1 GiB työmuistia - + The system does not have enough working memory. At least %1 GiB is required. Järjestelmässä ei ole tarpeeksi työmuistia. Vähintään %1 GiB vaaditaan. - + is plugged in to a power source on yhdistetty virtalähteeseen - + The system is not plugged in to a power source. Järjestelmä ei ole kytketty virtalähteeseen. - + is connected to the Internet on yhdistetty internetiin - + The system is not connected to the Internet. Järjestelmä ei ole yhteydessä internetiin. - + is running the installer as an administrator (root) ajaa asennusohjelmaa järjestelmänvalvojana (root) - + The setup program is not running with administrator rights. Asennus -ohjelma ei ole käynnissä järjestelmänvalvojan oikeuksin. - + The installer is not running with administrator rights. Asennus -ohjelma ei ole käynnissä järjestelmänvalvojan oikeuksin. - + has a screen large enough to show the whole installer näytöllä on riittävän suuri tarkkuus asentajalle - + The screen is too small to display the setup program. Näyttö on liian pieni, jotta asennus -ohjelma voidaan näyttää. - + The screen is too small to display the installer. Näyttö on liian pieni asentajan näyttämiseksi. @@ -1770,6 +1775,16 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.Koneen tunnukselle ei ole asetettu root kiinnityskohtaa. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1908,6 +1923,19 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.Aseta OEM valmistajan erän tunnus <code>%1</code>. + + Offline + + + Timezone: %1 + Aikavyöhyke: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2495,107 +2523,107 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.Osiot - + Install %1 <strong>alongside</strong> another operating system. Asenna toisen käyttöjärjestelmän %1 <strong>rinnalle</strong>. - + <strong>Erase</strong> disk and install %1. <strong>Tyhjennä</strong> levy ja asenna %1. - + <strong>Replace</strong> a partition with %1. <strong>Vaihda</strong> osio jolla on %1. - + <strong>Manual</strong> partitioning. <strong>Manuaalinen</strong> osointi. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Asenna toisen käyttöjärjestelmän %1 <strong>rinnalle</strong> levylle <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Tyhjennä</strong> levy <strong>%2</strong> (%3) ja asenna %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Korvaa</strong> levyn osio <strong>%2</strong> (%3) jolla on %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuaalinen</strong> osiointi levyllä <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Levy <strong>%1</strong> (%2) - + Current: Nykyinen: - + After: Jälkeen: - + No EFI system partition configured EFI-järjestelmäosiota ei ole määritetty - + 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>%3</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-järjestelmän osio on välttämätön käynnistyksessä %1.<br/><br/>Jos haluat tehdä EFI-järjestelmän osion, mene takaisin ja luo FAT32-tiedostojärjestelmä, jossa<strong>%3</strong> lippu on käytössä ja liityntäkohta. <strong>%2</strong>.<br/><br/>Voit jatkaa ilman EFI-järjestelmäosiota, mutta järjestelmä ei ehkä käynnisty. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. EFI-järjestelmän osio on välttämätön käynnistyksessä %1.<br/><br/>Osio on määritetty liityntäkohdan kanssa, <strong>%2</strong> mutta sen <strong>%3</strong> lippua ei ole asetettu.<br/>Jos haluat asettaa lipun, palaa takaisin ja muokkaa osiota.<br/><br/>Voit jatkaa lippua asettamatta, mutta järjestelmä ei ehkä käynnisty. - + EFI system partition flag not set EFI-järjestelmäosion lippua ei ole asetettu - + Option to use GPT on BIOS BIOS:ssa mahdollisuus käyttää GPT:tä - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT-osiotaulukko on paras vaihtoehto kaikille järjestelmille. Tämä asennusohjelma tukee asennusta myös BIOS:n järjestelmään.<br/><br/>Jos haluat määrittää GPT-osiotaulukon BIOS:ssa (jos sitä ei ole jo tehty) palaa takaisin ja aseta osiotaulukkoksi GPT. Luo seuraavaksi 8 Mb alustamaton osio <strong>bios_grub</strong> lipulla käyttöön.<br/><br/>Alustamaton 8 Mb osio on tarpeen %1:n käynnistämiseksi BIOS-järjestelmässä GPT:llä. - + Boot partition not encrypted Käynnistysosiota ei ole salattu - + 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. Erillinen käynnistysosio perustettiin yhdessä salatun juuriosion kanssa, mutta käynnistysosio ei ole salattu.<br/><br/>Tällaisissa asetuksissa on tietoturvaongelmia, koska tärkeät järjestelmätiedostot pidetään salaamattomassa osiossa.<br/>Voit jatkaa, jos haluat, mutta tiedostojärjestelmän lukituksen avaaminen tapahtuu myöhemmin järjestelmän käynnistyksen aikana.<br/>Käynnistysosion salaamiseksi siirry takaisin ja luo se uudelleen valitsemalla <strong>Salaa</strong> osion luominen -ikkunassa. - + has at least one disk device available. on vähintään yksi levy käytettävissä. - + There are no partitions to install on. Asennettavia osioita ei ole. @@ -2661,14 +2689,14 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. ProcessResult - + There was no output from the command. Komentoa ei voitu ajaa. - + Output: @@ -2677,52 +2705,52 @@ Ulostulo: - + External command crashed. Ulkoinen komento kaatui. - + Command <i>%1</i> crashed. Komento <i>%1</i> kaatui. - + External command failed to start. Ulkoisen komennon käynnistäminen epäonnistui. - + Command <i>%1</i> failed to start. Komennon <i>%1</i> käynnistäminen epäonnistui. - + Internal error when starting command. Sisäinen virhe käynnistettäessä komentoa. - + Bad parameters for process job call. Huonot parametrit prosessin kutsuun. - + External command failed to finish. Ulkoinen komento ei onnistunut. - + Command <i>%1</i> failed to finish in %2 seconds. Komento <i>%1</i> epäonnistui %2 sekunnissa. - + External command finished with errors. Ulkoinen komento päättyi virheisiin. - + Command <i>%1</i> finished with exit code %2. Komento <i>%1</i> päättyi koodiin %2. @@ -2730,32 +2758,27 @@ Ulostulo: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Moduulin vaatimusten tarkistaminen <i>%1</i> on valmis. - - - + unknown tuntematon - + extended laajennettu - + unformatted formatoimaton - + swap swap @@ -2809,6 +2832,16 @@ Ulostulo: Osioimaton tila tai tuntematon osion taulu + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.<br/> +Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</p> + + RemoveUserJob @@ -2844,73 +2877,90 @@ Ulostulo: Lomake - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Valitse minne %1 asennetaan.<br/><font color="red">Varoitus: </font>tämä poistaa kaikki tiedostot valitulta osiolta. - + The selected item does not appear to be a valid partition. Valitsemaasi kohta ei näytä olevan kelvollinen osio. - + %1 cannot be installed on empty space. Please select an existing partition. %1 ei voi asentaa tyhjään tilaan. Valitse olemassa oleva osio. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 ei voida asentaa jatketun osion. Valitse olemassa oleva ensisijainen tai looginen osio. - + %1 cannot be installed on this partition. %1 ei voida asentaa tähän osioon. - + Data partition (%1) Data osio (%1) - + Unknown system partition (%1) Tuntematon järjestelmä osio (%1) - + %1 system partition (%2) %1 järjestelmäosio (%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>%4</strong><br/><br/>Osio %1 on liian pieni %2. Valitse osio, jonka kapasiteetti on vähintään %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>%2</strong><br/><br/>EFI-järjestelmäosiota ei löydy mistään tässä järjestelmässä. Palaa takaisin ja käytä manuaalista osiointia määrittämällä %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. <strong>%3</strong><br/><br/>%1 asennetaan %2.<br/><font color="red">Varoitus: </font>kaikki osion %2 tiedot katoavat. - + The EFI system partition at %1 will be used for starting %2. EFI-järjestelmän osiota %1 käytetään käynnistettäessä %2. - + EFI system partition: EFI järjestelmäosio + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Tämä tietokone ei täytä vähittäisvaatimuksia asennukseen %1.<br/> + Asennusta ei voida jatkaa.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.<br/> +Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</p> + + ResizeFSJob @@ -3033,12 +3083,12 @@ Ulostulo: ResultsListDialog - + For best results, please ensure that this computer: Saadaksesi parhaan lopputuloksen, tarkista että tämä tietokone: - + System requirements Järjestelmävaatimukset @@ -3046,28 +3096,28 @@ Ulostulo: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Tämä tietokone ei täytä vähimmäisvaatimuksia, %1.<br/>Asennusta ei voi jatkaa. <a href="#details">Yksityiskohdat...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Tämä tietokone ei täytä asennuksen vähimmäisvaatimuksia, %1.<br/>Asennus ei voi jatkua. <a href="#details">Yksityiskohdat...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.<br/>Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1. Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + This program will ask you some questions and set up %2 on your computer. Tämä ohjelma kysyy joitakin kysymyksiä %2 ja asentaa tietokoneeseen. @@ -3350,51 +3400,80 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. TrackingInstallJob - + Installation feedback Asennuksen palaute - + Sending installation feedback. Lähetetään asennuksen palautetta. - + Internal error in install-tracking. Sisäinen virhe asennuksen seurannassa. - + HTTP request timed out. HTTP -pyyntö aikakatkaistiin. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + KDE käyttäjän palaute + + + + Configuring KDE user feedback. + Määritä KDE käyttäjän palaute. + + + + + Error in KDE user feedback configuration. + Virhe KDE:n käyttäjän palautteen määrityksissä. + - + + Could not configure KDE user feedback correctly, script error %1. + KDE käyttäjän palautetta ei voitu määrittää oikein, komentosarjassa virhe %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + KDE käyttäjän palautetta ei voitu määrittää oikein, Calamares virhe %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Koneen palaute - + Configuring machine feedback. Konekohtaisen palautteen määrittäminen. - - + + Error in machine feedback configuration. Virhe koneen palautteen määrityksessä. - + Could not configure machine feedback correctly, script error %1. Konekohtaista palautetta ei voitu määrittää oikein, komentosarjan virhe %1. - + Could not configure machine feedback correctly, Calamares error %1. Koneen palautetta ei voitu määrittää oikein, Calamares-virhe %1. @@ -3413,8 +3492,8 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - <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>Valitsemalla tämän, <span style=" font-weight:600;">et lähetä mitään</span> tietoja asennuksesta.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3422,30 +3501,30 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.<html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klikkaa tästä saadaksesi lisätietoja käyttäjäpalautteesta</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. - Asentamalla seuranta autat %1 näkemään, kuinka monta käyttäjää heillä on, mitä laitteita he asentavat %1 ja (kahdella viimeisellä vaihtoehdolla), saat jatkuvaa tietoa suosituista sovelluksista. Jos haluat nähdä, mitä tietoa lähetetään, napsauta kunkin alueen vieressä olevaa ohjekuvaketta. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Kun valitset tämän, lähetät tietoja asennuksesta ja laitteistosta. <b>Nämä tiedot lähetetään vain kerran</b> asennuksen päättymisen jälkeen. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Kun valitset tämän, lähetät <b>määräajoin </b> tietoja asennuksesta, laitteistosta ja sovelluksista osoitteeseen %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Kun valitset tämän, lähetät <b>säännöllisesti </b> tietoja asennuksesta, laitteistosta, sovelluksista ja käyttötavoista osoitteeseen %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Palautetta @@ -3631,42 +3710,42 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.&Julkaisutiedot - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Tervetuloa Calamares -asennusohjelmaan %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Tervetuloa %1 asennukseen.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Tervetuloa Calamares -asennusohjelmaan %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Tervetuloa %1 -asennusohjelmaan.</h1> - + %1 support %1 tuki - + About %1 setup Tietoja %1 asetuksista - + About %1 installer Tietoa %1 asennusohjelmasta - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>- %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Kiitokset <a href="https://calamares.io/team/">Calamares-tiimille</a> ja <a href="https://www.transifex.com/calamares/calamares/">Calamares kääntäjille</a>.<br/><br/><a href="https://calamares.io/">Calamaresin</a> kehitystä sponsoroi <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3674,7 +3753,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. WelcomeQmlViewStep - + Welcome Tervetuloa @@ -3682,7 +3761,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. WelcomeViewStep - + Welcome Tervetuloa @@ -3722,6 +3801,26 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.Takaisin + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Takaisin + + keyboardq @@ -3767,6 +3866,24 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.Näppäimistön testaaminen + + localeq + + + System language set to %1 + Järjestelmän kieleksi asetettu %1 + + + + Numbers and dates locale set to %1 + Numerot ja päivämäärät asetettu arvoon %1 + + + + Change + Vaihda + + notesqml @@ -3840,27 +3957,27 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. - + About Tietoa - + Support Tuki - + Known issues Tunnetut ongelmat - + Release notes Julkaisutiedot - + Donate Lahjoita diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index a291e8fb1..076fe8a39 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Configurer - + Install Installer @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) La tâche a échoué (%1) - + Programmed job failure was explicitly requested. L'échec de la tâche programmée a été explicitement demandée. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Fait @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Tâche d'exemple (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Exécuter la commande '%1' dans le système cible. - + Run command '%1'. Exécuter la commande '%1'. - + Running command %1 %2 Exécution de la commande %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Exécution de l'opération %1. - + Bad working directory path Chemin du répertoire de travail invalide - + Working directory %1 for python job %2 is not readable. Le répertoire de travail %1 pour le job python %2 n'est pas accessible en lecture. - + Bad main script file Fichier de script principal invalide - + Main script file %1 for python job %2 is not readable. Le fichier de script principal %1 pour la tâche python %2 n'est pas accessible en lecture. - + Boost.Python error in job "%1". Erreur Boost.Python pour le job "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + La vérification des prérequis pour le module <i>%1</i> est terminée. + - + Waiting for %n module(s). En attente de %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n seconde(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. La vérification des prérequis système est terminée. @@ -273,13 +278,13 @@ - + &Yes &Oui - + &No &Non @@ -314,109 +319,109 @@ Les modules suivants n'ont pas pu être chargés : - + Continue with setup? Poursuivre la configuration ? - + Continue with installation? Continuer avec l'installation ? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Le programme de configuration de %1 est sur le point de procéder aux changements sur le disque afin de configurer %2.<br/> <strong>Vous ne pourrez pas annulez ces changements.</strong> - + 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> L'installateur %1 est sur le point de procéder aux changements sur le disque afin d'installer %2.<br/> <strong>Vous ne pourrez pas annulez ces changements.<strong> - + &Set up now &Configurer maintenant - + &Install now &Installer maintenant - + Go &back &Retour - + &Set up &Configurer - + &Install &Installer - + Setup is complete. Close the setup program. La configuration est terminée. Fermer le programme de configuration. - + The installation is complete. Close the installer. L'installation est terminée. Fermer l'installateur. - + Cancel setup without changing the system. Annuler la configuration sans toucher au système. - + Cancel installation without changing the system. Annuler l'installation sans modifier votre système. - + &Next &Suivant - + &Back &Précédent - + &Done &Terminé - + &Cancel &Annuler - + Cancel setup? Annuler la configuration ? - + Cancel installation? Abandonner l'installation ? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Voulez-vous vraiment abandonner le processus de configuration ? Le programme de configuration se fermera et les changements seront perdus. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Voulez-vous vraiment abandonner le processus d'installation ? @@ -426,22 +431,22 @@ L'installateur se fermera et les changements seront perdus. CalamaresPython::Helper - + Unknown exception type Type d'exception inconnue - + unparseable Python error Erreur Python non analysable - + unparseable Python traceback Traçage Python non exploitable - + Unfetchable Python error. Erreur Python non rapportable. @@ -459,32 +464,32 @@ L'installateur se fermera et les changements seront perdus. CalamaresWindow - + Show debug information Afficher les informations de dépannage - + &Back &Précédent - + &Next &Suivant - + &Cancel &Annuler - + %1 Setup Program Programme de configuration de %1 - + %1 Installer Installateur %1 @@ -681,18 +686,18 @@ L'installateur se fermera et les changements seront perdus. CommandList - - + + Could not run command. La commande n'a pas pu être exécutée. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. La commande est exécutée dans l'environnement hôte et a besoin de connaître le chemin racine, mais aucun point de montage racine n'est défini. - + The command needs to know the user's name, but no username is defined. La commande a besoin de connaître le nom de l'utilisateur, mais aucun nom d'utilisateur n'est défini. @@ -745,49 +750,49 @@ L'installateur se fermera et les changements seront perdus. Installation par le réseau (Désactivée : impossible de récupérer leslistes de paquets, vérifiez la connexion réseau) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Cet ordinateur ne satisfait pas les minimum prérequis pour configurer %1.<br/>La configuration ne peut pas continuer. <a href="#details">Détails...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Cet ordinateur ne satisfait pas les minimum prérequis pour installer %1.<br/>L'installation ne peut pas continuer. <a href="#details">Détails...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Cet ordinateur ne satisfait pas certains des prérequis recommandés pour configurer %1.<br/>La configuration peut continuer, mais certaines fonctionnalités pourraient être désactivées. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Cet ordinateur ne satisfait pas certains des prérequis recommandés pour installer %1.<br/>L'installation peut continuer, mais certaines fonctionnalités pourraient être désactivées. - + This program will ask you some questions and set up %2 on your computer. Ce programme va vous poser quelques questions et configurer %2 sur votre ordinateur. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Bienvenue dans le programme de configuration Calamares pour %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Bienvenue dans la configuration de %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - Bienvenue dans l'installateur Calamares pour %1. + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Bienvenue dans l'installateur de %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ L'installateur se fermera et les changements seront perdus. FillGlobalStorageJob - + Set partition information Configurer les informations de la partition - + Install %1 on <strong>new</strong> %2 system partition. Installer %1 sur le <strong>nouveau</strong> système de partition %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Configurer la <strong>nouvelle</strong> partition %2 avec le point de montage <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Installer %2 sur la partition système %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Configurer la partition %3 <strong>%1</strong> avec le point de montage <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Installer le chargeur de démarrage sur <strong>%1</strong>. - + Setting up mount points. Configuration des points de montage. @@ -1272,32 +1277,32 @@ L'installateur se fermera et les changements seront perdus. &Redémarrer maintenant - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Configuration terminée.</h1><br/>%1 a été configuré sur votre ordinateur.<br/>Vous pouvez maintenant utiliser votre nouveau système. - + <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 setup program.</p></body></html> <html><head/><body><p>En sélectionnant cette option, votre système redémarrera immédiatement quand vous cliquerez sur <span style=" font-style:italic;">Terminé</span> ou fermerez le programme de configuration.</p></body></html> - + <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 terminée.</h1><br/>%1 a été installé sur votre ordinateur.<br/>Vous pouvez redémarrer sur le nouveau système, ou continuer d'utiliser l'environnement actuel %2 . - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>En sélectionnant cette option, votre système redémarrera immédiatement quand vous cliquerez sur <span style=" font-style:italic;">Terminé</span> ou fermerez l'installateur.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Échec de la configuration</h1><br/>%1 n'a pas été configuré sur cet ordinateur.<br/>Le message d'erreur était : %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation échouée</h1><br/>%1 n'a pas été installée sur cet ordinateur.<br/>Le message d'erreur était : %2. @@ -1305,27 +1310,27 @@ L'installateur se fermera et les changements seront perdus. FinishedViewStep - + Finish Terminer - + Setup Complete Configuration terminée - + Installation Complete Installation terminée - + The setup of %1 is complete. La configuration de %1 est terminée. - + The installation of %1 is complete. L'installation de %1 est terminée. @@ -1356,72 +1361,72 @@ L'installateur se fermera et les changements seront perdus. GeneralRequirements - + has at least %1 GiB available drive space a au moins %1 Gio d'espace disque disponible - + There is not enough drive space. At least %1 GiB is required. Il n'y a pas assez d'espace disque. Au moins %1 Gio sont requis. - + has at least %1 GiB working memory a au moins %1 Gio de mémoire vive - + The system does not have enough working memory. At least %1 GiB is required. Le système n'a pas assez de mémoire vive. Au moins %1 Gio sont requis. - + is plugged in to a power source est relié à une source de courant - + The system is not plugged in to a power source. Le système n'est pas relié à une source de courant. - + is connected to the Internet est connecté à Internet - + The system is not connected to the Internet. Le système n'est pas connecté à Internet. - + is running the installer as an administrator (root) a démarré l'installateur en tant qu'administrateur (root) - + The setup program is not running with administrator rights. Le programme de configuration ne dispose pas des droits administrateur. - + The installer is not running with administrator rights. L'installateur ne dispose pas des droits administrateur. - + has a screen large enough to show the whole installer a un écran assez large pour afficher l'intégralité de l'installateur - + The screen is too small to display the setup program. L'écran est trop petit pour afficher le programme de configuration. - + The screen is too small to display the installer. L'écran est trop petit pour afficher l'installateur. @@ -1769,6 +1774,16 @@ L'installateur se fermera et les changements seront perdus. Aucun point de montage racine n'est défini pour MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ L'installateur se fermera et les changements seront perdus. Utiliser <code>%1</code> comme Identifiant de Lot OEM. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ L'installateur se fermera et les changements seront perdus. Partitions - + Install %1 <strong>alongside</strong> another operating system. Installer %1 <strong>à côté</strong>d'un autre système d'exploitation. - + <strong>Erase</strong> disk and install %1. <strong>Effacer</strong> le disque et installer %1. - + <strong>Replace</strong> a partition with %1. <strong>Remplacer</strong> une partition avec %1. - + <strong>Manual</strong> partitioning. Partitionnement <strong>manuel</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installer %1 <strong>à côté</strong> d'un autre système d'exploitation sur le disque <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Effacer</strong> le disque <strong>%2</strong> (%3) et installer %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Remplacer</strong> une partition sur le disque <strong>%2</strong> (%3) avec %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Partitionnement <strong>manuel</strong> sur le disque <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disque <strong>%1</strong> (%2) - + Current: Actuel : - + After: Après : - + No EFI system partition configured Aucune partition système EFI configurée - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Drapeau de partition système EFI non configuré - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Partition d'amorçage non chiffrée. - + 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. Une partition d'amorçage distincte a été configurée avec une partition racine chiffrée, mais la partition d'amorçage n'est pas chiffrée. <br/> <br/> Il y a des problèmes de sécurité avec ce type d'installation, car des fichiers système importants sont conservés sur une partition non chiffrée <br/> Vous pouvez continuer si vous le souhaitez, mais le déverrouillage du système de fichiers se produira plus tard au démarrage du système. <br/> Pour chiffrer la partition d'amorçage, revenez en arrière et recréez-la, en sélectionnant <strong> Chiffrer </ strong> dans la partition Fenêtre de création. - + has at least one disk device available. a au moins un disque disponible. - + There are no partitions to install on. Il n'y a pas de partition pour l'installation @@ -2661,14 +2689,14 @@ Vous pouvez obtenir un aperçu des différentes apparences en cliquant sur celle ProcessResult - + There was no output from the command. Il y a eu aucune sortie de la commande - + Output: @@ -2677,52 +2705,52 @@ Sortie - + External command crashed. La commande externe s'est mal terminée. - + Command <i>%1</i> crashed. La commande <i>%1</i> s'est arrêtée inopinément. - + External command failed to start. La commande externe n'a pas pu être lancée. - + Command <i>%1</i> failed to start. La commande <i>%1</i> n'a pas pu être lancée. - + Internal error when starting command. Erreur interne au lancement de la commande - + Bad parameters for process job call. Mauvais paramètres pour l'appel au processus de job. - + External command failed to finish. La commande externe ne s'est pas terminée. - + Command <i>%1</i> failed to finish in %2 seconds. La commande <i>%1</i> ne s'est pas terminée en %2 secondes. - + External command finished with errors. La commande externe s'est terminée avec des erreurs. - + Command <i>%1</i> finished with exit code %2. La commande <i>%1</i> s'est terminée avec le code de sortie %2. @@ -2730,32 +2758,27 @@ Sortie QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - La vérification des prérequis pour le module <i>%1</i> est terminée. - - - + unknown inconnu - + extended étendu - + unformatted non formaté - + swap swap @@ -2809,6 +2832,15 @@ Sortie Espace non partitionné ou table de partitions inconnue + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2844,73 +2876,88 @@ Sortie Formulaire - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Sélectionnez ou installer %1.<br><font color="red">Attention: </font>ceci va effacer tous les fichiers sur la partition sélectionnée. - + The selected item does not appear to be a valid partition. L'objet sélectionné ne semble pas être une partition valide. - + %1 cannot be installed on empty space. Please select an existing partition. %1 ne peut pas être installé sur un espace vide. Merci de sélectionner une partition existante. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 ne peut pas être installé sur une partition étendue. Merci de sélectionner une partition primaire ou logique existante. - + %1 cannot be installed on this partition. %1 ne peut pas être installé sur cette partition. - + Data partition (%1) Partition de données (%1) - + Unknown system partition (%1) Partition système inconnue (%1) - + %1 system partition (%2) Partition système %1 (%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>%4</strong><br/><br/>La partition %1 est trop petite pour %2. Merci de sélectionner une partition avec au moins %3 Gio de capacité. - + <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>%2</strong><br/><br/>Une partition système EFI n'a pas pu être localisée sur ce système. Veuillez revenir en arrière et utiliser le partitionnement manuel pour configurer %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. <strong>%3</strong><br/><br/>%1 va être installé sur %2.<br/><font color="red">Attention:</font> toutes les données sur la partition %2 seront perdues. - + The EFI system partition at %1 will be used for starting %2. La partition système EFI sur %1 sera utilisée pour démarrer %2. - + EFI system partition: Partition système EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3033,12 +3080,12 @@ Sortie ResultsListDialog - + For best results, please ensure that this computer: Pour de meilleur résultats, merci de s'assurer que cet ordinateur : - + System requirements Prérequis système @@ -3046,27 +3093,27 @@ Sortie ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Cet ordinateur ne satisfait pas les minimum prérequis pour configurer %1.<br/>La configuration ne peut pas continuer. <a href="#details">Détails...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Cet ordinateur ne satisfait pas les minimum prérequis pour installer %1.<br/>L'installation ne peut pas continuer. <a href="#details">Détails...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Cet ordinateur ne satisfait pas certains des prérequis recommandés pour configurer %1.<br/>La configuration peut continuer, mais certaines fonctionnalités pourraient être désactivées. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Cet ordinateur ne satisfait pas certains des prérequis recommandés pour installer %1.<br/>L'installation peut continuer, mais certaines fonctionnalités pourraient être désactivées. - + This program will ask you some questions and set up %2 on your computer. Ce programme va vous poser quelques questions et configurer %2 sur votre ordinateur. @@ -3349,51 +3396,80 @@ Sortie TrackingInstallJob - + Installation feedback Rapport d'installation - + Sending installation feedback. Envoi en cours du rapport d'installation. - + Internal error in install-tracking. Erreur interne dans le suivi d'installation. - + HTTP request timed out. La requête HTTP a échoué. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Rapport de la machine - + Configuring machine feedback. Configuration en cours du rapport de la machine. - - + + Error in machine feedback configuration. Erreur dans la configuration du rapport de la machine. - + Could not configure machine feedback correctly, script error %1. Echec pendant la configuration du rapport de machine, erreur de script %1. - + Could not configure machine feedback correctly, Calamares error %1. Impossible de mettre en place le rapport d'utilisateurs, erreur %1. @@ -3412,8 +3488,8 @@ Sortie - <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>En sélectionnant cette option, vous n'enverrez <span style=" font-weight:600;">aucune information</span> sur votre installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3421,30 +3497,30 @@ Sortie <html><head/><body><span style=" text-decoration: underline; color:#2980b9;">Cliquez ici pour plus d'informations sur les rapports d'utilisateurs</span><a href="placeholder"><p></p></body> - - 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. - L'installation de la surveillance permet à %1 de voir combien d'utilisateurs l'utilise, quelle configuration matérielle %1 utilise, et (avec les 2 dernières options ci-dessous), recevoir une information continue concernant les applications préférées. Pour connaître les informations qui seront envoyées, veuillez cliquer sur l'icône d'aide à côté de chaque zone. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - En sélectionnant cette option, vous enverrez des informations sur votre installation et votre matériel. Cette information ne sera <b>seulement envoyée qu'une fois</b> après la finalisation de l'installation. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - En sélectionnant cette option vous enverrez <b>périodiquement</b> des informations sur votre installation, matériel, et applications, à %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - En sélectionnant cette option vous enverrez <b>régulièrement</b> des informations sur votre installation, matériel, applications, et habitudes d'utilisation, à %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Rapport @@ -3630,42 +3706,42 @@ Sortie &Notes de publication - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Bienvenue dans le programme de configuration Calamares pour %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Bienvenue dans la configuration de %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> Bien dans l'installateur Calamares pour %1. - + <h1>Welcome to the %1 installer.</h1> <h1>Bienvenue dans l'installateur de %1.</h1> - + %1 support Support de %1 - + About %1 setup À propos de la configuration de %1 - + About %1 installer À propos de l'installateur %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3673,7 +3749,7 @@ Sortie WelcomeQmlViewStep - + Welcome Bienvenue @@ -3681,7 +3757,7 @@ Sortie WelcomeViewStep - + Welcome Bienvenue @@ -3710,6 +3786,26 @@ Sortie + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3755,6 +3851,24 @@ Sortie + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3806,27 +3920,27 @@ Sortie - + About À propos - + Support - + Known issues Problèmes connus - + Release notes - + Donate Faites un don diff --git a/lang/calamares_fr_CH.ts b/lang/calamares_fr_CH.ts index 1c2100f40..17390b5e3 100644 --- a/lang/calamares_fr_CH.ts +++ b/lang/calamares_fr_CH.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_gl.ts b/lang/calamares_gl.ts index 865a53a91..b45067b13 100644 --- a/lang/calamares_gl.ts +++ b/lang/calamares_gl.ts @@ -118,12 +118,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Instalar @@ -131,12 +131,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -144,7 +144,7 @@ Calamares::JobThread - + Done Feito @@ -152,7 +152,7 @@ Calamares::NamedJob - + Example job (%1) @@ -160,17 +160,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Executando a orde %1 %2 @@ -178,32 +178,32 @@ Calamares::PythonJob - + Running %1 operation. Excutando a operación %1. - + Bad working directory path A ruta ó directorio de traballo é errónea - + Working directory %1 for python job %2 is not readable. O directorio de traballo %1 para o traballo de python %2 non é lexible - + Bad main script file Ficheiro de script principal erróneo - + Main script file %1 for python job %2 is not readable. O ficheiro principal de script %1 para a execución de python %2 non é lexible. - + Boost.Python error in job "%1". Boost.Python tivo un erro na tarefa "%1". @@ -228,8 +228,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -237,7 +242,7 @@ - + (%n second(s)) @@ -245,7 +250,7 @@ - + System-requirements checking is complete. @@ -274,13 +279,13 @@ - + &Yes &Si - + &No &Non @@ -315,108 +320,108 @@ <br/> Non foi posíbel cargar os módulos seguintes: - + Continue with setup? Continuar coa posta en marcha? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> O %1 instalador está a piques de realizar cambios no seu disco para instalar %2.<br/><strong>Estes cambios non poderán desfacerse.</strong> - + &Set up now - + &Install now &Instalar agora - + Go &back Ir &atrás - + &Set up - + &Install &Instalar - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Completouse a instalacion. Peche o instalador - + Cancel setup without changing the system. - + Cancel installation without changing the system. Cancelar a instalación sen cambiar o sistema - + &Next &Seguinte - + &Back &Atrás - + &Done &Feito - + &Cancel &Cancelar - + Cancel setup? - + Cancel installation? Cancelar a instalación? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Desexa realmente cancelar o proceso actual de instalación? @@ -426,22 +431,22 @@ O instalador pecharase e perderanse todos os cambios. CalamaresPython::Helper - + Unknown exception type Excepción descoñecida - + unparseable Python error Erro de Python descoñecido - + unparseable Python traceback O rastreo de Python non é analizable. - + Unfetchable Python error. Erro de Python non recuperable @@ -458,32 +463,32 @@ O instalador pecharase e perderanse todos os cambios. CalamaresWindow - + Show debug information Mostrar informes de depuración - + &Back &Atrás - + &Next &Seguinte - + &Cancel &Cancelar - + %1 Setup Program - + %1 Installer Instalador de %1 @@ -680,18 +685,18 @@ O instalador pecharase e perderanse todos os cambios. CommandList - - + + Could not run command. Non foi posíbel executar a orde. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. A orde execútase no ambiente hóspede e precisa coñecer a ruta a root, mais non se indicou ningún rootMountPoint. - + The command needs to know the user's name, but no username is defined. A orde precisa coñecer o nome do usuario, mais non se indicou ningún nome de usuario. @@ -744,49 +749,49 @@ O instalador pecharase e perderanse todos os cambios. Installación por rede. (Desactivadas. Non se pudo recupera-la lista de pacotes, comprobe a sua conexión a rede) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este ordenador non satisfai os requerimentos mínimos ara a instalación de %1.<br/>A instalación non pode continuar. <a href="#details">Máis información...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este ordenador non satisfai algúns dos requisitos recomendados para instalar %1.<br/> A instalación pode continuar, pero pode que algunhas características sexan desactivadas. - + This program will ask you some questions and set up %2 on your computer. Este programa faralle algunhas preguntas mentres prepara %2 no seu ordenador. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Reciba a benvida ao instalador Calamares para %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Benvido o instalador %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1223,37 +1228,37 @@ O instalador pecharase e perderanse todos os cambios. FillGlobalStorageJob - + Set partition information Poñela información da partición - + Install %1 on <strong>new</strong> %2 system partition. Instalar %1 nunha <strong>nova</strong> partición do sistema %2 - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Configure unha <strong>nova</strong> partición %2 con punto de montaxe <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instalar %2 na partición do sistema %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Configurala partición %3 <strong>%1</strong> con punto de montaxe <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalar o cargador de arranque en <strong>%1</strong>. - + Setting up mount points. Configuralos puntos de montaxe. @@ -1271,32 +1276,32 @@ O instalador pecharase e perderanse todos os cambios. &Reiniciar agora. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Todo feito.</h1><br/>%1 foi instalado na súa computadora.<br/>Agora pode reiniciar no seu novo sistema ou continuar a usalo entorno Live %2. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Fallou a instalación</h1><br/>%1 non se pudo instalar na sua computadora. <br/>A mensaxe de erro foi: %2. @@ -1304,27 +1309,27 @@ O instalador pecharase e perderanse todos os cambios. FinishedViewStep - + Finish Fin - + Setup Complete - + Installation Complete Instalacion completa - + The setup of %1 is complete. - + The installation of %1 is complete. Completouse a instalación de %1 @@ -1355,72 +1360,72 @@ O instalador pecharase e perderanse todos os cambios. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source está conectado a unha fonte de enerxía - + The system is not plugged in to a power source. O sistema non está conectado a unha fonte de enerxía. - + is connected to the Internet está conectado á Internet - + The system is not connected to the Internet. O sistema non está conectado á Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. O instalador non se está a executar con dereitos de administrador. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. A pantalla é demasiado pequena para mostrar o instalador. @@ -1768,6 +1773,16 @@ O instalador pecharase e perderanse todos os cambios. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ O instalador pecharase e perderanse todos os cambios. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ O instalador pecharase e perderanse todos os cambios. Particións - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>a carón</strong> doutro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Limpar</strong> o disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Substituír</strong> unha partición por %1. - + <strong>Manual</strong> partitioning. Particionamento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>a carón</strong> doutro sistema operativo no disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Limpar</strong> o disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Substituír</strong> unha partición do disco <strong>%2</strong> (%3) por %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamento <strong>manual</strong> do disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Actual: - + After: Despois: - + No EFI system partition configured Non hai ningunha partición de sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set A bandeira da partición de sistema EFI non está configurada - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted A partición de arranque non está cifrada - + 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. Configurouse unha partición de arranque separada xunto cunha partición raíz cifrada, mais a partición raíz non está cifrada.<br/><br/>Con este tipo de configuración preocupa a seguranza porque nunha partición sen cifrar grávanse ficheiros de sistema importantes.<br/>Pode continuar, se así o desexa, mais o desbloqueo do sistema de ficheiros producirase máis tarde durante o arranque do sistema.<br/>Para cifrar unha partición raíz volva atrás e créea de novo, seleccionando <strong>Cifrar</strong> na xanela de creación de particións. - + has at least one disk device available. - + There are no partitions to install on. @@ -2659,14 +2687,14 @@ O instalador pecharase e perderanse todos os cambios. ProcessResult - + There was no output from the command. A saída non produciu ningunha saída. - + Output: @@ -2675,52 +2703,52 @@ Saída: - + External command crashed. A orde externa fallou - + Command <i>%1</i> crashed. A orde <i>%1</i> fallou. - + External command failed to start. Non foi posíbel iniciar a orde externa. - + Command <i>%1</i> failed to start. Non foi posíbel iniciar a orde <i>%1</i>. - + Internal error when starting command. Produciuse un erro interno ao iniciar a orde. - + Bad parameters for process job call. Erro nos parámetros ao chamar o traballo - + External command failed to finish. A orde externa non se puido rematar. - + Command <i>%1</i> failed to finish in %2 seconds. A orde <i>%1</i> non se puido rematar en %2s segundos. - + External command finished with errors. A orde externa rematou con erros. - + Command <i>%1</i> finished with exit code %2. A orde <i>%1</i> rematou co código de erro %2. @@ -2728,32 +2756,27 @@ Saída: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown descoñecido - + extended estendido - + unformatted sen formatar - + swap intercambio @@ -2807,6 +2830,15 @@ Saída: Espazo sen particionar ou táboa de particións descoñecida + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2842,73 +2874,88 @@ Saída: Formulario - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Seleccione onde instalar %1.<br/><font color="red">Advertencia: </font>isto elimina todos os ficheiros da partición seleccionada. - + The selected item does not appear to be a valid partition. O elemento seleccionado non parece ser unha partición válida. - + %1 cannot be installed on empty space. Please select an existing partition. Non é posíbel instalar %1 nun espazo baleiro. Seleccione unha partición existente. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. Non é posíbel instalar %1 nunha partición estendida. Seleccione unha partición primaria ou lóxica existente. - + %1 cannot be installed on this partition. Non é posíbel instalar %1 nesta partición - + Data partition (%1) Partición de datos (%1) - + Unknown system partition (%1) Partición de sistema descoñecida (%1) - + %1 system partition (%2) %1 partición do sistema (%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>%4</strong><br/><br/>A partición %1 é demasiado pequena para %2. Seleccione unha partición cunha capacidade mínima de %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>%2</strong><br/><br/>Non foi posíbel atopar ningunha partición de sistema EFI neste sistema. Recúe e empregue o particionamento manual para configurar %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. <strong>%3</strong><br/><br/>%1 vai ser instalado en %2. <br/><font color="red">Advertencia: </font>vanse perder todos os datos da partición %2. - + The EFI system partition at %1 will be used for starting %2. A partición EFI do sistema en %1 será usada para iniciar %2. - + EFI system partition: Partición EFI do sistema: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3031,12 +3078,12 @@ Saída: ResultsListDialog - + For best results, please ensure that this computer: Para os mellores resultados, por favor, asegúrese que este ordenador: - + System requirements Requisitos do sistema @@ -3044,27 +3091,27 @@ Saída: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este ordenador non satisfai os requerimentos mínimos ara a instalación de %1.<br/>A instalación non pode continuar. <a href="#details">Máis información...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este ordenador non satisfai algúns dos requisitos recomendados para instalar %1.<br/> A instalación pode continuar, pero pode que algunhas características sexan desactivadas. - + This program will ask you some questions and set up %2 on your computer. Este programa faralle algunhas preguntas mentres prepara %2 no seu ordenador. @@ -3347,51 +3394,80 @@ Saída: TrackingInstallJob - + Installation feedback Opinións sobre a instalació - + Sending installation feedback. Enviar opinións sobre a instalación. - + Internal error in install-tracking. Produciuse un erro interno en install-tracking. - + HTTP request timed out. Esgotouse o tempo de espera de HTTP. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Información fornecida pola máquina - + Configuring machine feedback. Configuración das informacións fornecidas pola máquina. - - + + Error in machine feedback configuration. Produciuse un erro na configuración das información fornecidas pola máquina. - + Could not configure machine feedback correctly, script error %1. Non foi posíbel configurar correctamente as informacións fornecidas pola máquina; erro de script %1. - + Could not configure machine feedback correctly, Calamares error %1. Non foi posíbel configurar correctamente as informacións fornecidas pola máquin; erro de Calamares %1. @@ -3410,8 +3486,8 @@ Saída: - <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>Ao seleccionar isto vostede <span style=" font-weight:600;">non envía ningunha información</span> sobre esta instalación.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3419,30 +3495,30 @@ Saída: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Prema aquí para máis información sobre as opinións do usuario</span></a></p></body></html> - - Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - O seguimento da instalación axuda a %1 a ver cantos usuarios ten, en que hardware instalan %1 (coas dúas últimas opcións de embaixo) e obter información continua sobre os aplicativos preferidos. Para ver o que se envía, prema na icona de axuda que hai a carón de cada zona. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Ao seleccionar isto vostede envía información sobre a súa instalación e hardware. Esta información <b>só se envía unha vez</b>, logo de rematar a instalación. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Ao seleccionar isto vostede envía información <b>periodicamente</b> sobre a súa instalación, hardware e aplicativos a %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Ao seleccionar isto vostede envía información <b>regularmente</b> sobre a súa instalación, hardware, aplicativos e patrón de uso a %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Opinións @@ -3628,42 +3704,42 @@ Saída: &Notas de publicación - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Reciba a benvida ao instalador Calamares para %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Benvido o instalador %1.</h1> - + %1 support %1 axuda - + About %1 setup - + About %1 installer Acerca do instalador %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3671,7 +3747,7 @@ Saída: WelcomeQmlViewStep - + Welcome Benvido @@ -3679,7 +3755,7 @@ Saída: WelcomeViewStep - + Welcome Benvido @@ -3708,6 +3784,26 @@ Saída: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3753,6 +3849,24 @@ Saída: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3804,27 +3918,27 @@ Saída: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_gu.ts b/lang/calamares_gu.ts index fea1a0b4e..765cd21d3 100644 --- a/lang/calamares_gu.ts +++ b/lang/calamares_gu.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts index f07972940..ee4e36915 100644 --- a/lang/calamares_he.ts +++ b/lang/calamares_he.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up הקמה - + Install התקנה @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) משימה נכשלה (%1) - + Programmed job failure was explicitly requested. הכשל במשימה המוגדרת התבקש במפורש. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done הסתיים @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) משימה לדוגמה (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. להפעיל את הפקודה ‚%1’ במערכת היעד. - + Run command '%1'. להפעיל את הפקודה ‚%1’. - + Running command %1 %2 הפקודה %1 %2 רצה @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. הפעולה %1 רצה. - + Bad working directory path נתיב תיקיית עבודה שגוי - + Working directory %1 for python job %2 is not readable. תיקיית העבודה %1 עבור משימת python‏ %2 אינה קריאה. - + Bad main script file קובץ תסריט הרצה ראשי לא תקין - + Main script file %1 for python job %2 is not readable. קובץ תסריט הרצה ראשי %1 עבור משימת python %2 לא קריא. - + Boost.Python error in job "%1". שגיאת Boost.Python במשימה „%1”. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + בדיקת הדרישות למודול <i>%1</i> הושלמה. + - + Waiting for %n module(s). בהמתנה למודול אחד. @@ -238,7 +243,7 @@ - + (%n second(s)) ((שנייה אחת) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. בדיקת דרישות המערכת הושלמה. @@ -277,13 +282,13 @@ - + &Yes &כן - + &No &לא @@ -318,109 +323,109 @@ <br/>לא ניתן לטעון את המודולים הבאים: - + Continue with setup? להמשיך בהתקנה? - + Continue with installation? להמשיך בהתקנה? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> תכנית ההתקנה של %1 עומדת לבצע שינויים בכונן הקשיח שלך לטובת התקנת %2.<br/><strong>לא תהיה לך אפשרות לבטל את השינויים האלה.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> אשף ההתקנה של %1 הולך לבצע שינויים בכונן שלך לטובת התקנת %2.<br/><strong>לא תוכל לבטל את השינויים הללו.</strong> - + &Set up now להת&קין כעת - + &Install now להת&קין כעת - + Go &back ח&זרה - + &Set up להת&קין - + &Install הת&קנה - + Setup is complete. Close the setup program. ההתקנה הושלמה. נא לסגור את תכנית ההתקנה. - + The installation is complete. Close the installer. תהליך ההתקנה הושלם. נא לסגור את אשף ההתקנה. - + Cancel setup without changing the system. ביטול ההתקנה ללא שינוי המערכת. - + Cancel installation without changing the system. ביטול התקנה ללא ביצוע שינוי במערכת. - + &Next הב&א - + &Back ה&קודם - + &Done &סיום - + &Cancel &ביטול - + Cancel setup? לבטל את ההתקנה? - + Cancel installation? לבטל את ההתקנה? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. לבטל את תהליך ההתקנה הנוכחי? תכנית ההתקנה תצא וכל השינויים יאבדו. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. לבטל את תהליך ההתקנה? @@ -430,22 +435,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type טיפוס חריגה אינו מוכר - + unparseable Python error שגיאת Python לא ניתנת לניתוח - + unparseable Python traceback עקבה לאחור של Python לא ניתנת לניתוח - + Unfetchable Python error. שגיאת Python לא ניתנת לאחזור. @@ -463,32 +468,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information הצגת מידע ניפוי שגיאות - + &Back ה&קודם - + &Next הב&א - + &Cancel &ביטול - + %1 Setup Program תכנית התקנת %1 - + %1 Installer אשף התקנה של %1 @@ -685,18 +690,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. לא ניתן להריץ את הפקודה. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. הפקודה פועלת בסביבת המארח ועליה לדעת מה נתיב השורש, אך לא צוין rootMountPoint. - + The command needs to know the user's name, but no username is defined. הפקודה צריכה לדעת מה שם המשתמש, אך לא הוגדר שם משתמש. @@ -749,49 +754,49 @@ The installer will quit and all changes will be lost. התקנה מהרשת. (מושבתת: לא ניתן לקבל רשימות של חבילות תכנה, נא לבדוק את החיבור לרשת) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> המחשב לא עומד ברף הדרישות המזערי להתקנת %1. <br/>להתקנה אין אפשרות להמשיך. <a href="#details">פרטים…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> המחשב לא עומד ברף דרישות המינימום להתקנת %1. <br/>ההתקנה לא יכולה להמשיך. <a href="#details"> פרטים...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. המחשב לא עומד בחלק מרף דרישות המזערי להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. המחשב לא עומד בחלק מרף דרישות המינימום להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. - + This program will ask you some questions and set up %2 on your computer. תכנית זו תשאל אותך מספר שאלות ותתקין את %2 על המחשב שלך. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>ברוך בואך לתכנית ההתקנה Calamares עבור %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>ברוך בואך לתכנית ההתקנה Calamares עבור %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>ברוך בואך להתקנת %1.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>ברוך בואך להתקנת %1</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>ברוך בואך להתקנת %1 עם Calamares.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>ברוך בואך להתקנת %1 עם Calamares</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>ברוך בואך להתקנת %1.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>ברוך בואך לתכנית התקנת %1</h1> @@ -1228,37 +1233,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information הגדרת מידע עבור המחיצה - + Install %1 on <strong>new</strong> %2 system partition. התקנת %1 על מחיצת מערכת <strong>חדשה</strong> מסוג %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. הגדרת מחיצת מערכת <strong>חדשה</strong> מסוג %2 עם נקודת העיגון <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. התקנת %2 על מחיצת מערכת <strong>%1</strong> מסוג %3. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. התקן מחיצה מסוג %3 <strong>%1</strong> עם נקודת העיגון <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. התקנת מנהל אתחול מערכת על <strong>%1</strong>. - + Setting up mount points. נקודות עיגון מוגדרות. @@ -1276,32 +1281,32 @@ The installer will quit and all changes will be lost. ה&פעלה מחדש כעת - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>הכול הושלם.</h1><br/>ההתקנה של %1 למחשב שלך הושלמה.<br/>מעתה יתאפשר לך להשתמש במערכת החדשה שלך. - + <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 setup program.</p></body></html> <html><head/><body><p>אם תיבה זו מסומנת, המערכת שלך תופעל מחדש מיידית עם הלחיצה על <span style="font-style:italic;">סיום</span> או עם סגירת תכנית ההתקנה.</p></body></html> - + <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>תהליך ההתקנה הסתיים.</h1><br/>%1 הותקן על המחשב שלך.<br/> כעת ניתן לאתחל את המחשב אל תוך המערכת החדשה שהותקנה, או להמשיך להשתמש בסביבה הנוכחית של %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>אם תיבה זו מסומנת, המערכת שלך תופעל מחדש מיידית עם הלחיצה על <span style="font-style:italic;">סיום</span> או עם סגירת תכנית ההתקנה.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>ההתקנה נכשלה</h1><br/>ההתקנה של %1 במחשבך לא הושלמה.<br/>הודעת השגיאה הייתה: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>ההתקנה נכשלה</h1><br/>%1 לא הותקן על מחשבך.<br/> הודעת השגיאה: %2. @@ -1309,27 +1314,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish סיום - + Setup Complete ההתקנה הושלמה - + Installation Complete ההתקנה הושלמה - + The setup of %1 is complete. התקנת %1 הושלמה. - + The installation of %1 is complete. ההתקנה של %1 הושלמה. @@ -1360,72 +1365,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space יש לפחות %1 GiB פנויים בכונן - + There is not enough drive space. At least %1 GiB is required. נפח האחסון לא מספיק. נדרשים %1 GiB לפחות. - + has at least %1 GiB working memory יש לפחות %1 GiB זיכרון לעבודה - + The system does not have enough working memory. At least %1 GiB is required. כמות הזיכרון הנדרשת לפעולה אינה מספיקה. נדרשים %1 GiB לפחות. - + 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. המערכת לא מחוברת לאינטרנט. - + is running the installer as an administrator (root) ההתקנה מופעלת תחת חשבון מורשה ניהול (root) - + The setup program is not running with administrator rights. תכנית ההתקנה אינה פועלת עם הרשאות ניהול. - + The installer is not running with administrator rights. אשף ההתקנה לא רץ עם הרשאות מנהל. - + has a screen large enough to show the whole installer יש מסך מספיק גדול כדי להציג את כל תכנית ההתקנה - + The screen is too small to display the setup program. המסך קטן מכדי להציג את תכנית ההתקנה. - + The screen is too small to display the installer. גודל המסך קטן מכדי להציג את תכנית ההתקנה. @@ -1773,6 +1778,18 @@ The installer will quit and all changes will be lost. לא הוגדרה נקודת עגינת שורש עבור מזהה מכונה (MachineId). + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + נא לבחור את המיקום המועדף עליך על המפה כדי שתכנית ההתקנה תוכל להציע הגדרות מקומיות + ואזור זמן עבורך. ניתן לכוונן את ההגדרות המוצעות להלן. לחפש במפה על ידי משיכה להזזתה ובכפתורים +/- כדי להתקרב/להתרחק + או להשתמש בגלילת העכבר לטובת שליטה בתקריב. + + NetInstallViewStep @@ -1911,6 +1928,19 @@ The installer will quit and all changes will be lost. הגדרת מזהה מחזור למשווק לערך <code>%1</code>. + + Offline + + + Timezone: %1 + אזור זמן: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + כדי לבחור באזור זמן, נא לוודא שהתחברת לאינטרנט. להפעיל את תכנית ההתקנה מחדש לאחר ההתחברות. ניתן לכוונן את הגדרות השפה וההגדרות המקומיות להלן. + + PWQ @@ -2498,107 +2528,107 @@ The installer will quit and all changes will be lost. מחיצות - + Install %1 <strong>alongside</strong> another operating system. להתקין את %1 <strong>לצד</strong> מערכת הפעלה אחרת. - + <strong>Erase</strong> disk and install %1. <strong>למחוק</strong> את הכונן ולהתקין את %1. - + <strong>Replace</strong> a partition with %1. <strong>החלפת</strong> מחיצה עם %1. - + <strong>Manual</strong> partitioning. להגדיר מחיצות באופן <strong>ידני</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). להתקין את %1 <strong>לצד</strong> מערכת הפעלה אחרת על כונן <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>למחוק</strong> את הכונן <strong>%2</strong> (%3) ולהתקין את %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>החלפת</strong> מחיצה על כונן <strong>%2</strong> (%3) ב־%1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). חלוקה למחיצות באופן <strong>ידני</strong> על כונן <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) כונן <strong>%1</strong> (%2) - + Current: נוכחי: - + After: לאחר: - + No EFI system partition configured לא הוגדרה מחיצת מערכת EFI - + 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>%3</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 נדרשת כדי להפעיל את %1.<br/><br/> כדי להגדיר מחיצת מערכת EFI, עליך לחזור ולבחור או ליצור מערכת קבצים מסוג FAT32 עם סימון <strong>%3</strong> פעיל ועם נקודת עיגון <strong>%2</strong>.<br/><br/> ניתן להמשיך ללא הגדרת מחיצת מערכת EFI אך טעינת המערכת עשויה להיכשל. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. לצורך הפעלת %1 נדרשת מחיצת מערכת EFI.<br/><br/> הוגדרה מחיצה עם נקודת עיגון <strong>%2</strong> אך לא הוגדר סימון <strong>%3</strong>.<br/> כדי לסמן את המחיצה, עליך לחזור ולערוך את המחיצה.<br/><br/> ניתן להמשיך ללא הוספת הסימון אך טעינת המערכת עשויה להיכשל. - + EFI system partition flag not set לא מוגדר סימון מחיצת מערכת EFI - + Option to use GPT on BIOS אפשרות להשתמש ב־GPT או ב־BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. טבלת מחיצות מסוג GPT היא האפשרות הטובה ביותר בכל המערכות. תכנית התקנה זו תומכת גם במערכות מסוג BIOS.<br/><br/>כדי להגדיר טבלת מחיצות מסוג GPT על גבי BIOS, (אם זה טרם בוצע) יש לחזור ולהגדיר את טבלת המחיצות ל־GPT, לאחר מכן יש ליצור מחיצה של 8 מ״ב ללא פירמוט עם הדגלון <strong>bios_grub</strong> פעיל.<br/><br/>מחיצה בלתי מפורמטת בגודל 8 מ״ב נחוצה לטובת הפעלת %1 על מערכת מסוג BIOS עם GPT. - + Boot partition not encrypted מחיצת טעינת המערכת (Boot) אינה מוצפנת. - + 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. מחיצת טעינה, boot, נפרדת הוגדרה יחד עם מחיצת מערכת ההפעלה, root, מוצפנת, אך מחיצת הטעינה לא הוצפנה.<br/><br/> ישנן השלכות בטיחותיות עם התצורה שהוגדרה, מכיוון שקבצי מערכת חשובים נשמרים על מחיצה לא מוצפנת.<br/>תוכל להמשיך אם תרצה, אך שחרור מערכת הקבצים יתרחש מאוחר יותר כחלק מטעינת המערכת.<br/>בכדי להצפין את מחיצת הטעינה, חזור וצור אותה מחדש, על ידי בחירה ב <strong>הצפן</strong> בחלונית יצירת המחיצה. - + has at least one disk device available. יש לפחות התקן כונן אחד זמין. - + There are no partitions to install on. אין מחיצות להתקין עליהן. @@ -2664,14 +2694,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. לא היה פלט מהפקודה. - + Output: @@ -2680,52 +2710,52 @@ Output: - + External command crashed. הפקודה החיצונית נכשלה. - + Command <i>%1</i> crashed. הפקודה <i>%1</i> קרסה. - + External command failed to start. הפעלת הפעולה החיצונית נכשלה. - + Command <i>%1</i> failed to start. הפעלת הפקודה <i>%1</i> נכשלה. - + 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. הפקודה <i>%1</i> לא הסתיימה תוך %2 שניות. - + External command finished with errors. הפקודה החיצונית הסתיימה עם שגיאות. - + Command <i>%1</i> finished with exit code %2. הפקודה <i>%1</i> הסתיימה עם קוד היציאה %2. @@ -2733,32 +2763,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - בדיקת הדרישות למודול <i>%1</i> הושלמה. - - - + unknown לא ידוע - + extended מורחבת - + unformatted לא מאותחלת - + swap דפדוף, swap @@ -2812,6 +2837,16 @@ Output: הזכרון לא מחולק למחיצות או שטבלת המחיצות אינה מוכרת + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>המחשב לא עומד בחלק מרף דרישות המזערי להתקנת %1.<br/> + ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו.</p> + + RemoveUserJob @@ -2847,73 +2882,90 @@ Output: Form - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. בחר מיקום התקנת %1.<br/><font color="red">אזהרה: </font> הפעולה תמחק את כל הקבצים במחיצה שנבחרה. - + The selected item does not appear to be a valid partition. הפריט הנבחר איננו מחיצה תקינה. - + %1 cannot be installed on empty space. Please select an existing partition. לא ניתן להתקין את %1 על זכרון ריק. אנא בחר מחיצה קיימת. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. לא ניתן להתקין את %1 על מחיצה מורחבת. אנא בחר מחיצה ראשית או לוגית קיימת. - + %1 cannot be installed on this partition. לא ניתן להתקין את %1 על מחיצה זו. - + Data partition (%1) מחיצת מידע (%1) - + Unknown system partition (%1) מחיצת מערכת (%1) לא מוכרת - + %1 system partition (%2) %1 מחיצת מערכת (%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>%4</strong><br/><br/> גודל המחיצה %1 קטן מדי עבור %2. אנא בחר מחיצה עם קיבולת בנפח %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>%2</strong><br/><br/> מחיצת מערכת EFI לא נמצאה באף מקום על המערכת. חזור בבקשה והשתמש ביצירת מחיצות באופן ידני בכדי להגדיר את %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. <strong>%3</strong><br/><br/>%1 יותקן על %2. <br/><font color="red">אזהרה: </font>כל המידע אשר קיים במחיצה %2 יאבד. - + The EFI system partition at %1 will be used for starting %2. מחיצת מערכת EFI ב %1 תשמש עבור טעינת %2. - + EFI system partition: מחיצת מערכת EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>המחשב הזה לא עונה על רף הדרישות המזערי להתקנת %1.<br/> + ההתקנה לא יכולה להמשיך.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>המחשב לא עומד בחלק מרף דרישות המזערי להתקנת %1.<br/> + ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו.</p> + + ResizeFSJob @@ -3036,12 +3088,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: לקבלת התוצאות הטובות ביותר, נא לוודא כי מחשב זה: - + System requirements דרישות מערכת @@ -3049,27 +3101,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> המחשב לא עומד ברף הדרישות המזערי להתקנת %1. <br/>להתקנה אין אפשרות להמשיך. <a href="#details">פרטים…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> המחשב לא עומד ברף דרישות המינימום להתקנת %1. <br/>ההתקנה לא יכולה להמשיך. <a href="#details"> פרטים...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. המחשב לא עומד בחלק מרף דרישות המזערי להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. המחשב לא עומד בחלק מרף דרישות המינימום להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. - + This program will ask you some questions and set up %2 on your computer. תכנית זו תשאל אותך מספר שאלות ותתקין את %2 על המחשב שלך. @@ -3352,51 +3404,80 @@ Output: TrackingInstallJob - + Installation feedback משוב בנושא ההתקנה - + Sending installation feedback. שולח משוב בנושא ההתקנה. - + Internal error in install-tracking. שגיאה פנימית בעת התקנת תכונת המעקב. - + HTTP request timed out. בקשת HTTP חרגה מזמן ההמתנה המקסימאלי. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + משוב משתמש KDE + + + + Configuring KDE user feedback. + משוב המשתמש ב־KDE מוגדר. + + + + + Error in KDE user feedback configuration. + שגיאה בהגדרות משוב המשתמש ב־KDE. + - + + Could not configure KDE user feedback correctly, script error %1. + לא ניתן להגדיר את משוב המשתמש ב־KDE כראוי, שגיאת סקריפט %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + לא ניתן להגדיר את משוב המשתמש ב־KDE כראוי, שגיאת Calamares‏ %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback משוב בנושא עמדת המחשב - + Configuring machine feedback. מגדיר משוב בנושא עמדת המחשב. - - + + Error in machine feedback configuration. שגיאה בעת הגדרת המשוב בנושא עמדת המחשב. - + Could not configure machine feedback correctly, script error %1. לא ניתן להגדיר את המשוב בנושא עמדת המחשב באופן תקין. שגיאת הרצה %1. - + Could not configure machine feedback correctly, Calamares error %1. לא ניתן להגדיר את המשוב בנושא עמדת המחשב באופן תקין. שגיאת Calamares %1. @@ -3415,8 +3496,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>בחירה באפשרות זו, תוביל לכך <span style=" font-weight:600;">שלא יישלח מידע כלל</span> בנוגע ההתקנה שלך.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>ניתן ללחוץ כאן כדי <span style=" font-weight:600;">לא למסור כלל מידע</span> על ההתקנה שלך.</p></body></html> @@ -3424,30 +3505,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">לחץ כאן למידע נוסף אודות משוב מצד המשתמש</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. - מעקב אחר ההתקנה מסייע ל־%1 לראות כמה משתמשים במוצר שלהם, על איזו חומרה מתבצעת ההתקנה של %1, בנוסף (לשתי האפשרויות הקודמות), קבלת מידע מתחדש על יישומים מועדפים. כדי לצפות בנתונים שיישלחו, נא לשלוח על סמל העזרה שליד כל אחד מהסעיפים. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + מעקב מסייע ל־%1 לראות מה תדירות ההתקנות, על איזו חומרה המערכת מותקנת ואילו יישומים בשימוש. כדי לצפות במה שיישלח, נא ללחוץ על סמל העזרה שליד כל אזור. - - 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. - בחירה באפשרות זו תוביל לשליחת מידע על ההתקנה והחומרה שלך. מידע זה <b>יישלח פעם אחת בלבד</b> לאחר סיום ההתקנה. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + בחירה באפשרות זו תוביל לשליחת מידע על ההתקנה והחומרה שלך. מידע זה יישלח <b>פעם אחת</b> בלבד לאחר סיום ההתקנה. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - בחירה באפשרות הזאת תוביל לשליחת מידע <b>מדי פעם בפעם</b> על ההתקנה, החומרה והיישומים שלך אל %1. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + בחירה באפשרות הזאת תוביל לשליחת מידע מדי פעם בפעם על ההתקנה ב<b>מערכת</b>, החומרה והיישומים שלך אל %1. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - בחירה באפשרות זו תוביל לשליחת מידע <b>באופן קבוע</b> על ההתקנה, החומרה, היישומים ודפוסי שימוש אל %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + בחירה באפשרות זו תוביל לשליחת מידע באופן קבוע על התקנת ה<b>משתמש</b>, החומרה, היישומים ודפוסי שימוש אל %1. TrackingViewStep - + Feedback משוב @@ -3633,42 +3714,42 @@ Output: ה&ערות מהדורה - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>ברוך בואך לתכנית ההתקנה Calamares עבור %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>ברוך בואך להתקנת %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>ברוך בואך להתקנת %1 עם Calamares.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>ברוך בואך להתקנת %1.</h1> - + %1 support תמיכה ב־%1 - + About %1 setup על אודות התקנת %1 - + About %1 installer על אודות התקנת %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>עבור %3</strong><br/><br/>כל הזכויות שמורות 2014‏-2017 ל־Teo Mrnjavac‏ &lt;teo@kde.org&gt;<br/>כל הזכויות שמורות 2017‏-2020 ל־Adriaan de Groot‏ &lt;groot@kde.org&gt;<br/>תודה גדולה נתונה <a href="https://calamares.io/team/">לצוות Calamares</a> ול<a href="https://www.transifex.com/calamares/calamares/">צווות המתרגמים של Calamares</a>.<br/><br/><a href="https://calamares.io/">הפיתוח של Calamares</a> ממומן על ידי <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - דואגים לחירות התכנה. @@ -3676,7 +3757,7 @@ Output: WelcomeQmlViewStep - + Welcome ברוך בואך @@ -3684,7 +3765,7 @@ Output: WelcomeViewStep - + Welcome ברוך בואך @@ -3724,6 +3805,28 @@ Output: חזרה + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>שפות</h1> </br> + תבנית המערכת המקומית משפיעה על השפה ועל ערכת התווים של מגוון רכיבים במנשק המשתמש. ההגדרה הנוכחית היא <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>תבניות מקומיות</h1> </br> + תבנית המערכת המקומית משפיעה על השפה ועל ערכת התווים של מגוון רכיבים במנשק המשתמש. ההגדרה הנוכחית היא <strong>%1</strong>. + + + + Back + חזרה + + keyboardq @@ -3769,6 +3872,24 @@ Output: בדיקת המקלדת שלך + + localeq + + + System language set to %1 + שפת המערכת הוגדרה ל%1. + + + + Numbers and dates locale set to %1 + התבנית המקומית של המספרים והתאריכים הוגדרה לכדי %1 + + + + Change + החלפה + + notesqml @@ -3842,27 +3963,27 @@ Output: <p>תכנית זו תשאל אותך מספר שאלות ותתקין את %1 על המחשב שלך.</p> - + About על אודות - + Support תמיכה - + Known issues בעיות נפוצות - + Release notes הערות מהדורה - + Donate תרומה diff --git a/lang/calamares_hi.ts b/lang/calamares_hi.ts index 2d47397e6..780717647 100644 --- a/lang/calamares_hi.ts +++ b/lang/calamares_hi.ts @@ -65,7 +65,7 @@ GlobalStorage - GlobalStorage + ग्लोबल स्टोरेज @@ -91,7 +91,7 @@ Interface: - इंटरफ़ेस : + अंतरफलक : @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up सेटअप - + Install इंस्टॉल करें @@ -130,20 +130,20 @@ Calamares::FailJob - + Job failed (%1) कार्य विफल रहा (%1) - + Programmed job failure was explicitly requested. - प्रोग्राम किए गए कार्य की विफलता स्पष्ट रूप से अनुरोध की गई थी। + प्रोग्राम किए गए कार्य की विफलता स्पष्ट रूप से अनुरोधित थी। Calamares::JobThread - + Done पूर्ण @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) उदाहरण कार्य (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. लक्षित सिस्टम पर कमांड '%1' चलाएँ। - + Run command '%1'. कमांड '%1' चलाएँ। - + Running command %1 %2 कमांड %1%2 चल रही हैं @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 चल रहा है। - + Bad working directory path कार्यरत फोल्डर का पथ गलत है - + Working directory %1 for python job %2 is not readable. पाइथन कार्य %2 हेतु कार्यरत डायरेक्टरी %1 रीड योग्य नहीं है। - + Bad main script file गलत मुख्य स्क्रिप्ट फ़ाइल - + Main script file %1 for python job %2 is not readable. पाइथन कार्य %2 हेतु मुख्य स्क्रिप्ट फ़ाइल %1 रीड योग्य नहीं है। - + Boost.Python error in job "%1". कार्य "%1" में Boost.Python त्रुटि। @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + मॉड्यूल <i>%1</i> हेतु आवश्यकताओं की जाँच पूर्ण हुई। + - + Waiting for %n module(s). %n मॉड्यूल की प्रतीक्षा में। @@ -236,7 +241,7 @@ - + (%n second(s)) (%n सेकंड) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. सिस्टम हेतु आवश्यकताओं की जाँच पूर्ण हुई। @@ -273,13 +278,13 @@ - + &Yes हाँ (&Y) - + &No नहीं (&N) @@ -306,117 +311,117 @@ %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 को इनस्टॉल नहीं किया जा सका। Calamares सभी विन्यस्त मापांकों को लोड करने में विफल रहा। यह आपके लिनक्स वितरण द्वारा Calamares के उपयोग से संबंधित एक समस्या है। + %1 इंस्टॉल नहीं किया जा सका। Calamares सभी विन्यस्त मॉड्यूल लोड करने में विफल रहा। यह आपके लिनक्स वितरण द्वारा Calamares के उपयोग से संबंधित एक समस्या है। <br/>The following modules could not be loaded: - <br/>निम्नलिखित मापांक लोड नहीं हो सकें : + <br/>निम्नलिखित मॉड्यूल लोड नहीं हो सकें : - + Continue with setup? सेटअप करना जारी रखें? - + Continue with installation? इंस्टॉल प्रक्रिया जारी रखें? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %2 सेटअप करने हेतु %1 सेटअप प्रोग्राम आपकी डिस्क में बदलाव करने वाला है।<br/><strong>आप इन बदलावों को पूर्ववत नहीं कर पाएंगे।</strong> - + 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> %2 इंस्टॉल करने के लिए %1 इंस्टॉलर आपकी डिस्क में बदलाव करने वाला है।<br/><strong>आप इन बदलावों को पूर्ववत नहीं कर पाएंगे।</strong> - + &Set up now अभी सेटअप करें (&S) - + &Install now अभी इंस्टॉल करें (&I) - + Go &back वापस जाएँ (&b) - + &Set up सेटअप करें (&S) - + &Install इंस्टॉल करें (&I) - + Setup is complete. Close the setup program. सेटअप पूर्ण हुआ। सेटअप प्रोग्राम बंद कर दें। - + The installation is complete. Close the installer. इंस्टॉल पूर्ण हुआ।अब इंस्टॉलर को बंद करें। - + Cancel setup without changing the system. सिस्टम में बदलाव किये बिना सेटअप रद्द करें। - + Cancel installation without changing the system. सिस्टम में बदलाव किये बिना इंस्टॉल रद्द करें। - + &Next आगे (&N) - + &Back वापस (&B) - + &Done हो गया (&D) - + &Cancel रद्द करें (&C) - + Cancel setup? सेटअप रद्द करें? - + Cancel installation? इंस्टॉल रद्द करें? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. क्या आप वाकई वर्तमान सेटअप प्रक्रिया रद्द करना चाहते हैं? सेटअप प्रोग्राम बंद हो जाएगा व सभी बदलाव नष्ट। - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. क्या आप वाकई वर्तमान इंस्टॉल प्रक्रिया रद्द करना चाहते हैं? @@ -426,22 +431,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type अपवाद का प्रकार अज्ञात है - + unparseable Python error अप्राप्य पाइथन त्रुटि - + unparseable Python traceback अप्राप्य पाइथन ट्रेसबैक - + Unfetchable Python error. अप्राप्य पाइथन त्रुटि। @@ -459,32 +464,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information डीबग संबंधी जानकारी दिखाएँ - + &Back वापस (&B) - + &Next आगे (&N) - + &Cancel रद्द करें (&C) - + %1 Setup Program %1 सेटअप प्रोग्राम - + %1 Installer %1 इंस्टॉलर @@ -681,18 +686,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. कमांड चलाई नहीं जा सकी। - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. होस्ट वातावरण में कमांड हेतु रुट पथ जानना आवश्यक है परन्तु कोई रूट माउंट पॉइंट परिभाषित नहीं किया गया है। - + The command needs to know the user's name, but no username is defined. कमांड हेतु उपयोक्ता का नाम आवश्यक है परन्तु कोई नाम परिभाषित नहीं है। @@ -745,49 +750,49 @@ The installer will quit and all changes will be lost. नेटवर्क इंस्टॉल। (निष्क्रिय है : पैकेज सूची प्राप्त करने में असमर्थ, अपना नेटवर्क कनेक्शन जाँचें) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> यह कंप्यूटर %1 सेटअप करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> यह कंप्यूटर %1 इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. यह कंप्यूटर %1 सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ निष्क्रिय कर दी जाएँगी। - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. यह कंप्यूटर %1 इंस्टॉल करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ निष्क्रिय कर दी जाएँगी। - + This program will ask you some questions and set up %2 on your computer. यह प्रोग्राम प्रश्नावली के माध्यम से आपके कंप्यूटर पर %2 को सेट करेगा। - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1 हेतु Calamares सेटअप में आपका स्वागत है।</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>%1 हेतु Calamares सेटअप में आपका स्वागत है</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>%1 सेटअप में आपका स्वागत है।</h1> + + <h1>Welcome to %1 setup</h1> + <h1>%1 सेटअप में आपका स्वागत है</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1 हेतु Calamares इंस्टॉलर में आपका स्वागत है।</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>%1 हेतु Calamares इंस्टॉलर में आपका स्वागत है</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>%1 इंस्टॉलर में आपका स्वागत है।</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>%1 इंस्टॉलर में आपका स्वागत है</h1> @@ -1224,37 +1229,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information विभाजन संबंधी जानकारी सेट करें - + Install %1 on <strong>new</strong> %2 system partition. <strong>नए</strong> %2 सिस्टम विभाजन पर %1 इंस्टॉल करें। - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. <strong>नया</strong> %2 विभाजन माउंट पॉइंट <strong>%1</strong> के साथ सेट करें। - + Install %2 on %3 system partition <strong>%1</strong>. %3 सिस्टम विभाजन <strong>%1</strong> पर %2 इंस्टॉल करें। - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. %3 विभाजन <strong>%1</strong> माउंट पॉइंट <strong>%2</strong> के साथ सेट करें। - + Install boot loader on <strong>%1</strong>. बूट लोडर <strong>%1</strong> पर इंस्टॉल करें। - + Setting up mount points. माउंट पॉइंट सेट किए जा रहे हैं। @@ -1272,32 +1277,32 @@ The installer will quit and all changes will be lost. अभी पुनः आरंभ करें (&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>सब हो गया।</h1><br/>आपके कंप्यूटर पर %1 को सेटअप कर दिया गया है।<br/>अब आप अपने नए सिस्टम का उपयोग कर सकते है। - + <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 setup program.</p></body></html> <html><head/><body><p>यह विकल्प चयनित होने पर आपका सिस्टम तुरंत पुनः आरंभ हो जाएगा जब आप <span style="font-style:italic;">हो गया</span>पर क्लिक करेंगे या सेटअप प्रोग्राम को बंद करेंगे।</p></body></html> - + <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>सब हो गया।</h1><br/>आपके कंप्यूटर पर %1 इंस्टॉल हो चुका है।<br/>अब आप आपने नए सिस्टम को पुनः आरंभ कर सकते है, या फिर %2 लाइव वातावरण उपयोग करना जारी रखें। - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>यह विकल्प चयनित होने पर आपका सिस्टम तुरंत पुनः आरंभ हो जाएगा जब आप <span style="font-style:italic;">हो गया</span>पर क्लिक करेंगे या इंस्टॉलर बंद करेंगे।</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>सेटअप विफल रहा</h1><br/>%1 आपके कंप्यूटर पर सेटअप नहीं हुआ।<br/>त्रुटि संदेश : %2। - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>इंस्टॉल विफल रहा</h1><br/>%1 आपके कंप्यूटर पर इंस्टॉल नहीं हुआ।<br/>त्रुटि संदेश : %2। @@ -1305,27 +1310,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish समाप्त करें - + Setup Complete सेटअप पूर्ण हुआ - + Installation Complete इंस्टॉल पूर्ण हुआ - + The setup of %1 is complete. %1 का सेटअप पूर्ण हुआ। - + The installation of %1 is complete. %1 का इंस्टॉल पूर्ण हुआ। @@ -1356,72 +1361,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space कम-से-कम %1 GiB स्पेस ड्राइव पर उपलब्ध हो - + There is not enough drive space. At least %1 GiB is required. ड्राइव में पर्याप्त स्पेस नहीं है। कम-से-कम %1 GiB होना आवश्यक है। - + has at least %1 GiB working memory कम-से-कम %1 GiB मेमोरी उपलब्ध हो - + The system does not have enough working memory. At least %1 GiB is required. सिस्टम में पर्याप्त मेमोरी नहीं है। कम-से-कम %1 GiB होनी आवश्यक है। - + 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. सिस्टम इंटरनेट से कनेक्ट नहीं है। - + is running the installer as an administrator (root) इंस्टॉलर को प्रबंधक(रुट) के अंतर्गत चला रहा है - + The setup program is not running with administrator rights. सेटअप प्रोग्राम के पास प्रबंधक अधिकार नहीं है। - + The installer is not running with administrator rights. इंस्टॉलर के पास प्रबंधक अधिकार नहीं है। - + has a screen large enough to show the whole installer स्क्रीन का माप इंस्टॉलर को पूर्णतया प्रदर्शित करने में सक्षम हो - + The screen is too small to display the setup program. सेटअप प्रोग्राम प्रदर्शित करने हेतु स्क्रीन काफ़ी छोटी है। - + The screen is too small to display the installer. इंस्टॉलर प्रदर्शित करने हेतु स्क्रीन काफ़ी छोटी है। @@ -1769,6 +1774,18 @@ The installer will quit and all changes will be lost. मशीन-आईडी हेतु कोई रुट माउंट पॉइंट सेट नहीं है। + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + कृपया मानचित्र पर अपना भौगोलिक स्थान चुनें ताकि इंस्टॉलर स्थानिकी + व समयक्षेत्र सेटिंग्स संबंधी सुझाव दे सके। माउस क्लिक द्वारा ड्रैग कर मानचित्र में खोजें + व नक़्शे का आकार परिवर्तन +/- बटन या माउस स्क्रॉल द्वारा करें। + + NetInstallViewStep @@ -1907,6 +1924,19 @@ The installer will quit and all changes will be lost. OEM (मूल उपकरण निर्माता) बैच पहचानकर्ता को <code>%1</code>पर सेट करें। + + Offline + + + Timezone: %1 + समय क्षेत्र : %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + समयक्षेत्र चयन करने हेतु सुनिश्चित करें कि आप इंटरनेट से कनेक्ट हैं। कनेक्ट होने के बाद इंस्टॉलर को पुनः आरंभ करें। फिर आप नीचे दी गयी भाषा व स्थानिकी सेटिंग्स कर सकते हैं। + + PWQ @@ -2494,107 +2524,107 @@ The installer will quit and all changes will be lost. विभाजन - + Install %1 <strong>alongside</strong> another operating system. %1 को दूसरे ऑपरेटिंग सिस्टम <strong>के साथ</strong> इंस्टॉल करें। - + <strong>Erase</strong> disk and install %1. डिस्क का सारा डाटा<strong>हटाकर</strong> कर %1 इंस्टॉल करें। - + <strong>Replace</strong> a partition with %1. विभाजन को %1 से <strong>बदलें</strong>। - + <strong>Manual</strong> partitioning. <strong>मैनुअल</strong> विभाजन। - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). डिस्क <strong>%2</strong> (%3) पर %1 को दूसरे ऑपरेटिंग सिस्टम <strong>के साथ</strong> इंस्टॉल करें। - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. डिस्क <strong>%2</strong> (%3) <strong>erase</strong> कर %1 इंस्टॉल करें। - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. डिस्क <strong>%2</strong> (%3) के विभाजन को %1 से <strong>बदलें</strong>। - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). डिस्क <strong>%1</strong> (%2) पर <strong>मैनुअल</strong> विभाजन। - + Disk <strong>%1</strong> (%2) डिस्क <strong>%1</strong> (%2) - + Current: मौजूदा : - + After: बाद में: - + No EFI system partition configured कोई EFI सिस्टम विभाजन विन्यस्त नहीं है - + 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>%3</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. %1 आरंभ करने हेतु EFI सिस्टम विभाजन ज़रूरी है।<br/><br/>EFI सिस्टम विभाजन को विन्यस्त करने के लिए, वापस जाएँ और चुनें या बनाएँ एक FAT32 फ़ाइल सिस्टम जिस पर <strong>%3</strong> flag चालू हो व माउंट पॉइंट <strong>%2</strong>हो।<br/><br/>आप बिना सेट करें भी आगे बढ़ सकते है पर सिस्टम चालू नहीं होगा। - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. %1 को शुरू करने हेतु EFI सिस्टम विभाजन ज़रूरी है।<br/><br/>विभाजन को माउंट पॉइंट <strong>%2</strong> के साथ विन्यस्त किया गया परंतु उसका <strong>%3</strong> फ्लैग सेट नहीं था।<br/> फ्लैग सेट करने के लिए, वापस जाएँ और विभाजन को edit करें।<br/><br/>आप बिना सेट करें भी आगे बढ़ सकते है पर सिस्टम चालू नहीं होगा। - + EFI system partition flag not set EFI सिस्टम विभाजन फ्लैग सेट नहीं है - + Option to use GPT on BIOS BIOS पर GPT उपयोग करने के लिए विकल्प - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT विभाजन तालिका सभी सिस्टम हेतु सबसे उत्तम विकल्प है। यह इंस्टॉलर BIOS सिस्टम के सेटअप को भी समर्थन करता है। <br/><br/>BIOS पर GPT विभाजन तालिका को विन्यस्त करने हेतु, (अगर अब तक नहीं करा है तो) वापस जाकर विभाजन तालिका GPT पर सेट करें, फिर एक 8 MB का बिना फॉर्मेट हुआ विभाजन बनाए जिस पर <strong>bios_grub</strong> का flag हो।<br/><br/>यह बिना फॉर्मेट हुआ 8 MB का विभाजन %1 को BIOS सिस्टम पर GPT के साथ शुरू करने के लिए आवश्यक है। - + 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. एन्क्रिप्टेड रुट विभाजन के साथ एक अलग बूट विभाजन भी सेट किया गया था, पर बूट विभाजन एन्क्रिप्टेड नहीं था।<br/><br/> इस तरह का सेटअप सुरक्षित नहीं होता क्योंकि सिस्टम फ़ाइल एन्क्रिप्टेड विभाजन पर होती हैं।<br/>आप चाहे तो जारी रख सकते है, पर फिर फ़ाइल सिस्टम बाद में सिस्टम स्टार्टअप के दौरान अनलॉक होगा।<br/> विभाजन को एन्क्रिप्ट करने के लिए वापस जाकर उसे दोबारा बनाएँ व विभाजन निर्माण विंडो में<strong>एन्क्रिप्ट</strong> चुनें। - + has at least one disk device available. कम-से-कम एक डिस्क डिवाइस उपलब्ध हो। - + There are no partitions to install on. इंस्टॉल हेतु कोई विभाजन नहीं हैं। @@ -2660,14 +2690,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. कमांड से कोई आउटपुट नहीं मिला। - + Output: @@ -2676,52 +2706,52 @@ Output: - + External command crashed. बाह्य कमांड क्रैश हो गई। - + Command <i>%1</i> crashed. कमांड <i>%1</i> क्रैश हो गई। - + External command failed to start. बाह्य​ कमांड शुरू होने में विफल। - + Command <i>%1</i> failed to start. कमांड <i>%1</i> शुरू होने में विफल। - + 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. कमांड <i>%1</i> %2 सेकंड में समाप्त होने में विफल। - + External command finished with errors. बाहरी कमांड त्रुटि के साथ समाप्त। - + Command <i>%1</i> finished with exit code %2. कमांड <i>%1</i> exit कोड %2 के साथ समाप्त। @@ -2729,32 +2759,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - मापांक <i>%1</i> हेतु आवश्यकताओं की जाँच पूर्ण हुई। - - - + unknown अज्ञात - + extended विस्तृत - + unformatted फॉर्मेट नहीं हो रखा है - + swap स्वैप @@ -2808,6 +2833,16 @@ Output: अविभाजित स्पेस या अज्ञात विभाजन तालिका + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>यह कंप्यूटर %1 सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/> + सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ निष्क्रिय कर दी जाएँगी।</p> + + RemoveUserJob @@ -2843,73 +2878,90 @@ Output: रूप - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. चुनें कि %1 को कहाँ इंस्टॉल करना है।<br/><font color="red">चेतावनी: </font> यह चयनित विभाजन पर मौजूद सभी फ़ाइलों को हटा देगा। - + The selected item does not appear to be a valid partition. चयनित आइटम एक मान्य विभाजन नहीं है। - + %1 cannot be installed on empty space. Please select an existing partition. %1 को खाली स्पेस पर इंस्टॉल नहीं किया जा सकता।कृपया कोई मौजूदा विभाजन चुनें। - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 को विस्तृत विभाजन पर इंस्टॉल नहीं किया जा सकता। कृपया कोई मौजूदा मुख्य या तार्किक विभाजन चुनें। - + %1 cannot be installed on this partition. इस विभाजन पर %1 इंस्टॉल नहीं किया जा सकता। - + Data partition (%1) डाटा विभाजन (%1) - + Unknown system partition (%1) अज्ञात सिस्टम विभाजन (%1) - + %1 system partition (%2) %1 सिस्टम विभाजन (%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>%4</strong><br/><br/>%2 के लिए विभाजन %1 बहुत छोटा है।कृपया कम-से-कम %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>%2</strong><br/><br/>इस सिस्टम पर कहीं भी कोई EFI सिस्टम विभाजन नहीं मिला। कृपया वापस जाएँ व %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. <strong>%3</strong><br/><br/>%2 पर %1 इंस्टॉल किया जाएगा।<br/><font color="red">चेतावनी : </font>विभाजन %2 पर मौजूद सारा डाटा हटा दिया जाएगा। - + The EFI system partition at %1 will be used for starting %2. %1 वाले EFI सिस्टम विभाजन का उपयोग %2 को शुरू करने के लिए किया जाएगा। - + EFI system partition: EFI सिस्टम विभाजन: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>यह कंप्यूटर %1 को इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/> + इंस्टॉल जारी नहीं रखा जा सकता।</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>यह कंप्यूटर %1 सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/> + सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ निष्क्रिय कर दी जाएँगी।</p> + + ResizeFSJob @@ -3032,12 +3084,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: उत्तम परिणाम हेतु, कृपया सुनिश्चित करें कि यह कंप्यूटर : - + System requirements सिस्टम इंस्टॉल हेतु आवश्यकताएँ @@ -3045,27 +3097,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> यह कंप्यूटर %1 को सेटअप करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> यह कंप्यूटर %1 को इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. यह कंप्यूटर %1 को सेटअप करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>सेटअप जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ को निष्क्रिय किया जा सकता हैं। - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. यह कंप्यूटर %1 को इंस्टॉल करने हेतु सुझाई गई आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी रखा जा सकता है, लेकिन कुछ विशेषताएँ को निष्क्रिय किया जा सकता हैं। - + This program will ask you some questions and set up %2 on your computer. यह प्रोग्राम एक प्रश्नावली के आधार पर आपके कंप्यूटर पर %2 को सेट करेगा। @@ -3348,53 +3400,82 @@ Output: TrackingInstallJob - + Installation feedback इंस्टॉल संबंधी प्रतिक्रिया - + Sending installation feedback. इंस्टॉल संबंधी प्रतिक्रिया भेजना। - + Internal error in install-tracking. इंस्टॉल-ट्रैकिंग में आंतरिक त्रुटि। - + HTTP request timed out. एचटीटीपी अनुरोध हेतु समय समाप्त। - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + केडीई उपयोक्ता प्रतिक्रिया + + + + Configuring KDE user feedback. + केडीई उपयोक्ता प्रतिक्रिया विन्यस्त करना। + - + + + Error in KDE user feedback configuration. + केडीई उपयोक्ता प्रतिक्रिया विन्यास में त्रुटि। + + + + Could not configure KDE user feedback correctly, script error %1. + केडीई उपयोक्ता प्रतिक्रिया सही रूप से विन्यस्त नहीं की जा सकी, स्क्रिप्ट त्रुटि %1। + + + + Could not configure KDE user feedback correctly, Calamares error %1. + केडीई उपयोक्ता प्रतिक्रिया विन्यस्त सही रूप से विन्यस्त नहीं की जा सकी, Calamares त्रुटि %1। + + + + TrackingMachineUpdateManagerJob + + Machine feedback मशीन संबंधी प्रतिक्रिया - + Configuring machine feedback. मशीन संबंधी प्रतिक्रिया विन्यस्त करना। - - + + Error in machine feedback configuration. मशीन संबंधी प्रतिक्रिया विन्यास में त्रुटि। - + Could not configure machine feedback correctly, script error %1. - मशीन प्रतिक्रिया को सही रूप से विन्यस्त नहीं किया जा सका, स्क्रिप्ट त्रुटि %1। + मशीन प्रतिक्रिया सही रूप से विन्यस्त नहीं की जा सकी, स्क्रिप्ट त्रुटि %1। - + Could not configure machine feedback correctly, Calamares error %1. - मशीन प्रतिक्रिया को सही रूप से विन्यस्त नहीं किया जा सका, Calamares त्रुटि %1। + मशीन प्रतिक्रिया को सही रूप से विन्यस्त नहीं की जा सकी, Calamares त्रुटि %1। @@ -3411,8 +3492,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>इसे चयनित करने पर, आपके इंस्टॉल संबंधी <span style=" font-weight:600;">किसी प्रकार की कोई जानकारी नहीं </span>भेजी जाएँगी।</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>यहाँ क्लिक करने के उपरांत, आपके इंस्टॉल संबंधी <span style=" font-weight:600;">किसी प्रकार की कोई जानकारी नहीं </span>भेजी जाएँगी।</p></body></html> @@ -3420,30 +3501,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">उपयोक्ता प्रतिक्रिया के बारे में अधिक जानकारी हेतु यहाँ क्लिक करें</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. - इंस्टॉल की ट्रैकिंग करने से %1 को यह जानने में सहायता मिलती है कि उनके कितने उपयोक्ता हैं, वे किस हार्डवेयर पर %1 को इंस्टॉल करते हैं एवं (नीचे दिए अंतिम दो विकल्पों सहित), पसंदीदा अनुप्रयोगों के बारे में निरंतर जानकारी प्राप्त करते हैं। यह जानने हेतु कि क्या भेजा जाएगा, कृपया प्रत्येक क्षेत्र के साथ में दिए सहायता आइकन पर क्लिक करें। + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + ट्रैकिंग द्वारा %1 को यह जानने में सहायता मिलती है कि कितनी बार व किस हार्डवेयर पर इंस्टॉल किया गया एवं कौन से अनुप्रयोग उपयोग किए गए। यह जानने हेतु कि क्या भेजा जाएगा, कृपया प्रत्येक के साथ दिए गए सहायता आइकन पर क्लिक करें। - - 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. - इसे चयनित करने पर आपके इंस्टॉल व हार्डवेयर संबंधी जानकारी भेजी जाएँगी। यह जानकारी इंस्टॉल समाप्त हो जाने के उपरांत <b>केवल एक बार ही</b> भेजी जाएगी। + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + इसे चयनित करने पर आपके इंस्टॉल व हार्डवेयर संबंधी जानकारी भेजी जाएँगी। यह जानकारी इंस्टॉल समाप्त हो जाने के उपरांत केवल <b>एक बार</b> ही भेजी जाएगी। - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - इसे चयनित करने पर आपके इंस्टॉल, हार्डवेयर व अनुप्रयोगों संबंधी जानकारी <b>समय-समय पर</b>, %1 को भेजी जाएँगी। + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + इसे चयनित करने पर आपके <b>मशीन</b> इंस्टॉल, हार्डवेयर व अनुप्रयोगों संबंधी जानकारी समय-समय पर, %1 को भेजी जाएँगी। - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - इसे चयनित करने पर आपके इंस्टॉल, हार्डवेयर, अनुप्रयोगों व उपयोक्ता प्रतिमानों संबंधी जानकारी <b>समय-समय पर</b>, %1 को भेजी जाएँगी। + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + इसे चयनित करने पर आपके <b>उपयोक्ता</b> इंस्टॉल, हार्डवेयर, अनुप्रयोगों व प्रतिमानों संबंधी जानकारी समय-समय पर, %1 को भेजी जाएँगी। TrackingViewStep - + Feedback प्रतिक्रिया @@ -3629,42 +3710,42 @@ Output: रिलीज़ नोट्स (&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>%1 हेतु Calamares सेटअप में आपका स्वागत है।</h1> - + <h1>Welcome to %1 setup.</h1> <h1>%1 सेटअप में आपका स्वागत है।</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>%1 के लिए Calamares इंस्टॉलर में आपका स्वागत है।</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>%1 इंस्टॉलर में आपका स्वागत है।</h1> - + %1 support %1 सहायता - + About %1 setup %1 सेटअप के बारे में - + About %1 installer %1 इंस्टॉलर के बारे में - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>के लिए %3</strong><br/><br/>प्रतिलिप्याधिकार 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>प्रतिलिप्याधिकार 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/><a href="https://calamares.io/team/">Calamares टीम</a> व <a href="https://www.transifex.com/calamares/calamares/">Calamares अनुवादक टीम</a> का धन्यवाद।<br/><br/><a href="https://calamares.io/">Calamares</a> का विकास <br/><a href="http://www.blue-systems.com/">ब्लू सिस्टम्स</a> - लिब्रेटिंग सॉफ्टवेयर द्वारा प्रायोजित है। @@ -3672,7 +3753,7 @@ Output: WelcomeQmlViewStep - + Welcome स्वागत है @@ -3680,7 +3761,7 @@ Output: WelcomeViewStep - + Welcome स्वागत है @@ -3720,6 +3801,28 @@ Output: वापस + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>भाषाएँ</h1></br> + सिस्टम स्थानिकी सेटिंग कमांड लाइन के कुछ उपयोक्ता अंतरफलक तत्वों की भाषा व अक्षर सेट पर असर डालती है।<br/>मौजूदा सेटिंग <strong>%1</strong>है। + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>स्थानिकी</h1></br> + सिस्टम स्थानिकी सेटिंग कमांड लाइन के कुछ उपयोक्ता अंतरफलक तत्वों की भाषा व अक्षर सेट पर असर डालती है।<br/>मौजूदा सेटिंग <strong>%1</strong>है। + + + + Back + वापस + + keyboardq @@ -3765,6 +3868,24 @@ Output: अपना कुंजीपटल जाँचें + + localeq + + + System language set to %1 + सिस्टम भाषा %1 सेट की गई + + + + Numbers and dates locale set to %1 + संख्या व दिनांक स्थानिकी %1 सेट की गई + + + + Change + बदलें + + notesqml @@ -3838,27 +3959,27 @@ Output: <p>यह प्रोग्राम प्रश्नावली के माध्यम से आपके कंप्यूटर पर %1 को सेट करेगा।</p> - + About बारे में - + Support सहायता - + Known issues ज्ञात समस्याएँ - + Release notes रिलीज़ नोट्स - + Donate दान करें diff --git a/lang/calamares_hr.ts b/lang/calamares_hr.ts index e7350d778..983f9b393 100644 --- a/lang/calamares_hr.ts +++ b/lang/calamares_hr.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Postaviti - + Install Instaliraj @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Posao nije uspio (%1) - + Programmed job failure was explicitly requested. Programski neuspjeh posla je izričito zatražen. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Gotovo @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Primjer posla (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Izvrši naredbu '%1' u ciljnom sustavu. - + Run command '%1'. Izvrši naredbu '%1'. - + Running command %1 %2 Izvršavam naredbu %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Izvodim %1 operaciju. - + Bad working directory path Krivi put do radnog direktorija - + Working directory %1 for python job %2 is not readable. Radni direktorij %1 za python zadatak %2 nije čitljiv. - + Bad main script file Kriva glavna datoteka skripte - + Main script file %1 for python job %2 is not readable. Glavna skriptna datoteka %1 za python zadatak %2 nije čitljiva. - + Boost.Python error in job "%1". Boost.Python greška u zadatku "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Provjera zahtjeva za modul <i>%1</i> je dovršena. + - + Waiting for %n module(s). Čekam %1 modul(a). @@ -237,7 +242,7 @@ - + (%n second(s)) (%n sekunda(e)) @@ -246,7 +251,7 @@ - + System-requirements checking is complete. Provjera zahtjeva za instalaciju sustava je dovršena. @@ -275,13 +280,13 @@ - + &Yes &Da - + &No &Ne @@ -316,109 +321,109 @@ <br/>Sljedeći moduli se nisu mogli učitati: - + Continue with setup? Nastaviti s postavljanjem? - + Continue with installation? Nastaviti sa instalacijom? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Instalacijski program %1 će izvršiti promjene na vašem disku kako bi postavio %2. <br/><strong>Ne možete poništiti te promjene.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 instalacijski program će napraviti promjene na disku kako bi instalirao %2.<br/><strong>Nećete moći vratiti te promjene.</strong> - + &Set up now &Postaviti odmah - + &Install now &Instaliraj sada - + Go &back Idi &natrag - + &Set up &Postaviti - + &Install &Instaliraj - + Setup is complete. Close the setup program. Instalacija je završena. Zatvorite instalacijski program. - + The installation is complete. Close the installer. Instalacija je završena. Zatvorite instalacijski program. - + Cancel setup without changing the system. Odustanite od instalacije bez promjena na sustavu. - + Cancel installation without changing the system. Odustanite od instalacije bez promjena na sustavu. - + &Next &Sljedeće - + &Back &Natrag - + &Done &Gotovo - + &Cancel &Odustani - + Cancel setup? Prekinuti instalaciju? - + Cancel installation? Prekinuti instalaciju? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Stvarno želite prekinuti instalacijski proces? Instalacijski program će izaći i sve promjene će biti izgubljene. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Stvarno želite prekinuti instalacijski proces? @@ -428,22 +433,22 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CalamaresPython::Helper - + Unknown exception type Nepoznati tip iznimke - + unparseable Python error unparseable Python greška - + unparseable Python traceback unparseable Python traceback - + Unfetchable Python error. Nedohvatljiva Python greška. @@ -461,32 +466,32 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CalamaresWindow - + Show debug information Prikaži debug informaciju - + &Back &Natrag - + &Next &Sljedeće - + &Cancel &Odustani - + %1 Setup Program %1 instalacijski program - + %1 Installer %1 Instalacijski program @@ -683,18 +688,18 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CommandList - - + + Could not run command. Ne mogu pokrenuti naredbu. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Naredba se pokreće u okruženju domaćina i treba znati korijenski put, međutim, rootMountPoint nije definiran. - + The command needs to know the user's name, but no username is defined. Naredba treba znati ime korisnika, ali nije definirano korisničko ime. @@ -719,7 +724,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. The numbers and dates locale will be set to %1. - Jezična shema brojeva i datuma će se postaviti na %1. + Regionalne postavke brojeva i datuma će se postaviti na %1. @@ -747,49 +752,49 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Mrežna instalacija. (Onemogućeno: Ne mogu dohvatiti listu paketa, provjerite da li ste spojeni na mrežu) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ovo računalo ne zadovoljava minimalne zahtjeve za instalaciju %1.<br/>Instalacija se ne može nastaviti.<a href="#details">Detalji...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ovo računalo ne zadovoljava minimalne uvijete za instalaciju %1.<br/>Instalacija se ne može nastaviti.<a href="#details">Detalji...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Računalo ne zadovoljava neke od preporučenih uvjeta za instalaciju %1.<br/>Instalacija se može nastaviti, ali neke značajke možda neće biti dostupne. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Računalo ne zadovoljava neke od preporučenih uvjeta za instalaciju %1.<br/>Instalacija se može nastaviti, ali neke značajke možda neće biti dostupne. - + This program will ask you some questions and set up %2 on your computer. Ovaj program će vam postaviti neka pitanja i instalirati %2 na vaše računalo. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Dobrodošli u Calamares instalacijski program za %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Dobrodošli u Calamares instalacijski program za %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Dobrodošli u %1 instalacijski program.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Dobrodošli u %1 instalacijski program</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - Dobrodošli u Calamares instalacijski program za %1. + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Dobrodošli u Calamares instalacijski program za %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Dobrodošli u %1 instalacijski program.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Dobrodošli u %1 instalacijski program</h1> @@ -1226,37 +1231,37 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. FillGlobalStorageJob - + Set partition information Postavi informacije o particiji - + Install %1 on <strong>new</strong> %2 system partition. Instaliraj %1 na <strong>novu</strong> %2 sistemsku particiju. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Postavi <strong>novu</strong> %2 particiju s točkom montiranja <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instaliraj %2 na %3 sistemsku particiju <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Postavi %3 particiju <strong>%1</strong> s točkom montiranja <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instaliraj boot učitavač na <strong>%1</strong>. - + Setting up mount points. Postavljam točke montiranja. @@ -1274,32 +1279,32 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.&Ponovno pokreni sada - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Gotovo.</h1><br/>%1 je instaliran na vaše računalo.<br/>Sada možete koristiti vaš novi sustav. - + <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 setup program.</p></body></html> <html><head/><body><p>Kada je odabrana ova opcija, vaš sustav će se ponovno pokrenuti kada kliknete na <span style="font-style:italic;">Gotovo</span> ili zatvorite instalacijski program.</p></body></html> - + <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>Gotovo.</h1><br/>%1 je instaliran na vaše računalo.<br/>Sada možete ponovno pokrenuti računalo ili nastaviti sa korištenjem %2 live okruženja. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Kada je odabrana ova opcija, vaš sustav će se ponovno pokrenuti kada kliknete na <span style="font-style:italic;">Gotovo</span> ili zatvorite instalacijski program.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Instalacija nije uspijela</h1><br/>%1 nije instaliran na vaše računalo.<br/>Greška: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalacija nije uspijela</h1><br/>%1 nije instaliran na vaše računalo.<br/>Greška: %2. @@ -1307,27 +1312,27 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. FinishedViewStep - + Finish Završi - + Setup Complete Instalacija je završena - + Installation Complete Instalacija je završena - + The setup of %1 is complete. Instalacija %1 je završena. - + The installation of %1 is complete. Instalacija %1 je završena. @@ -1358,72 +1363,72 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. GeneralRequirements - + has at least %1 GiB available drive space ima barem %1 GB dostupne slobodne memorije na disku - + There is not enough drive space. At least %1 GiB is required. Nema dovoljno prostora na disku. Potrebno je najmanje %1 GB. - + has at least %1 GiB working memory ima barem %1 GB radne memorije - + The system does not have enough working memory. At least %1 GiB is required. Ovaj sustav nema dovoljno radne memorije. Potrebno je najmanje %1 GB. - + is plugged in to a power source je spojeno na izvor struje - + The system is not plugged in to a power source. Ovaj sustav nije spojen na izvor struje. - + is connected to the Internet je spojeno na Internet - + The system is not connected to the Internet. Ovaj sustav nije spojen na internet. - + is running the installer as an administrator (root) pokreće instalacijski program kao administrator (root) - + The setup program is not running with administrator rights. Instalacijski program nije pokrenut sa administratorskim dozvolama. - + The installer is not running with administrator rights. Instalacijski program nije pokrenut sa administratorskim dozvolama. - + has a screen large enough to show the whole installer ima zaslon dovoljno velik da može prikazati cijeli instalacijski program - + The screen is too small to display the setup program. Zaslon je premalen za prikaz instalacijskog programa. - + The screen is too small to display the installer. Zaslon je premalen za prikaz instalacijskog programa. @@ -1538,12 +1543,12 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. System locale setting - Postavke jezične sheme sustava + Regionalne postavke sustava 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>. - Jezična shema sustava ima efekt na jezični i znakovni skup za neke komandno linijske elemente sučelja.<br/>Trenutačna postavka je <strong>%1</strong>. + Regionalne postavke sustava imaju efekt na jezični i znakovni skup za neke elemente korisničkog sučelja naredbenog retka.<br/>Trenutne postavke su <strong>%1</strong>. @@ -1693,7 +1698,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. The numbers and dates locale will be set to %1. - Jezična shema brojeva i datuma će se postaviti na %1. + Regionalne postavke brojeva i datuma će se postaviti na %1. @@ -1771,6 +1776,18 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Nijedna točka montiranja nije postavljena za MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Odaberite željenu lokaciju na karti da bi instalacijski program predložio regiju +i postavke vremenske zone za vas. Možete doraditi predložene postavke u nastavku. Kartu pretražujete pomicanjem miša +te korištenjem tipki +/- ili skrolanjem miša za zumiranje. + + NetInstallViewStep @@ -1909,6 +1926,19 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Postavite OEM identifikator serije na <code>%1</code>. + + Offline + + + Timezone: %1 + Vremenska zona: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Kako biste mogli odabrati vremensku zonu, provjerite jeste li povezani s internetom. Nakon spajanja ponovno pokrenite instalacijski program. Dodatno možete precizirati postavke jezika i regije. + + PWQ @@ -2496,107 +2526,107 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Particije - + Install %1 <strong>alongside</strong> another operating system. Instaliraj %1 <strong>uz postojeći</strong> operacijski sustav. - + <strong>Erase</strong> disk and install %1. <strong>Obriši</strong> disk i instaliraj %1. - + <strong>Replace</strong> a partition with %1. <strong>Zamijeni</strong> particiju s %1. - + <strong>Manual</strong> partitioning. <strong>Ručno</strong> particioniranje. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instaliraj %1 <strong>uz postojeći</strong> operacijski sustav na disku <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Obriši</strong> disk <strong>%2</strong> (%3) i instaliraj %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Zamijeni</strong> particiju na disku <strong>%2</strong> (%3) s %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ručno</strong> particioniram disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Trenutni: - + After: Poslije: - + No EFI system partition configured EFI particija nije konfigurirana - + 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>%3</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 particija je potrebna za pokretanje %1.<br/><br/>Da bi ste konfigurirali EFI particiju, idite natrag i odaberite ili stvorite FAT32 datotečni sustav s omogućenom <strong>%3</strong> oznakom i točkom montiranja <strong>%2</strong>.<br/><br/>Možete nastaviti bez postavljanja EFI particije, ali vaš sustav se možda neće moći pokrenuti. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. EFI particija je potrebna za pokretanje %1.<br/><br/>Particija je konfigurirana s točkom montiranja <strong>%2</strong>, ali njezina <strong>%3</strong> oznaka nije postavljena.<br/>Za postavljanje oznake, vratite se i uredite postavke particije.<br/><br/>Možete nastaviti bez postavljanja oznake, ali vaš sustav se možda neće moći pokrenuti. - + EFI system partition flag not set Oznaka EFI particije nije postavljena - + Option to use GPT on BIOS Mogućnost korištenja GPT-a na BIOS-u - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT tablica particija je najbolja opcija za sve sustave. Ovaj instalacijski program podržava takvo postavljanje i za BIOS sustave. <br/><br/>Da biste konfigurirali GPT particijsku tablicu za BIOS sustave, (ako to već nije učinjeno) vratite se natrag i postavite particijsku tablicu na GPT, a zatim stvorite neformatiranu particiju od 8 MB s omogućenom zastavicom <strong>bios_grub</strong>. <br/><br/>Neformirana particija od 8 MB potrebna je za pokretanje %1 na BIOS sustavu s GPT-om. - + Boot partition not encrypted Boot particija nije kriptirana - + 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. Odvojena boot particija je postavljena zajedno s kriptiranom root particijom, ali boot particija nije kriptirana.<br/><br/>Zabrinuti smo za vašu sigurnost jer su važne datoteke sustava na nekriptiranoj particiji.<br/>Možete nastaviti ako želite, ali datotečni sustav će se otključati kasnije tijekom pokretanja sustava.<br/>Da bi ste kriptirali boot particiju, vratite se natrag i napravite ju, odabirom opcije <strong>Kriptiraj</strong> u prozoru za stvaranje prarticije. - + has at least one disk device available. ima barem jedan disk dostupan. - + There are no partitions to install on. Ne postoje particije na koje bi se instalirao sustav. @@ -2662,14 +2692,14 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. ProcessResult - + There was no output from the command. Nema izlazne informacije od naredbe. - + Output: @@ -2678,52 +2708,52 @@ Izlaz: - + External command crashed. Vanjska naredba je prekinula s radom. - + Command <i>%1</i> crashed. Naredba <i>%1</i> je prekinula s radom. - + External command failed to start. Vanjska naredba nije uspješno pokrenuta. - + Command <i>%1</i> failed to start. Naredba <i>%1</i> nije uspješno pokrenuta. - + Internal error when starting command. Unutrašnja greška pri pokretanju naredbe. - + Bad parameters for process job call. Krivi parametri za proces poziva posla. - + External command failed to finish. Vanjska naredba se nije uspjela izvršiti. - + Command <i>%1</i> failed to finish in %2 seconds. Naredba <i>%1</i> nije uspjela završiti za %2 sekundi. - + External command finished with errors. Vanjska naredba je završila sa pogreškama. - + Command <i>%1</i> finished with exit code %2. Naredba <i>%1</i> je završila sa izlaznim kodom %2. @@ -2731,32 +2761,27 @@ Izlaz: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Provjera zahtjeva za modul <i>%1</i> je dovršena. - - - + unknown nepoznato - + extended prošireno - + unformatted nije formatirano - + swap swap @@ -2810,6 +2835,16 @@ Izlaz: Ne particionirani prostor ili nepoznata particijska tablica + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Ovo računalo ne zadovoljava neke preporučene zahtjeve za instalaciju %1.<br/> +Postavljanje se može nastaviti, ali neke će značajke možda biti onemogućene.</p> + + RemoveUserJob @@ -2845,73 +2880,90 @@ Izlaz: Oblik - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Odaberite gdje želite instalirati %1.<br/><font color="red">Upozorenje: </font>to će obrisati sve datoteke na odabranoj particiji. - + The selected item does not appear to be a valid partition. Odabrana stavka se ne ćini kao ispravna particija. - + %1 cannot be installed on empty space. Please select an existing partition. %1 ne može biti instaliran na prazni prostor. Odaberite postojeću particiju. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 se ne može instalirati na proširenu particiju. Odaberite postojeću primarnu ili logičku particiju. - + %1 cannot be installed on this partition. %1 se ne može instalirati na ovu particiju. - + Data partition (%1) Podatkovna particija (%1) - + Unknown system partition (%1) Nepoznata particija sustava (%1) - + %1 system partition (%2) %1 particija sustava (%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>%4</strong><br/><br/>Particija %1 je premala za %2. Odaberite particiju kapaciteta od najmanje %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>%2</strong><br/><br/>EFI particijane postoji na ovom sustavu. Vratite se natrag i koristite ručno particioniranje za postavljane %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. <strong>%3</strong><br/><br/>%1 će biti instaliran na %2.<br/><font color="red">Upozorenje: </font>svi podaci na particiji %2 će biti izgubljeni. - + The EFI system partition at %1 will be used for starting %2. EFI particija na %1 će se koristiti za pokretanje %2. - + EFI system partition: EFI particija: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Ovo računalo ne zadovoljava minimalne zahtjeve za instalaciju %1.<br/> +Instalacija se ne može nastaviti.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Ovo računalo ne zadovoljava neke preporučene zahtjeve za postavljanje %1.<br/> +Postavljanje se može nastaviti, ali neke će značajke možda biti onemogućene.</p> + + ResizeFSJob @@ -3034,12 +3086,12 @@ Izlaz: ResultsListDialog - + For best results, please ensure that this computer: Za najbolje rezultate, pobrinite se da ovo računalo: - + System requirements Zahtjevi sustava @@ -3047,27 +3099,27 @@ Izlaz: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ovo računalo ne zadovoljava minimalne zahtjeve za instalaciju %1.<br/>Instalacija se ne može nastaviti.<a href="#details">Detalji...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ovo računalo ne zadovoljava minimalne uvijete za instalaciju %1.<br/>Instalacija se ne može nastaviti.<a href="#details">Detalji...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Računalo ne zadovoljava neke od preporučenih uvjeta za instalaciju %1.<br/>Instalacija se može nastaviti, ali neke značajke možda neće biti dostupne. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Računalo ne zadovoljava neke od preporučenih uvjeta za instalaciju %1.<br/>Instalacija se može nastaviti, ali neke značajke možda neće biti dostupne. - + This program will ask you some questions and set up %2 on your computer. Ovaj program će vam postaviti neka pitanja i instalirati %2 na vaše računalo. @@ -3350,51 +3402,80 @@ Izlaz: TrackingInstallJob - + Installation feedback Povratne informacije o instalaciji - + Sending installation feedback. Šaljem povratne informacije o instalaciji - + Internal error in install-tracking. Interna pogreška prilikom praćenja instalacije. - + HTTP request timed out. HTTP zahtjev je istekao - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + Povratne informacije korisnika KDE-a + + + + Configuring KDE user feedback. + Konfiguriranje povratnih informacija korisnika KDE-a. + + + + + Error in KDE user feedback configuration. + Pogreška u konfiguraciji povratnih informacija korisnika KDE-a. + - + + Could not configure KDE user feedback correctly, script error %1. + Ne mogu ispravno konfigurirati povratne informacije korisnika KDE-a; pogreška skripte %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + Ne mogu ispravno konfigurirati povratne informacije korisnika KDE-a; greška Calamares instalacijskog programa %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Povratna informacija o uređaju - + Configuring machine feedback. Konfiguriram povratnu informaciju o uređaju. - - + + Error in machine feedback configuration. Greška prilikom konfiguriranja povratne informacije o uređaju. - + Could not configure machine feedback correctly, script error %1. Ne mogu ispravno konfigurirati povratnu informaciju o uređaju, greška skripte %1. - + Could not configure machine feedback correctly, Calamares error %1. Ne mogu ispravno konfigurirati povratnu informaciju o uređaju, Calamares greška %1. @@ -3413,8 +3494,8 @@ Izlaz: - <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>Odabirom ove opcije <span style=" font-weight:600;">ne će se slati nikakve informacije</span>o vašoj instalaciji.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Kliknite ovdje da uopće ne šaljete<span style=" font-weight:600;"> nikakve podatke</span> o vašoj instalaciji.</p></body></html> @@ -3422,30 +3503,30 @@ Izlaz: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klikni ovdje za više informacija o korisničkoj povratnoj informaciji</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. - Praćenje instalacije pomaže %1 da vidi koliko ima korisnika, na koji hardver instalira %1 i (s posljednjim opcijama ispod) da dobije kontinuirane informacije o preferiranim aplikacijama. Kako bi vidjeli što se šalje molimo vas da kliknete na ikonu pomoći pokraj svake opcije. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + Praćenje pomaže %1 vidjeti koliko često se instalira, na kojem je hardveru instaliran i koje se aplikacije koriste. Da biste vidjeli što će biti poslano, kliknite ikonu pomoći pored svakog područja. - - 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. - Odabirom ove opcije slat ćete informacije vezane za instalaciju i vaš hardver. Informacija <b>će biti poslana samo jednom</b>nakon što završi instalacija. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Odabirom ove opcije poslat ćete podatke o svojoj instalaciji i hardveru. Ove će informacije biti poslane <b>samo jednom</b> nakon završetka instalacije. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Odabirom ove opcije slat će se <b>periodična</b>informacija prema %1 o vašoj instalaciji, hardveru i aplikacijama. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Odabirom ove opcije periodično ćete slati podatke o instalaciji vašeg <b>računala</b>, hardveru i aplikacijama na %1. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Odabirom ove opcije slat će se <b>redovna</b>informacija prema %1 o vašoj instalaciji, hardveru, aplikacijama i uzorci upotrebe. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Odabirom ove opcije redovito ćete slati podatke o vašoj <b>korisničkoj</b> instalaciji, hardveru, aplikacijama i obrascima upotrebe aplikacija na %1. TrackingViewStep - + Feedback Povratna informacija @@ -3631,42 +3712,42 @@ Izlaz: &Napomene o izdanju - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Dobrodošli u Calamares instalacijski program za %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Dobrodošli u %1 instalacijski program.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> Dobrodošli u Calamares instalacijski program za %1. - + <h1>Welcome to the %1 installer.</h1> <h1>Dobrodošli u %1 instalacijski program.</h1> - + %1 support %1 podrška - + About %1 setup O %1 instalacijskom programu - + About %1 installer O %1 instalacijskom programu - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>za %3</strong><br/><br/>Autorska prava 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorska prava 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> Hvala <a href="https://calamares.io/team/">Calamares timu</a> i <a href="https://www.transifex.com/calamares/calamares/">Calamares timu za prevođenje</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> sponzorira <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3674,7 +3755,7 @@ Izlaz: WelcomeQmlViewStep - + Welcome Dobrodošli @@ -3682,7 +3763,7 @@ Izlaz: WelcomeViewStep - + Welcome Dobrodošli @@ -3722,6 +3803,28 @@ Liberating Software. Natrag + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Postavke jezika</h1></br> +Jezične postavke sustava utječu na skup jezika i znakova za neke elemente korisničkog sučelja naredbenog retka. Trenutne postavke su <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Postavke regije</h1></br> +Postavke regije utječu na skup jezika i znakova za neke elemente korisničkog sučelja naredbenog retka. Trenutne postavke su <strong>%1</strong>. + + + + Back + Natrag + + keyboardq @@ -3767,6 +3870,24 @@ Liberating Software. Testirajte vašu tipkovnicu + + localeq + + + System language set to %1 + Jezik sustava je postavljen na %1 + + + + Numbers and dates locale set to %1 + Regionalne postavke brojeva i datuma su postavljene na %1 + + + + Change + Promijeni + + notesqml @@ -3839,27 +3960,27 @@ Liberating Software. <p>Ovaj program će vas pitati neka pitanja i pripremiti %1 na vašem računalu.</p> - + About O programu - + Support Podrška - + Known issues Poznati problemi - + Release notes Bilješke o izdanju - + Donate Doniraj diff --git a/lang/calamares_hu.ts b/lang/calamares_hu.ts index 1a00e4c45..c0a0990d4 100644 --- a/lang/calamares_hu.ts +++ b/lang/calamares_hu.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Összeállítás - + Install Telepít @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Művelet nem sikerült (%1) - + Programmed job failure was explicitly requested. Kifejezetten kért programozott műveleti hiba. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Kész @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Mintapélda (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. '%1' parancs futtatása a cél rendszeren. - + Run command '%1'. '%1' parancs futtatása. - + Running command %1 %2 Parancs futtatása %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Futó %1 műveletek. - + Bad working directory path Rossz munkakönyvtár útvonal - + Working directory %1 for python job %2 is not readable. Munkakönyvtár %1 a python folyamathoz %2 nem olvasható. - + Bad main script file Rossz alap script fájl - + Main script file %1 for python job %2 is not readable. Alap script fájl %1 a python folyamathoz %2 nem olvasható. - + Boost.Python error in job "%1". Boost. Python hiba ebben a folyamatban "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Követelmények ellenőrzése a <i>%1</i>modulhoz kész. + - + Waiting for %n module(s). Várakozás a %n modulokra. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n másodperc) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Rendszerkövetelmények ellenőrzése kész. @@ -273,13 +278,13 @@ - + &Yes &Igen - + &No &Nem @@ -314,109 +319,109 @@ <br/>A következő modulok nem tölthetőek be: - + Continue with setup? Folytatod a telepítéssel? - + Continue with installation? Folytatja a telepítést? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> A %1 telepítő változtatásokat fog végrehajtani a lemezen a %2 telepítéséhez. <br/><strong>Ezután már nem tudja visszavonni a változtatásokat.</strong> - + 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> A %1 telepítő változtatásokat fog elvégezni, hogy telepítse a következőt: %2.<br/><strong>A változtatások visszavonhatatlanok lesznek.</strong> - + &Set up now &Telepítés most - + &Install now &Telepítés most - + Go &back Menj &vissza - + &Set up &Telepítés - + &Install &Telepítés - + Setup is complete. Close the setup program. Telepítés sikerült. Zárja be a telepítőt. - + The installation is complete. Close the installer. A telepítés befejeződött, Bezárhatod a telepítőt. - + Cancel setup without changing the system. Telepítés megszakítása a rendszer módosítása nélkül. - + Cancel installation without changing the system. Kilépés a telepítőből a rendszer megváltoztatása nélkül. - + &Next &Következő - + &Back &Vissza - + &Done &Befejez - + &Cancel &Mégse - + Cancel setup? Megszakítja a telepítést? - + Cancel installation? Abbahagyod a telepítést? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Valóban megszakítod a telepítési eljárást? A telepítő ki fog lépni és minden változtatás elveszik. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Biztos abba szeretnéd hagyni a telepítést? @@ -426,22 +431,22 @@ Minden változtatás elveszik, ha kilépsz a telepítőből. CalamaresPython::Helper - + Unknown exception type Ismeretlen kivétel típus - + unparseable Python error nem egyeztethető Python hiba - + unparseable Python traceback nem egyeztethető Python visszakövetés - + Unfetchable Python error. Összehasonlíthatatlan Python hiba. @@ -458,32 +463,32 @@ Minden változtatás elveszik, ha kilépsz a telepítőből. CalamaresWindow - + Show debug information Hibakeresési információk mutatása - + &Back &Vissza - + &Next &Következő - + &Cancel &Mégse - + %1 Setup Program %1 Program telepítése - + %1 Installer %1 Telepítő @@ -680,18 +685,18 @@ Minden változtatás elveszik, ha kilépsz a telepítőből. CommandList - - + + Could not run command. A parancsot nem lehet futtatni. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. A parancs a gazdakörnyezetben fut, és ismernie kell a gyökér útvonalát, de nincs rootMountPoint megadva. - + The command needs to know the user's name, but no username is defined. A parancsnak tudnia kell a felhasználónevet, de az nincs megadva. @@ -744,50 +749,50 @@ Minden változtatás elveszik, ha kilépsz a telepítőből. Hálózati telepítés. (Kikapcsolva: A csomagokat nem lehet letölteni, ellenőrizd a hálózati kapcsolatot) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez. <br/>A telepítés nem folytatható. <a href="#details">Részletek...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez.<br/> Telepítés nem folytatható. <a href="#details">Részletek...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Ez a számítógép nem felel meg néhány követelménynek a %1 telepítéséhez. <br/>A telepítés folytatható de előfordulhat néhány képesség nem lesz elérhető. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez.<br/>Telepítés folytatható de néhány tulajdonság valószínűleg nem lesz elérhető. - + This program will ask you some questions and set up %2 on your computer. Ez a program fel fog tenni néhány kérdést és %2 -t telepíti a számítógépre. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Üdvözli önt a Calamares telepítő itt %1!</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Köszöntjük a %1 telepítőben!</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Üdvözlet a Calamares %1 telepítőjében.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Üdvözlet a %1 telepítőben.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a> FillGlobalStorageJob - + Set partition information Partíció információk beállítása - + Install %1 on <strong>new</strong> %2 system partition. %1 telepítése az <strong>új</strong> %2 partícióra. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. <strong>Új</strong> %2 partíció beállítása <strong>%1</strong> csatolási ponttal. - + Install %2 on %3 system partition <strong>%1</strong>. %2 telepítése %3 <strong>%1</strong> rendszer partícióra. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. %3 partíció beállítása <strong>%1</strong> <strong>%2</strong> csatolási ponttal. - + Install boot loader on <strong>%1</strong>. Rendszerbetöltő telepítése ide <strong>%1</strong>. - + Setting up mount points. Csatlakozási pontok létrehozása @@ -1272,32 +1277,32 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a>Új&raindítás most - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Minden kész.</h1><br/>%1 telepítve lett a számítógépére. <br/>Most már használhatja az új rendszert. - + <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 setup program.</p></body></html> <html><head/><body><p>Ezt bejelölve a rendszer újra fog indulni amikor a <span style="font-style:italic;">Kész</span> gombra kattint vagy bezárja a telepítőt.</p></body></html> - + <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>Sikeres művelet.</h1><br/>%1 telepítve lett a számítógépére.<br/>Újraindítás után folytathatod az %2 éles környezetben. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Ezt bejelölve a rendszer újra fog indulni amikor a <span style="font-style:italic;">Kész</span>gombra kattint vagy bezárja a telepítőt.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Telepítés nem sikerült</h1><br/>%1 nem lett telepítve a számítógépére. <br/>A hibaüzenet: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>A telepítés hibába ütközött.</h1><br/>%1 nem lett telepítve a számítógépre.<br/>A hibaüzenet: %2. @@ -1305,27 +1310,27 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a> FinishedViewStep - + Finish Befejezés - + Setup Complete Telepítés Sikerült - + Installation Complete A telepítés befejeződött. - + The setup of %1 is complete. A telepítésből %1 van kész. - + The installation of %1 is complete. A %1 telepítése elkészült. @@ -1356,72 +1361,72 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a> GeneralRequirements - + has at least %1 GiB available drive space legalább %1 GiB lemezterület elérhető - + There is not enough drive space. At least %1 GiB is required. Nincs elég lemezterület. Legalább %1 GiB szükséges. - + has at least %1 GiB working memory legalább %1 GiB memória elérhető - + The system does not have enough working memory. At least %1 GiB is required. A rendszer nem tartalmaz elég memóriát. Legalább %1 GiB szükséges. - + is plugged in to a power source csatlakoztatva van külső áramforráshoz - + The system is not plugged in to a power source. A rendszer nincs csatlakoztatva külső áramforráshoz - + is connected to the Internet csatlakozik az internethez - + The system is not connected to the Internet. A rendszer nem csatlakozik az internethez. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. A telepítő program nem adminisztrátori joggal fut. - + The installer is not running with administrator rights. A telepítő nem adminisztrátori jogokkal fut. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. A képernyő mérete túl kicsi a telepítő program megjelenítéséhez. - + The screen is too small to display the installer. A képernyőméret túl kicsi a telepítő megjelenítéséhez. @@ -1769,6 +1774,16 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a> + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a>Állítsa az OEM Batch azonosítót erre: <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a>Partíciók - + Install %1 <strong>alongside</strong> another operating system. %1 telepítése más operációs rendszer <strong>mellé</strong> . - + <strong>Erase</strong> disk and install %1. <strong>Lemez törlés</strong>és %1 telepítés. - + <strong>Replace</strong> a partition with %1. <strong>A partíció lecserélése</strong> a következővel: %1. - + <strong>Manual</strong> partitioning. <strong>Kézi</strong> partícionálás. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). %1 telepítése más operációs rendszer <strong>mellé</strong> a <strong>%2</strong> (%3) lemezen. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>%2 lemez törlése</strong> (%3) és %1 telepítés. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>A partíció lecserélése</strong> a <strong>%2</strong> lemezen(%3) a következővel: %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Kézi</strong> telepítés a <strong>%1</strong> (%2) lemezen. - + Disk <strong>%1</strong> (%2) Lemez <strong>%1</strong> (%2) - + Current: Aktuális: - + After: Utána: - + No EFI system partition configured Nincs EFI rendszer partíció beállítva - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI partíciós zászló nincs beállítva - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Indító partíció nincs titkosítva - + 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. Egy külön indító partíció lett beállítva egy titkosított root partícióval, de az indító partíció nincs titkosítva.br/><br/>Biztonsági aggályok merülnek fel ilyen beállítás mellet, mert fontos fájlok nem titkosított partíción vannak tárolva. <br/>Ha szeretnéd, folytathatod így, de a fájlrendszer zárolása meg fog történni az indítás után. <br/> Az indító partíció titkosításához lépj vissza és az újra létrehozáskor válaszd a <strong>Titkosít</strong> opciót. - + has at least one disk device available. legalább egy lemez eszköz elérhető. - + There are no partitions to install on. @@ -2660,14 +2688,14 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a> ProcessResult - + There was no output from the command. A parancsnak nem volt kimenete. - + Output: @@ -2676,52 +2704,52 @@ Kimenet: - + External command crashed. Külső parancs összeomlott. - + Command <i>%1</i> crashed. Parancs <i>%1</i> összeomlott. - + External command failed to start. A külső parancsot nem sikerült elindítani. - + Command <i>%1</i> failed to start. A(z) <i>%1</i> parancsot nem sikerült elindítani. - + Internal error when starting command. Belső hiba a parancs végrehajtásakor. - + Bad parameters for process job call. Hibás paraméterek a folyamat hívásához. - + External command failed to finish. Külső parancs nem fejeződött be. - + Command <i>%1</i> failed to finish in %2 seconds. A(z) <i>%1</i> parancsot nem sikerült befejezni %2 másodperc alatt. - + External command finished with errors. A külső parancs hibával fejeződött be. - + Command <i>%1</i> finished with exit code %2. A(z) <i>%1</i> parancs hibakóddal lépett ki: %2. @@ -2729,32 +2757,27 @@ Kimenet: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Követelmények ellenőrzése a <i>%1</i>modulhoz kész. - - - + unknown ismeretlen - + extended kiterjesztett - + unformatted formázatlan - + swap Swap @@ -2808,6 +2831,15 @@ Kimenet: Nem particionált, vagy ismeretlen partíció + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Kimenet: Adatlap - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Válaszd ki az telepítés helyét %1.<br/><font color="red">Figyelmeztetés: </font>minden fájl törölve lesz a kiválasztott partíción. - + The selected item does not appear to be a valid partition. A kiválasztott elem nem tűnik érvényes partíciónak. - + %1 cannot be installed on empty space. Please select an existing partition. %1 nem telepíthető, kérlek válassz egy létező partíciót. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 nem telepíthető a kiterjesztett partícióra. Kérlek, válassz egy létező elsődleges vagy logikai partíciót. - + %1 cannot be installed on this partition. Nem lehet telepíteni a következőt %1 erre a partícióra. - + Data partition (%1) Adat partíció (%1) - + Unknown system partition (%1) Ismeretlen rendszer partíció (%1) - + %1 system partition (%2) %1 rendszer partíció (%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>%4</strong><br/><br/>A partíció %1 túl kicsi a következőhöz %2. Kérlek, válassz egy legalább %3 GB- os partíciót. - + <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>%2</strong><br/><br/>Az EFI rendszerpartíció nem található a rendszerben. Kérlek, lépj vissza és állítsd be manuális partícionálással %1- et. - - - + + + <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 installálva lesz a következőre: %2.<br/><font color="red">Figyelmeztetés: </font>a partíción %2 minden törölve lesz. - + The EFI system partition at %1 will be used for starting %2. A %2 indításához az EFI rendszer partíciót használja a következőn: %1 - + EFI system partition: EFI rendszer partíció: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Kimenet: ResultsListDialog - + For best results, please ensure that this computer: A legjobb eredményért győződjünk meg, hogy ez a számítógép: - + System requirements Rendszer követelmények @@ -3045,28 +3092,28 @@ Kimenet: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez. <br/>A telepítés nem folytatható. <a href="#details">Részletek...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez.<br/> Telepítés nem folytatható. <a href="#details">Részletek...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Ez a számítógép nem felel meg néhány követelménynek a %1 telepítéséhez. <br/>A telepítés folytatható de előfordulhat néhány képesség nem lesz elérhető. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ez a számítógép nem felel meg a minimum követelményeknek a %1 telepítéséhez.<br/>Telepítés folytatható de néhány tulajdonság valószínűleg nem lesz elérhető. - + This program will ask you some questions and set up %2 on your computer. Ez a program fel fog tenni néhány kérdést és %2 -t telepíti a számítógépre. @@ -3349,51 +3396,80 @@ Telepítés nem folytatható. <a href="#details">Részletek...</a> TrackingInstallJob - + Installation feedback Visszajelzés a telepítésről - + Sending installation feedback. Telepítési visszajelzés küldése. - + Internal error in install-tracking. Hiba a telepítő nyomkövetésben. - + HTTP request timed out. HTTP kérés ideje lejárt. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Gépi visszajelzés - + Configuring machine feedback. Gépi visszajelzés konfigurálása. - - + + Error in machine feedback configuration. Hiba a gépi visszajelzés konfigurálásában. - + Could not configure machine feedback correctly, script error %1. Gépi visszajelzés konfigurálása nem megfelelő, script hiba %1. - + Could not configure machine feedback correctly, Calamares error %1. Gépi visszajelzés konfigurálása nem megfelelő,. Calamares hiba %1. @@ -3413,8 +3489,8 @@ Calamares hiba %1. - <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>Ezt kiválasztva te<span style=" font-weight:600;">nem tudsz küldeni információt</span>a telepítésről.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3422,30 +3498,30 @@ Calamares hiba %1. <html><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;"> Kattints ide bővebb információért a felhasználói visszajelzésről </span></a></p></body><head/></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. - A telepítés nyomkövetése %1 segít látni, hogy hány felhasználója van, milyen eszközre , %1 és (az alábbi utolsó két opcióval), folyamatosan kapunk információt az előnyben részesített alkalmazásokról. Hogy lásd mi lesz elküldve kérlek kattints a súgó ikonra a mező mellett. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Ezt kiválasztva információt fogsz küldeni a telepítésről és a számítógépről. Ez az információ <b>csak egyszer lesz </b>elküldve telepítés után. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Ezt kiválasztva információt fogsz küldeni <b>időközönként</b> a telepítésről, számítógépről, alkalmazásokról ide %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Ezt kiválasztva<b> rendszeresen</b> fogsz információt küldeni a telepítésről, számítógépről, alkalmazásokról és használatukról ide %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Visszacsatolás @@ -3631,42 +3707,42 @@ Calamares hiba %1. &Kiadási megjegyzések - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Üdvözli önt a Calamares telepítő itt %1!</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Köszöntjük a %1 telepítőben!</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Üdvözlet a Calamares %1 telepítőjében.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Üdvözlet a %1 telepítőben.</h1> - + %1 support %1 támogatás - + About %1 setup A %1 telepítőről. - + About %1 installer A %1 telepítőről - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3674,7 +3750,7 @@ Calamares hiba %1. WelcomeQmlViewStep - + Welcome Üdvözlet @@ -3682,7 +3758,7 @@ Calamares hiba %1. WelcomeViewStep - + Welcome Üdvözlet @@ -3711,6 +3787,26 @@ Calamares hiba %1. + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3756,6 +3852,24 @@ Calamares hiba %1. + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3807,27 +3921,27 @@ Calamares hiba %1. - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_id.ts b/lang/calamares_id.ts index b998c2072..f7cc5b54e 100644 --- a/lang/calamares_id.ts +++ b/lang/calamares_id.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Instal @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Selesai @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Menjalankan perintah %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Menjalankan %1 operasi. - + Bad working directory path Jalur lokasi direktori tidak berjalan baik - + Working directory %1 for python job %2 is not readable. Direktori kerja %1 untuk penugasan python %2 tidak dapat dibaca. - + Bad main script file Berkas skrip utama buruk - + Main script file %1 for python job %2 is not readable. Berkas skrip utama %1 untuk penugasan python %2 tidak dapat dibaca. - + Boost.Python error in job "%1". Boost.Python mogok dalam penugasan "%1". @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). - + (%n second(s)) - + System-requirements checking is complete. @@ -271,13 +276,13 @@ - + &Yes &Ya - + &No &Tidak @@ -312,108 +317,108 @@ <br/>Modul berikut tidak dapat dimuat. - + Continue with setup? Lanjutkan dengan setelan ini? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> Installer %1 akan membuat perubahan ke disk Anda untuk memasang %2.<br/><strong>Anda tidak dapat membatalkan perubahan tersebut.</strong> - + &Set up now - + &Install now &Instal sekarang - + Go &back &Kembali - + &Set up - + &Install &Instal - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Instalasi sudah lengkap. Tutup installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Batalkan instalasi tanpa mengubah sistem yang ada. - + &Next &Berikutnya - + &Back &Kembali - + &Done &Kelar - + &Cancel &Batal - + Cancel setup? - + Cancel installation? Batalkan instalasi? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + 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 instalasi ini? @@ -423,22 +428,22 @@ Instalasi akan ditutup dan semua perubahan akan hilang. CalamaresPython::Helper - + Unknown exception type Tipe pengecualian tidak dikenal - + unparseable Python error tidak dapat mengurai pesan kesalahan Python - + unparseable Python traceback tidak dapat mengurai penelusuran balik Python - + Unfetchable Python error. Tidak dapat mengambil pesan kesalahan Python. @@ -455,32 +460,32 @@ Instalasi akan ditutup dan semua perubahan akan hilang. CalamaresWindow - + Show debug information Tampilkan informasi debug - + &Back &Kembali - + &Next &Berikutnya - + &Cancel &Batal - + %1 Setup Program - + %1 Installer Installer %1 @@ -677,18 +682,18 @@ Instalasi akan ditutup dan semua perubahan akan hilang. CommandList - - + + Could not run command. Tidak dapat menjalankan perintah - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Perintah berjalan di lingkungan host dan perlu diketahui alur root-nya, tetapi bukan rootMountPoint yang ditentukan. - + The command needs to know the user's name, but no username is defined. Perintah perlu diketahui nama si pengguna, tetapi bukan nama pengguna yang ditentukan. @@ -741,51 +746,51 @@ Instalasi akan ditutup dan semua perubahan akan hilang. Instalasi Jaringan. (Dinonfungsikan: Tak mampu menarik daftar paket, periksa sambungan jaringanmu) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Komputer ini tidak memenuhi syarat minimum untuk memasang %1. Installer tidak dapat dilanjutkan. <a href=" - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Komputer ini tidak memenuhi beberapa syarat yang dianjurkan untuk memasang %1. Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. - + This program will ask you some questions and set up %2 on your computer. Program ini akan mengajukan beberapa pertanyaan dan menyetel %2 pada komputer Anda. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Selamat datang di Calamares installer untuk %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Selamat datang di installer %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. FillGlobalStorageJob - + Set partition information Tetapkan informasi partisi - + Install %1 on <strong>new</strong> %2 system partition. Instal %1 pada partisi sistem %2 <strong>baru</strong> - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Setel partisi %2 <strong>baru</strong> dengan tempat kait <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instal %2 pada sistem partisi %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Setel partisi %3 <strong>%1</strong> dengan tempat kait <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instal boot loader di <strong>%1</strong>. - + Setting up mount points. Menyetel tempat kait. @@ -1270,32 +1275,32 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Mulai ulang seka&rang - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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 terinstal di komputer Anda.<br/>Anda dapat memulai ulang ke sistem baru atau lanjut menggunakan lingkungan Live %2. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalasi Gagal</h1><br/>%1 tidak bisa diinstal pada komputermu.<br/>Pesan galatnya adalah: %2. @@ -1303,27 +1308,27 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. FinishedViewStep - + Finish Selesai - + Setup Complete - + Installation Complete Instalasi Lengkap - + The setup of %1 is complete. - + The installation of %1 is complete. Instalasi %1 telah lengkap. @@ -1354,72 +1359,72 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source terhubung dengan sumber listrik - + The system is not plugged in to a power source. Sistem tidak terhubung dengan sumber listrik. - + is connected to the Internet terkoneksi dengan internet - + The system is not connected to the Internet. Sistem tidak terkoneksi dengan internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Installer tidak dijalankan dengan kewenangan administrator. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Layar terlalu kecil untuk menampilkan installer. @@ -1767,6 +1772,16 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Paritsi - + Install %1 <strong>alongside</strong> another operating system. Instal %1 <strong>berdampingan</strong> dengan sistem operasi lain. - + <strong>Erase</strong> disk and install %1. <strong>Hapus</strong> diska dan instal %1. - + <strong>Replace</strong> a partition with %1. <strong>Ganti</strong> partisi dengan %1. - + <strong>Manual</strong> partitioning. Partisi <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on 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 instal %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Ganti</strong> partisi pada diska <strong>%2</strong> (%3) dengan %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Partisi Manual</strong> pada diska <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Saat ini: - + After: Sesudah: - + No EFI system partition configured Tiada partisi sistem EFI terkonfigurasi - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Bendera partisi sistem EFI tidak disetel - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Partisi boot tidak dienkripsi - + 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. Sebuah partisi tersendiri telah terset bersama dengan sebuah partisi root terenkripsi, tapi partisi boot tidak terenkripsi.<br/><br/>Ada kekhawatiran keamanan dengan jenis setup ini, karena file sistem penting tetap pada partisi tak terenkripsi.<br/>Kamu bisa melanjutkan jika kamu menghendaki, tapi filesystem unlocking akan terjadi nanti selama memulai sistem.<br/>Untuk mengenkripsi partisi boot, pergi mundur dan menciptakannya ulang, memilih <strong>Encrypt</strong> di jendela penciptaan partisi. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,14 +2686,14 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. ProcessResult - + There was no output from the command. Tidak ada keluaran dari perintah. - + Output: @@ -2674,52 +2702,52 @@ Keluaran: - + External command crashed. Perintah eksternal rusak. - + Command <i>%1</i> crashed. Perintah <i>%1</i> mogok. - + External command failed to start. Perintah eksternal gagal dimulai - + Command <i>%1</i> failed to start. Perintah <i>%1</i> gagal dimulai. - + Internal error when starting command. Terjadi kesalahan internal saat menjalankan perintah. - + Bad parameters for process job call. Parameter buruk untuk memproses panggilan tugas, - + External command failed to finish. Perintah eksternal gagal diselesaikan . - + Command <i>%1</i> failed to finish in %2 seconds. Perintah <i>%1</i> gagal untuk diselesaikan dalam %2 detik. - + External command finished with errors. Perintah eksternal diselesaikan dengan kesalahan . - + Command <i>%1</i> finished with exit code %2. Perintah <i>%1</i> diselesaikan dengan kode keluar %2. @@ -2727,32 +2755,27 @@ Keluaran: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown tidak diketahui: - + extended extended - + unformatted tidak terformat: - + swap swap @@ -2806,6 +2829,15 @@ Keluaran: Ruang tidak terpartisi atau tidak diketahui tabel partisinya + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2841,73 +2873,88 @@ Keluaran: Isian - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Pilih tempat instalasi %1.<br/><font color="red">Peringatan: </font>hal ini akan menghapus semua berkas di partisi terpilih. - + The selected item does not appear to be a valid partition. Item yang dipilih tidak tampak seperti partisi yang valid. - + %1 cannot be installed on empty space. Please select an existing partition. %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 diinstal pada Partisi Extended. Mohon pilih Partisi Primary atau Logical yang tersedia. - + %1 cannot be installed on this partition. %1 tidak dapat diinstal di partisi ini. - + Data partition (%1) Partisi data (%1) - + Unknown system partition (%1) Partisi sistem tidak dikenal (%1) - + %1 system partition (%2) Partisi sistem %1 (%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>%4</strong><br/><br/>Partisi %1 teralu kecil untuk %2. Mohon pilih partisi dengan kapasitas minimal %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>%2</strong><br/><br/>Tidak ditemui adanya Partisi EFI pada sistem ini. Mohon kembali dan gunakan Pemartisi Manual untuk 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. <strong>%3</strong><br/><br/>%1 akan diinstal pada %2.<br/><font color="red">Peringatan: </font>seluruh data %2 akan hilang. - + The EFI system partition at %1 will be used for starting %2. Partisi EFI pada %1 akan digunakan untuk memulai %2. - + EFI system partition: Partisi sistem EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3030,12 +3077,12 @@ Keluaran: ResultsListDialog - + For best results, please ensure that this computer: Untuk hasil terbaik, mohon pastikan bahwa komputer ini: - + System requirements Kebutuhan sistem @@ -3043,29 +3090,29 @@ Keluaran: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Komputer ini tidak memenuhi syarat minimum untuk memasang %1. Installer tidak dapat dilanjutkan. <a href=" - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Komputer ini tidak memenuhi beberapa syarat yang dianjurkan untuk memasang %1. Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. - + This program will ask you some questions and set up %2 on your computer. Program ini akan mengajukan beberapa pertanyaan dan menyetel %2 pada komputer Anda. @@ -3348,51 +3395,80 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. TrackingInstallJob - + Installation feedback Umpan balik instalasi. - + Sending installation feedback. Mengirim umpan balik installasi. - + Internal error in install-tracking. Galat intern di pelacakan-instalasi. - + HTTP request timed out. Permintaan waktu HTTP habis. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Mesin umpan balik - + Configuring machine feedback. Mengkonfigurasi mesin umpan balik. - - + + Error in machine feedback configuration. Galat di konfigurasi mesin umpan balik. - + Could not configure machine feedback correctly, script error %1. Tidak dapat mengkonfigurasi mesin umpan balik dengan benar, naskah galat %1 - + Could not configure machine feedback correctly, Calamares error %1. Tidak dapat mengkonfigurasi mesin umpan balik dengan benar, Calamares galat %1. @@ -3411,8 +3487,8 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. - <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 instalasi Anda. </p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.<html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klik disini untuk informasi lebih lanjut tentang umpan balik pengguna </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. - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - 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 send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - 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 instalasi, piranti keras dan aplikasi Anda, ke %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Dengan memilih ini anda akan<b>secara teratur</b> mengirim informasi tentang instalasi, piranti keras, aplikasi dan pola pemakaian Anda, ke %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Umpan balik @@ -3629,42 +3705,42 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.&Catatan rilis - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Selamat datang di Calamares installer untuk %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Selamat datang di installer %1.</h1> - + %1 support Dukungan %1 - + About %1 setup - + About %1 installer Tentang installer %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3672,7 +3748,7 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. WelcomeQmlViewStep - + Welcome Selamat Datang @@ -3680,7 +3756,7 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. WelcomeViewStep - + Welcome Selamat Datang @@ -3709,6 +3785,26 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3754,6 +3850,24 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3805,27 +3919,27 @@ Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_is.ts b/lang/calamares_is.ts index 136e66882..81316b92d 100644 --- a/lang/calamares_is.ts +++ b/lang/calamares_is.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Setja upp - + Install Setja upp @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Verk mistókst (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Búið @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Keyri skipun %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Keyri %1 aðgerð. - + Bad working directory path Röng slóð á vinnumöppu - + Working directory %1 for python job %2 is not readable. Vinnslumappa %1 fyrir python-verkið %2 er ekki lesanleg. - + Bad main script file Röng aðal-skriftuskrá - + Main script file %1 for python job %2 is not readable. Aðal-skriftuskrá %1 fyrir python-verkið %2 er ekki lesanleg. - + Boost.Python error in job "%1". Boost.Python villa í verkinu "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Já - + &No &Nei @@ -314,108 +319,108 @@ - + Continue with setup? Halda áfram með uppsetningu? - + Continue with installation? Halda áfram með uppsetningu? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 uppsetningarforritið er um það bil að gera breytingar á diskinum til að setja upp %2.<br/><strong>Þú munt ekki geta afturkallað þessar breytingar.</strong> - + &Set up now &Setja upp núna - + &Install now Setja &inn núna - + Go &back Fara til &baka - + &Set up &Setja upp - + &Install &Setja upp - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Uppsetning er lokið. Lokaðu uppsetningarforritinu. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Hætta við uppsetningu ánþess að breyta kerfinu. - + &Next &Næst - + &Back &Til baka - + &Done &Búið - + &Cancel &Hætta við - + Cancel setup? Hætta við uppsetningu? - + Cancel installation? Hætta við uppsetningu? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Viltu virkilega að hætta við núverandi uppsetningarferli? @@ -425,22 +430,22 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CalamaresPython::Helper - + Unknown exception type Óþekkt tegund fráviks - + unparseable Python error óþáttanleg Python villa - + unparseable Python traceback óþáttanleg Python reki - + Unfetchable Python error. Ósækjanleg Python villa. @@ -457,32 +462,32 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CalamaresWindow - + Show debug information Birta villuleitarupplýsingar - + &Back &Til baka - + &Next &Næst - + &Cancel &Hætta við - + %1 Setup Program - + %1 Installer %1 uppsetningarforrit @@ -679,18 +684,18 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CommandList - - + + Could not run command. Gat ekki keyrt skipun. - + 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. @@ -743,49 +748,49 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Þessi tölva uppfyllir ekki lágmarkskröfur um uppsetningu %1.<br/>Uppsetningin getur ekki haldið áfram. <a href="#details">Upplýsingar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Þessi tölva uppfyllir ekki lágmarkskröfur um uppsetningu %1.<br/>Uppsetningin getur haldið áfram, en sumir eiginleikar gætu verið óvirk. - + This program will ask you some questions and set up %2 on your computer. Þetta forrit mun spyrja þig nokkurra spurninga og setja upp %2 á tölvunni þinni. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Velkomin til Calamares uppsetningarforritið fyrir %1</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Velkomin í %1 uppsetninguna.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Velkomin til Calamares uppsetningar fyrir %1</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Velkomin í %1 uppsetningarforritið.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. FillGlobalStorageJob - + Set partition information Setja upplýsingar um disksneið - + Install %1 on <strong>new</strong> %2 system partition. Setja upp %1 á <strong>nýja</strong> %2 disk sneiðingu. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Setja upp <strong>nýtt</strong> %2 snið með tengipunkti <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Setja upp %2 á %3 disk sneiðingu <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Setja upp %3 snið <strong>%1</strong> með tengipunkti <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Setja ræsistjórann upp á <strong>%1</strong>. - + Setting up mount points. Set upp tengipunkta. @@ -1270,32 +1275,32 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. &Endurræsa núna - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Allt klárt.</h1><br/>%1 hefur verið sett upp á tölvunni þinni.<br/>Þú getur nú endurræst í nýja kerfið, eða halda áfram að nota %2 Lifandi umhverfi. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1303,27 +1308,27 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. FinishedViewStep - + Finish Ljúka - + Setup Complete Uppsetningu lokið - + Installation Complete Uppsetningu lokið - + The setup of %1 is complete. Uppsetningu á %1 er lokið. - + The installation of %1 is complete. Uppsetningu á %1 er lokið. @@ -1354,72 +1359,72 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source er í sambandi við aflgjafa - + The system is not plugged in to a power source. Kerfið er ekki í sambandi við aflgjafa. - + is connected to the Internet er tengd við Internetið - + The system is not connected to the Internet. Kerfið er ekki tengd við internetið. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Uppsetningarforritið er ekki keyrandi með kerfisstjóraheimildum. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Skjárinn er of lítill til að birta uppsetningarforritið. @@ -1767,6 +1772,16 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Disksneiðar - + Install %1 <strong>alongside</strong> another operating system. Setja upp %1 <strong>ásamt</strong> ásamt öðru stýrikerfi. - + <strong>Erase</strong> disk and install %1. <strong>Eyða</strong> disk og setja upp %1. - + <strong>Replace</strong> a partition with %1. <strong>Skipta út</strong> disksneið með %1. - + <strong>Manual</strong> partitioning. <strong>Handvirk</strong> disksneiðaskipting. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Uppsetning %1 <strong>með</strong> öðru stýrikerfi á disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Eyða</strong> disk <strong>%2</strong> (%3) og setja upp %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Skipta út</strong> disksneið á diski <strong>%2</strong> (%3) með %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Handvirk</strong> disksneiðaskipting á diski <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Diskur <strong>%1</strong> (%2) - + Current: Núverandi: - + After: Eftir: - + No EFI system partition configured Ekkert EFI kerfisdisksneið stillt - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,65 +2686,65 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. 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. @@ -2724,32 +2752,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown óþekkt - + extended útvíkkuð - + unformatted ekki forsniðin - + swap swap diskminni @@ -2803,6 +2826,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2838,73 +2870,88 @@ Output: Eyðublað - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Veldu hvar á að setja upp %1.<br/><font color="red">Aðvörun: </font>þetta mun eyða öllum skrám á valinni disksneið. - + The selected item does not appear to be a valid partition. Valið atriði virðist ekki vera gild disksneið. - + %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. %1 er hægt að setja upp á þessari disksneið. - + Data partition (%1) Gagnadisksneið (%1) - + Unknown system partition (%1) Óþekkt kerfisdisksneið (%1) - + %1 system partition (%2) %1 kerfisdisksneið (%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>%4</strong><br/><br/>Disksneið %1 er of lítil fyrir %2. Vinsamlegast veldu disksneið með að lámark %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>%2</strong><br/><br/>EFI kerfisdisksneið er hvergi að finna á þessu kerfi. Vinsamlegast farðu til baka og notaðu handvirka skiptingu til að setja upp %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. <strong>%3</strong><br/><br/>%1 mun vera sett upp á %2.<br/><font color="red">Aðvörun: </font>öll gögn á disksneið %2 mun verða eytt. - + The EFI system partition at %1 will be used for starting %2. EFI kerfis stýring á %1 mun vera notuð til að byrja %2. - + EFI system partition: EFI kerfisdisksneið: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3027,12 +3074,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Fyrir bestu niðurstöður, skaltu tryggja að þessi tölva: - + System requirements Kerfiskröfur @@ -3040,27 +3087,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Þessi tölva uppfyllir ekki lágmarkskröfur um uppsetningu %1.<br/>Uppsetningin getur ekki haldið áfram. <a href="#details">Upplýsingar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Þessi tölva uppfyllir ekki lágmarkskröfur um uppsetningu %1.<br/>Uppsetningin getur haldið áfram, en sumir eiginleikar gætu verið óvirk. - + This program will ask you some questions and set up %2 on your computer. Þetta forrit mun spyrja þig nokkurra spurninga og setja upp %2 á tölvunni þinni. @@ -3343,51 +3390,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3406,7 +3482,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3415,30 +3491,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3624,42 +3700,42 @@ Output: &Um útgáfu - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Velkomin til Calamares uppsetningarforritið fyrir %1</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Velkomin í %1 uppsetninguna.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Velkomin til Calamares uppsetningar fyrir %1</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Velkomin í %1 uppsetningarforritið.</h1> - + %1 support %1 stuðningur - + About %1 setup Um %1 uppsetninguna - + About %1 installer Um %1 uppsetningarforrrit - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3667,7 +3743,7 @@ Output: WelcomeQmlViewStep - + Welcome Velkomin(n) @@ -3675,7 +3751,7 @@ Output: WelcomeViewStep - + Welcome Velkomin(n) @@ -3704,6 +3780,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3749,6 +3845,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3800,27 +3914,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index 2f8a26f6a..3a36cc2a8 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Impostazione - + Install Installa @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Operazione fallita (%1) - + Programmed job failure was explicitly requested. Il fallimento dell'operazione programmata è stato richiesto esplicitamente. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Fatto @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Operazione d'esempio (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Esegui il comando '%1' nel sistema di destinazione - + Run command '%1'. Esegui il comando '1%'. - + Running command %1 %2 Comando in esecuzione %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Operazione %1 in esecuzione. - + Bad working directory path Il percorso della cartella corrente non è corretto - + Working directory %1 for python job %2 is not readable. La cartella corrente %1 per l'attività di Python %2 non è accessibile. - + Bad main script file File dello script principale non valido - + Main script file %1 for python job %2 is not readable. Il file principale dello script %1 per l'attività di python %2 non è accessibile. - + Boost.Python error in job "%1". Errore da Boost.Python nell'operazione "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Il controllo dei requisiti per il modulo <i>%1</i> è completo. + - + Waiting for %n module(s). In attesa del(i) modulo(i) %n. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n secondo) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Il controllo dei requisiti di sistema è completo. @@ -273,13 +278,13 @@ - + &Yes &Si - + &No &No @@ -314,108 +319,108 @@ <br/>I seguenti moduli non possono essere caricati: - + Continue with setup? Procedere con la configurazione? - + Continue with installation? Continuare l'installazione? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Il programma d'installazione %1 sta per modificare il disco di per installare %2. Non sarà possibile annullare queste modifiche. - + 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> Il programma d'installazione %1 sta per eseguire delle modifiche al tuo disco per poter installare %2.<br/><strong> Non sarà possibile annullare tali modifiche.</strong> - + &Set up now &Installa adesso - + &Install now &Installa adesso - + Go &back &Indietro - + &Set up &Installazione - + &Install &Installa - + Setup is complete. Close the setup program. Installazione completata. Chiudere il programma d'installazione. - + The installation is complete. Close the installer. L'installazione è terminata. Chiudere il programma d'installazione. - + Cancel setup without changing the system. Annulla l'installazione senza modificare il sistema. - + Cancel installation without changing the system. Annullare l'installazione senza modificare il sistema. - + &Next &Avanti - + &Back &Indietro - + &Done &Fatto - + &Cancel &Annulla - + Cancel setup? Annullare l'installazione? - + Cancel installation? Annullare l'installazione? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Si vuole annullare veramente il processo di installazione? Il programma d'installazione verrà terminato e tutti i cambiamenti saranno persi. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Si vuole davvero annullare l'installazione in corso? @@ -425,22 +430,22 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse CalamaresPython::Helper - + Unknown exception type Tipo di eccezione sconosciuto - + unparseable Python error Errore Python non definibile - + unparseable Python traceback Traceback Python non definibile - + Unfetchable Python error. Errore di Python non definibile. @@ -458,32 +463,32 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse CalamaresWindow - + Show debug information Mostra le informazioni di debug - + &Back &Indietro - + &Next &Avanti - + &Cancel &Annulla - + %1 Setup Program %1 Programma d'installazione - + %1 Installer %1 Programma di installazione @@ -680,18 +685,18 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse CommandList - - + + Could not run command. Impossibile eseguire il comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Il comando viene eseguito nell'ambiente host e richiede il percorso di root ma nessun rootMountPoint (punto di montaggio di root) è definito. - + The command needs to know the user's name, but no username is defined. Il comando richiede il nome utente, nessun nome utente definito. @@ -744,49 +749,49 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Installazione di rete. (Disabilitata: impossibile recuperare le liste dei pacchetti, controllare la connessione di rete) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Questo computer non soddisfa i requisiti minimi per la configurazione di %1.<br/>La configurazione non può continuare. <a href="#details">Dettagli...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Questo computer non soddisfa i requisiti minimi per installare %1. <br/>L'installazione non può continuare. <a href="#details">Dettagli...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Questo computer non soddisfa alcuni requisiti raccomandati per la configurazione di %1.<br/>La configurazione può continuare ma alcune funzionalità potrebbero essere disabilitate. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Questo computer non soddisfa alcuni requisiti consigliati per l'installazione di %1.<br/>L'installazione può continuare ma alcune funzionalità potrebbero non essere disponibili. - + This program will ask you some questions and set up %2 on your computer. Questo programma chiederà alcune informazioni e configurerà %2 sul computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Benvenuto nel programma di configurazione Calamares per %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Benvenuto nella configurazione di %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Benvenuti nel programma d'installazione Calamares per %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Benvenuto nel programma d'installazione di %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1223,37 +1228,37 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse FillGlobalStorageJob - + Set partition information Impostare informazioni partizione - + Install %1 on <strong>new</strong> %2 system partition. Installare %1 sulla <strong>nuova</strong> partizione di sistema %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Impostare la <strong>nuova</strong> %2 partizione con punto di mount <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Installare %2 sulla partizione di sistema %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Impostare la partizione %3 <strong>%1</strong> con punto di montaggio <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Installare il boot loader su <strong>%1</strong>. - + Setting up mount points. Impostazione dei punti di mount. @@ -1271,32 +1276,32 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse &Riavviare ora - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Tutto eseguito.</h1><br/>%1 è stato configurato sul tuo computer.<br/>Adesso puoi iniziare a utilizzare il tuo nuovo sistema. - + <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 setup program.</p></body></html> <html><head/><body><p>Quando questa casella è selezionata, il tuo computer verrà riavviato immediatamente quando clicchi su <span style="font-style:italic;">Finito</span> oppure chiudi il programma di setup.</p></body></html> - + <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>Tutto fatto.</ h1><br/>%1 è stato installato sul computer.<br/>Ora è possibile riavviare il sistema, o continuare a utilizzare l'ambiente Live di %2 . - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Quando questa casella è selezionata, il tuo sistema si riavvierà immediatamente quando clicchi su <span style="font-style:italic;">Fatto</span> o chiudi il programma di installazione.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Installazione fallita</h1><br/>%1 non è stato installato sul tuo computer.<br/>Il messaggio di errore è: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installazione Fallita</h1><br/>%1 non è stato installato sul tuo computer.<br/>Il messaggio di errore è: %2 @@ -1304,27 +1309,27 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse FinishedViewStep - + Finish Termina - + Setup Complete Installazione completata - + Installation Complete Installazione completata - + The setup of %1 is complete. L'installazione di %1 è completa - + The installation of %1 is complete. L'installazione di %1 è completata. @@ -1355,72 +1360,72 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse GeneralRequirements - + has at least %1 GiB available drive space ha almeno %1 GiB di spazio disponibile - + There is not enough drive space. At least %1 GiB is required. Non c'è abbastanza spazio sul disco. E' richiesto almeno %1 GiB - + has at least %1 GiB working memory ha almeno %1 GiB di memoria - + The system does not have enough working memory. At least %1 GiB is required. Il sistema non ha abbastanza memoria. E' richiesto almeno %1 GiB - + is plugged in to a power source è collegato a una presa di alimentazione - + The system is not plugged in to a power source. Il sistema non è collegato a una presa di alimentazione. - + is connected to the Internet è connesso a Internet - + The system is not connected to the Internet. Il sistema non è connesso a internet. - + is running the installer as an administrator (root) sta eseguendo il programma di installazione come amministratore (root) - + The setup program is not running with administrator rights. Il programma di installazione non è stato lanciato con i permessi di amministratore. - + The installer is not running with administrator rights. Il programma di installazione non è stato avviato con i diritti di amministrazione. - + has a screen large enough to show the whole installer ha uno schermo abbastanza grande da mostrare l'intero programma di installazione - + The screen is too small to display the setup program. Lo schermo è troppo piccolo per mostrare il programma di installazione - + The screen is too small to display the installer. Schermo troppo piccolo per mostrare il programma d'installazione. @@ -1768,6 +1773,16 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Non è impostato alcun punto di montaggio root per MachineId + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Impostare l'Identificatore del Lotto OEM a <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Partizioni - + Install %1 <strong>alongside</strong> another operating system. Installare %1 <strong>a fianco</strong> di un altro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Cancellare</strong> il disco e installare %1. - + <strong>Replace</strong> a partition with %1. <strong>Sostituire</strong> una partizione con %1. - + <strong>Manual</strong> partitioning. Partizionamento <strong>manuale</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installare %1 <strong>a fianco</strong> di un altro sistema operativo sul disco<strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Cancellare</strong> il disco <strong>%2</strong> (%3) e installa %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Sostituire</strong> una partizione sul disco <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Partizionamento <strong>manuale</strong> sul disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Corrente: - + After: Dopo: - + No EFI system partition configured Nessuna partizione EFI di sistema è configurata - + 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>%3</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. Una partizione EFI è necessaria per avviare %1.<br/><br/> Per configurare una partizione EFI, tornare indietro e selezionare o creare un filesystem FAT32 con il parametro<strong>%3</strong>abilitato e punto di montaggio <strong>%2</strong>. <br/><br/>Si può continuare senza impostare una partizione EFI ma il sistema potrebbe non avviarsi correttamente. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Una partizione EFI è necessaria per avviare %1.<br/><br/> Una partizione è stata configurata con punto di montaggio <strong>%2</strong> ma il suo parametro <strong>%3</strong> non è impostato.<br/>Per impostare il flag, tornare indietro e modificare la partizione.<br/><br/>Si può continuare senza impostare il parametro ma il sistema potrebbe non avviarsi correttamente. - + EFI system partition flag not set Il flag della partizione EFI di sistema non è impostato. - + Option to use GPT on BIOS Opzione per usare GPT su BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Una tabella partizioni GPT è la migliore opzione per tutti i sistemi. Comunque il programma d'installazione supporta anche la tabella di tipo BIOS. <br/><br/>Per configurare una tabella partizioni GPT su BIOS (se non già configurata) tornare indietro e impostare la tabella partizioni a GPT e creare una partizione non formattata di 8 MB con opzione <strong>bios_grub</strong> abilitata.<br/><br/>Una partizione non formattata di 8 MB è necessaria per avviare %1 su un sistema BIOS con GPT. - + Boot partition not encrypted Partizione di avvio non criptata - + 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. E' stata configurata una partizione di avvio non criptata assieme ad una partizione root criptata. <br/><br/>Ci sono problemi di sicurezza con questo tipo di configurazione perchè dei file di sistema importanti sono tenuti su una partizione non criptata.<br/>Si può continuare se lo si desidera ma dopo ci sarà lo sblocco del file system, durante l'avvio del sistema.<br/>Per criptare la partizione di avvio, tornare indietro e ricrearla, selezionando <strong>Criptare</strong> nella finestra di creazione della partizione. - + has at least one disk device available. ha almeno un'unità disco disponibile. - + There are no partitions to install on. Non ci sono partizioni su cui installare. @@ -2659,13 +2687,13 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse ProcessResult - + There was no output from the command. Non c'era output dal comando. - + Output: @@ -2674,53 +2702,53 @@ Output: - + External command crashed. Il comando esterno si è arrestato. - + Command <i>%1</i> crashed. Il comando <i>%1</i> si è arrestato. - + External command failed to start. Il comando esterno non si è avviato. - + Command <i>%1</i> failed to start. Il comando %1 non si è avviato. - + Internal error when starting command. Errore interno all'avvio del comando. - + Bad parameters for process job call. Parametri errati per elaborare la chiamata al job. - + External command failed to finish. Il comando esterno non è stato portato a termine. - + Command <i>%1</i> failed to finish in %2 seconds. Il comando <i>%1</i> non è stato portato a termine in %2 secondi. - + External command finished with errors. Il comando esterno è terminato con errori. - + Command <i>%1</i> finished with exit code %2. Il comando <i>%1</i> è terminato con codice di uscita %2. @@ -2728,32 +2756,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Il controllo dei requisiti per il modulo <i>%1</i> è completo. - - - + unknown sconosciuto - + extended estesa - + unformatted non formattata - + swap swap @@ -2807,6 +2830,15 @@ Output: Spazio non partizionato o tabella delle partizioni sconosciuta + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2842,73 +2874,88 @@ Output: Modulo - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Selezionare dove installare %1.<br/><font color="red">Attenzione: </font>questo eliminerà tutti i file dalla partizione selezionata. - + The selected item does not appear to be a valid partition. L'elemento selezionato non sembra essere una partizione valida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 non può essere installato su spazio non partizionato. Si prega di selezionare una partizione esistente. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 non può essere installato su una partizione estesa. Si prega di selezionare una partizione primaria o logica esistente. - + %1 cannot be installed on this partition. %1 non può essere installato su questa partizione. - + Data partition (%1) Partizione dati (%1) - + Unknown system partition (%1) Partizione di sistema sconosciuta (%1) - + %1 system partition (%2) %1 partizione di sistema (%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>%4</strong><br/><br/>La partizione %1 è troppo piccola per %2. Si prega di selezionare una partizione con capacità di almeno %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>%2</strong><br/><br/>Nessuna partizione EFI di sistema rilevata. Si prega di tornare indietro e usare il partizionamento manuale per configurare %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. <strong>%3</strong><br/><br/>%1 sarà installato su %2.<br/><font color="red">Attenzione: </font>tutti i dati sulla partizione %2 saranno persi. - + The EFI system partition at %1 will be used for starting %2. La partizione EFI di sistema a %1 sarà usata per avviare %2. - + EFI system partition: Partizione EFI di sistema: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3031,12 +3078,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Per ottenere prestazioni ottimali, assicurarsi che questo computer: - + System requirements Requisiti di sistema @@ -3044,27 +3091,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Questo computer non soddisfa i requisiti minimi per l'installazione di %1.<br/>L'installazione non può continuare. <a href="#details">Dettagli...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Questo computer non soddisfa i requisiti minimi per installare %1. <br/>L'installazione non può proseguire. <a href="#details">Dettagli...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Questo computer non soddisfa alcuni requisiti raccomandati per l'installazione di %1.<br/>L'installazione può continuare, ma alcune funzionalità potrebbero essere disabilitate. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Questo computer non soddisfa alcuni requisiti consigliati per l'installazione di %1. <br/>L'installazione può proseguire ma alcune funzionalità potrebbero non essere disponibili. - + This program will ask you some questions and set up %2 on your computer. Questo programma chiederà alcune informazioni e configurerà %2 sul computer. @@ -3347,51 +3394,80 @@ Output: TrackingInstallJob - + Installation feedback Valutazione dell'installazione - + Sending installation feedback. Invio della valutazione dell'installazione. - + Internal error in install-tracking. Errore interno in install-tracking. - + HTTP request timed out. La richiesta HTTP è scaduta. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + - + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Valutazione automatica - + Configuring machine feedback. Configurazione in corso della valutazione automatica. - - + + Error in machine feedback configuration. Errore nella configurazione della valutazione automatica. - + Could not configure machine feedback correctly, script error %1. Non è stato possibile configurare correttamente la valutazione automatica, errore dello script %1. - + Could not configure machine feedback correctly, Calamares error %1. Non è stato possibile configurare correttamente la valutazione automatica, errore di Calamares %1. @@ -3410,8 +3486,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Selezionando questo, non verrà inviata <span style=" font-weight:600;">alcuna informazione</span> relativa alla propria installazione.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3419,30 +3495,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Cliccare qui per maggiori informazioni sulla valutazione degli utenti</span></a></p></body></html> - - Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - Il tracciamento dell'installazione aiuta %1 a capire quanti utenti vengono serviti, su quale hardware si installa %1 e (con le ultime due opzioni sotto), a ricevere continue informazioni sulle applicazioni preferite. Per vedere cosa verrà inviato, cliccare sull'icona di aiuto accanto ad ogni area. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Selezionando questa opzione saranno inviate informazioni relative all'installazione e all'hardware. I dati saranno <b>inviati solo una volta</b> al termine dell'installazione. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Selezionando questa opzione saranno inviate <b>periodicamente</b> informazioni sull'installazione, l'hardware e le applicazioni, a %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Selezionando questa opzione verranno inviate <b>regolarmente</b> informazioni sull'installazione, l'hardware, le applicazioni e i modi di utilizzo, a %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Valutazione @@ -3628,42 +3704,42 @@ Output: &Note di rilascio - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Benvenuto nel programma di installazione Calamares di %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Benvenuto nell'installazione di %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Benvenuti nel programma di installazione Calamares per %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Benvenuto nel programma d'installazione di %1.</h1> - + %1 support supporto %1 - + About %1 setup Informazioni sul sistema di configurazione %1 - + About %1 installer Informazioni sul programma di installazione %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>per %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Grazie al <a href="https://calamares.io/team/">Team di Calamares </a> ed al <a href="https://www.transifex.com/calamares/calamares/">team dei traduttori di Calamares</a>.<br/><br/>Lo sviluppo di <a href="https://calamares.io/">Calamares</a> è sponsorizzato da <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3671,7 +3747,7 @@ Output: WelcomeQmlViewStep - + Welcome Benvenuti @@ -3679,7 +3755,7 @@ Output: WelcomeViewStep - + Welcome Benvenuti @@ -3719,6 +3795,26 @@ Output: Indietro + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Indietro + + keyboardq @@ -3764,6 +3860,24 @@ Output: Provare la tastiera + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3837,27 +3951,27 @@ Output: <p> - + About Informazioni su - + Support Supporto - + Known issues Problemi conosciuti - + Release notes Note di rilascio - + Donate Donazioni diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index 61f7d3a48..0c8d6a742 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up セットアップ - + Install インストール @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) ジョブに失敗 (%1) - + Programmed job failure was explicitly requested. 要求されたジョブは失敗しました。 @@ -143,7 +143,7 @@ Calamares::JobThread - + Done 完了 @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) ジョブの例 (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. ターゲットシステムでコマンド '%1' を実行。 - + Run command '%1'. コマンド '%1' を実行。 - + Running command %1 %2 コマンド %1 %2 を実行しています @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 操作を実行しています。 - + Bad working directory path 不正なワーキングディレクトリパス - + Working directory %1 for python job %2 is not readable. python ジョブ %2 において作業ディレクトリ %1 が読み込めません。 - + Bad main script file 不正なメインスクリプトファイル - + Main script file %1 for python job %2 is not readable. python ジョブ %2 におけるメインスクリプトファイル %1 が読み込めません。 - + Boost.Python error in job "%1". ジョブ "%1" での Boost.Python エラー。 @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + モジュール <i>%1</i> に必要なパッケージの確認が完了しました。 + - + Waiting for %n module(s). %n 個のモジュールを待機しています。 - + (%n second(s)) (%n 秒(s)) - + System-requirements checking is complete. 要求されるシステムの確認を終了しました。 @@ -271,13 +276,13 @@ - + &Yes はい (&Y) - + &No いいえ (&N) @@ -312,109 +317,109 @@ <br/>以下のモジュールがロードできませんでした。: - + Continue with setup? セットアップを続行しますか? - + Continue with installation? インストールを続行しますか? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 のセットアッププログラムは %2 のセットアップのためディスクの内容を変更します。<br/><strong>これらの変更は取り消しできません。</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 インストーラーは %2 をインストールするためディスクの内容を変更しようとしています。<br/><strong>これらの変更は取り消せません。</strong> - + &Set up now セットアップしています (&S) - + &Install now 今すぐインストール (&I) - + Go &back 戻る (&B) - + &Set up セットアップ (&S) - + &Install インストール (&I) - + Setup is complete. Close the setup program. セットアップが完了しました。プログラムを閉じます。 - + The installation is complete. Close the installer. インストールが完了しました。インストーラーを閉じます。 - + Cancel setup without changing the system. システムを変更することなくセットアップを中断します。 - + Cancel installation without changing the system. システムを変更しないでインストールを中止します。 - + &Next 次へ (&N) - + &Back 戻る (&B) - + &Done 実行 (&D) - + &Cancel 中止 (&C) - + Cancel setup? セットアップを中止しますか? - + Cancel installation? インストールを中止しますか? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. 本当に現在のセットアップのプロセスを中止しますか? すべての変更が取り消されます。 - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 本当に現在の作業を中止しますか? @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type 不明な例外型 - + unparseable Python error 解析不能なPythonエラー - + unparseable Python traceback 解析不能な Python トレースバック - + Unfetchable Python error. 取得不能なPythonエラー。 @@ -457,32 +462,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information デバッグ情報を表示 - + &Back 戻る (&B) - + &Next 次へ (&N) - + &Cancel 中止 (&C) - + %1 Setup Program %1 セットアッププログラム - + %1 Installer %1 インストーラー @@ -679,18 +684,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. コマンドを実行できませんでした。 - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. コマンドがホスト環境で実行される際、rootのパスの情報が必要になりますが、root のマウントポイントが定義されていません。 - + The command needs to know the user's name, but no username is defined. ユーザー名が必要ですが、定義されていません。 @@ -743,49 +748,49 @@ The installer will quit and all changes will be lost. ネットワークインストール。(無効: パッケージリストを取得できません。ネットワーク接続を確認してください。) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> このコンピュータは %1 をセットアップするための最低要件を満たしていません。<br/>セットアップは続行できません。 <a href="#details">詳細...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> このコンピュータは %1 をインストールするための最低要件を満たしていません。<br/>インストールは続行できません。<a href="#details">詳細...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. このコンピュータは、 %1 をセットアップするための推奨条件をいくつか満たしていません。<br/>インストールは続行しますが、一部の機能が無効になる場合があります。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. このコンピュータは、 %1 をインストールするための推奨条件をいくつか満たしていません。<br/>インストールは続行しますが、一部の機能が無効になる場合があります。 - + This program will ask you some questions and set up %2 on your computer. このプログラムはあなたにいくつか質問をして、コンピュータに %2 を設定します。 - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1 Calamares セットアッププログラムにようこそ</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>%1 のCalamaresセットアッププログラムへようこそ</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>%1 セットアップへようこそ</h1> + + <h1>Welcome to %1 setup</h1> + <h1>%1 のセットアップへようこそ</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1 Calamares インストーラーにようこそ</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>%1 のCalamaresインストーラーへようこそ</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>%1 インストーラーへようこそ。</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>%1 インストーラーへようこそ</h1> @@ -1222,37 +1227,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information パーティション情報の設定 - + Install %1 on <strong>new</strong> %2 system partition. <strong>新しい</strong> %2 システムパーティションに %1 をインストール。 - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. マウントポイント <strong>%1</strong> に<strong>新しく</strong> %2 パーティションをセットアップする。 - + Install %2 on %3 system partition <strong>%1</strong>. %3 システムパーティション <strong>%1</strong> に%2 をインストール。 - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. パーティション <strong>%1</strong> マウントポイント <strong>%2</strong> に %3 をセットアップする。 - + Install boot loader on <strong>%1</strong>. <strong>%1</strong> にブートローダーをインストール - + Setting up mount points. マウントポイントを設定する。 @@ -1270,32 +1275,32 @@ The installer will quit and all changes will be lost. 今すぐ再起動 (&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>すべて完了しました。</h1><br/>%1 はコンピュータにセットアップされました。<br/>今から新しいシステムを開始することができます。 - + <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 setup program.</p></body></html> <html><head/><body><p>このボックスをチェックすると、 <span style="font-style:italic;">実行</span>をクリックするかプログラムを閉じると直ちにシステムが再起動します。</p></body></html> - + <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>すべて完了しました。</h1><br/>%1 がコンピューターにインストールされました。<br/>再起動して新しいシステムを使用することもできますし、%2 ライブ環境の使用を続けることもできます。 - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>このボックスをチェックすると、 <span style="font-style:italic;">実行</span>をクリックするかインストーラーを閉じると直ちにシステムが再起動します。</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>セットアップに失敗しました。</h1><br/>%1 はコンピュータにセットアップされていません。<br/>エラーメッセージ: %2 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>インストールに失敗しました</h1><br/>%1 はコンピュータにインストールされませんでした。<br/>エラーメッセージ: %2. @@ -1303,28 +1308,28 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish 終了 - + Setup Complete セットアップが完了しました - + Installation Complete インストールが完了 - + The setup of %1 is complete. %1 のセットアップが完了しました。 - + The installation of %1 is complete. %1 のインストールは完了です。 @@ -1355,72 +1360,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space 利用可能な容量が少なくとも %1 GiB - + There is not enough drive space. At least %1 GiB is required. 空き容量が十分ではありません。少なくとも %1 GiB 必要です。 - + has at least %1 GiB working memory %1 GiB以降のメモリーがあります - + The system does not have enough working memory. At least %1 GiB is required. 十分なメモリがありません。少なくとも %1 GiB 必要です。 - + 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. システムはインターネットに接続されていません。 - + is running the installer as an administrator (root) は管理者(root)としてインストーラーを実行しています - + The setup program is not running with administrator rights. セットアッププログラムは管理者権限で実行されていません。 - + The installer is not running with administrator rights. インストーラーは管理者権限で実行されていません。 - + has a screen large enough to show the whole installer にはインストーラー全体を表示できる大きさの画面があります - + The screen is too small to display the setup program. セットアップを表示のは画面が小さすぎます。 - + The screen is too small to display the installer. インストーラーを表示するためには、画面が小さすぎます。 @@ -1768,6 +1773,19 @@ The installer will quit and all changes will be lost. マシンIDにルートマウントポイントが設定されていません。 + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + インストーラーがロケールとタイムゾーンの設定を提案できるように、 +マップ上の適切な場所を選択してください。 以下の推奨設定を調整できます。 +ドラッグして移動し、+ /-ボタンでズームインまたはズームアウトしてマップを検索するか、 +マウスのスクロールを使用してズームします。 + + NetInstallViewStep @@ -1906,6 +1924,19 @@ The installer will quit and all changes will be lost. OEMのバッチIDを <code>%1</code> に設定してください。 + + Offline + + + Timezone: %1 + タイムゾーン: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + タイムゾーンを選択できるようにするには、インターネットに接続していることを確認してください。接続したらインストーラーを再起動してください。以下の言語とロケールの設定を調整できます。 + + PWQ @@ -2493,107 +2524,107 @@ The installer will quit and all changes will be lost. パーティション - + Install %1 <strong>alongside</strong> another operating system. 他のオペレーティングシステムに<strong>共存して</strong> %1 をインストール。 - + <strong>Erase</strong> disk and install %1. ディスクを<strong>消去</strong>し %1 をインストール。 - + <strong>Replace</strong> a partition with %1. パーティションを %1 に<strong>置き換える。</strong> - + <strong>Manual</strong> partitioning. <strong>手動</strong>でパーティションを設定する。 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). ディスク <strong>%2</strong> (%3) 上ののオペレーティングシステムと<strong>共存</strong>して %1 をインストール。 - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. ディスク <strong>%2</strong> (%3) を<strong>消去して</strong> %1 をインストール。 - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. ディスク <strong>%2</strong> (%3) 上のパーティションを %1 に<strong>置き換える。</strong> - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). ディスク <strong>%1</strong> (%2) に <strong>手動で</strong>パーティショニングする。 - + Disk <strong>%1</strong> (%2) ディスク <strong>%1</strong> (%2) - + Current: 現在: - + After: 変更後: - + No EFI system partition configured EFI システムパーティションが設定されていません - + 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>%3</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. %1 を起動するには、EFIシステムパーティションが必要です。<br/> <br/> EFIシステムパーティションを設定するには、戻って、<strong>%3</strong> フラグを有効にしたFAT32ファイルシステムを選択または作成し、マウントポイントを <strong>%2</strong> にします。<br/> <br/>EFIシステムパーティションを設定せずに続行すると、システムが起動しない場合があります。 - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. %1 を起動するには、EFIシステムパーティションが必要です。<br/> <br/> パーティションはマウントポイント <strong>%2</strong> に設定されましたが、<strong>%3</strong> フラグが設定されていません。フラグを設定するには、戻ってパーティションを編集してください。フラグを設定せずに続行すると、システムが起動しない場合があります。 - + EFI system partition flag not set EFI システムパーティションのフラグが設定されていません - + Option to use GPT on BIOS BIOSでGPTを使用するためのオプション - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPTパーティションテーブルは、すべてのシステムに最適なオプションです。このインストーラーは、BIOSシステムのこのようなセットアップもサポートしています。<br/><br/>BIOSでGPTパーティションテーブルを設定するには(まだ行っていない場合)、前に戻ってパーティションテーブルをGPTに設定し、<strong>bios_grub</strong>フラグを有効にして 8 MB の未フォーマットのパーティションを作成します。GPTに設定したBIOSシステムで %1 を起動するには、未フォーマットの 8 MB パーティションが必要です。 - + 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. ブートパーティションは暗号化されたルートパーティションとともにセットアップされましたが、ブートパーティションは暗号化されていません。<br/><br/>重要なシステムファイルが暗号化されていないパーティションに残されているため、このようなセットアップは安全上の懸念があります。<br/>セットアップを続行することはできますが、後でシステムの起動中にファイルシステムが解除されるおそれがあります。<br/>ブートパーティションを暗号化させるには、前の画面に戻って、再度パーティションを作成し、パーティション作成ウィンドウ内で<strong>Encrypt</strong> (暗号化) を選択してください。 - + has at least one disk device available. 少なくとも1枚のディスクは使用可能。 - + There are no partitions to install on. インストールするパーティションがありません。 @@ -2659,14 +2690,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. コマンドから出力するものがありませんでした。 - + Output: @@ -2675,52 +2706,52 @@ Output: - + External command crashed. 外部コマンドがクラッシュしました。 - + Command <i>%1</i> crashed. コマンド <i>%1</i> がクラッシュしました。 - + External command failed to start. 外部コマンドの起動に失敗しました。 - + Command <i>%1</i> failed to start. コマンド <i>%1</i> の起動に失敗しました。 - + 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. コマンド<i>%1</i> %2 秒以内に終了することに失敗しました。 - + External command finished with errors. 外部のコマンドがエラーで停止しました。 - + Command <i>%1</i> finished with exit code %2. コマンド <i>%1</i> が終了コード %2 で終了しました。. @@ -2728,32 +2759,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - モジュール <i>%1</i> に必要なパッケージの確認が完了しました。 - - - + unknown 不明 - + extended 拡張 - + unformatted 未フォーマット - + swap スワップ @@ -2807,6 +2833,16 @@ Output: パーティションされていない領域または未知のパーティションテーブル + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>このコンピューターは %1 をセットアップするための推奨要件の一部を満たしていません。<br/> +セットアップは続行できますが、一部の機能が無効になる可能性があります。</p> + + RemoveUserJob @@ -2842,73 +2878,90 @@ Output: フォーム - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. %1 をインストールする場所を選択します。<br/><font color="red">警告: </font>選択したパーティション内のすべてのファイルが削除されます。 - + The selected item does not appear to be a valid partition. 選択した項目は有効なパーティションではないようです。 - + %1 cannot be installed on empty space. Please select an existing partition. %1 は空き領域にインストールすることはできません。既存のパーティションを選択してください。 - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 は拡張パーティションにインストールできません。既存のプライマリまたは論理パーティションを選択してください。 - + %1 cannot be installed on this partition. %1 はこのパーティションにインストールできません。 - + Data partition (%1) データパーティション (%1) - + Unknown system partition (%1) 不明なシステムパーティション (%1) - + %1 system partition (%2) %1 システムパーティション (%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>%4</strong><br/><br/>パーティション %1 は、%2 には小さすぎます。少なくとも %3 GB 以上のパーティションを選択してください。 - + <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>%2</strong><br/><br/>EFI システムパーティションがシステムに見つかりません。%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. <strong>%3</strong><br/><br/>%1 は %2 にインストールされます。<br/><font color="red">警告: </font>パーティション %2 のすべてのデータは失われます。 - + The EFI system partition at %1 will be used for starting %2. %1 上の EFI システムパーティションは %2 開始時に使用されます。 - + EFI system partition: EFI システムパーティション: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>このコンピューターは %1 をインストールするための最小要件を満たしていません。<br/> +インストールを続行できません。</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>このコンピューターは、%1をセットアップするための推奨要件の一部を満たしていません。<br/> +セットアップは続行できますが、一部の機能が無効になる可能性があります。</p> + + ResizeFSJob @@ -3031,12 +3084,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: 良好な結果を得るために、このコンピュータについて以下の項目を確認してください: - + System requirements システム要件 @@ -3044,27 +3097,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> このコンピュータは %1 をセットアップするための最低要件を満たしていません。<br/>セットアップは続行できません。 <a href="#details">詳細...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> このコンピュータは %1 をインストールするための最低要件を満たしていません。<br/>インストールは続行できません。<a href="#details">詳細...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. このコンピュータは、 %1 をセットアップするための推奨条件をいくつか満たしていません。<br/>インストールは続行しますが、一部の機能が無効になる場合があります。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. このコンピュータは、 %1 をインストールするための推奨条件をいくつか満たしていません。<br/>インストールは続行しますが、一部の機能が無効になる場合があります。 - + This program will ask you some questions and set up %2 on your computer. このプログラムはあなたにいくつか質問をして、コンピュータに %2 を設定します。 @@ -3347,51 +3400,80 @@ Output: TrackingInstallJob - + Installation feedback インストールのフィードバック - + Sending installation feedback. インストールのフィードバックを送信 - + Internal error in install-tracking. インストールトラッキング中の内部エラー - + HTTP request timed out. HTTPリクエストがタイムアウトしました。 - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + KDEのユーザーフィードバック + + + + Configuring KDE user feedback. + KDEのユーザーフィードバックを設定しています。 + + + + + Error in KDE user feedback configuration. + KDEのユーザーフィードバックの設定でエラー。 + - + + Could not configure KDE user feedback correctly, script error %1. + KDEのユーザーフィードバックを正しく設定できませんでした。スクリプトエラー %1。 + + + + Could not configure KDE user feedback correctly, Calamares error %1. + KDEのユーザーフィードバックを正しく設定できませんでした。Calamaresエラー %1。 + + + + TrackingMachineUpdateManagerJob + + Machine feedback マシンフィードバック - + Configuring machine feedback. マシンフィードバックの設定 - - + + Error in machine feedback configuration. マシンフィードバックの設定中のエラー - + Could not configure machine feedback correctly, script error %1. マシンフィードバックの設定が正確にできませんでした、スクリプトエラー %1。 - + Could not configure machine feedback correctly, Calamares error %1. マシンフィードバックの設定が正確にできませんでした、Calamares エラー %1。 @@ -3410,8 +3492,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>これを選択すると、インストール時の情報を <span style=" font-weight:600;">全く送信しなく</span> なります。</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>インストールに関する情報を <span style=" font-weight:600;">送信しない</span> 場合はここをクリック。</p></body></html> @@ -3419,30 +3501,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">ユーザーフィードバックについての詳しい情報については、ここをクリックしてください</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. - インストールトラッキングは %1 にとって、どれだけのユーザーが どのハードに %1 をインストールするのか (下記の2つのオプション)、どのようなアプリケーションが好まれているのかについての情報を把握することの補助を行っています。 どのような情報が送信されているのか確認したい場合は、以下の各エリアのヘルプのアイコンをクリックして下さい。 + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + 追跡することにより、%1 はインストールの頻度、インストールされているハードウェア、使用されているアプリケーションを確認できます。送信内容を確認するには、各エリアの横にあるヘルプアイコンをクリックしてください。 - - 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. - インストールやハードウェアの情報を送信します。この情報はインストール終了後 <b> 1回だけ送信されます</b> 。 + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + これを選択すると、インストールとハードウェアに関する情報が送信されます。この情報は、インストールの完了後に<b>1度だけ</b>送信されます。 - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - これを選択すると、インストール、ハードウェア、およびアプリケーションに関する情報を<b>定期的に</b> %1 に送信します。 + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + これを選択すると、<b>マシン</b>のインストール、ハードウェア、アプリケーションに関する情報が定期的に %1 に送信されます。 - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - これを選択すると、インストール、ハードウェア、アプリケーション、および使用パターンに関する情報を<b>毎回</b> %1 に送信します。 + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + これを選択すると、<b>ユーザーの</b>インストール、ハードウェア、アプリケーション、アプリケーションの使用パターンに関する情報が定期的に %1 に送信されます。 TrackingViewStep - + Feedback フィードバック @@ -3628,42 +3710,42 @@ Output: リリースノート (&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>%1 Calamares セットアッププログラムにようこそ</h1> - + <h1>Welcome to %1 setup.</h1> <h1>%1 セットアップへようこそ</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>%1 Calamares インストーラーにようこそ</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>%1 インストーラーへようこそ。</h1> - + %1 support %1 サポート - + About %1 setup %1 セットアップについて - + About %1 installer %1 インストーラーについて - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3671,7 +3753,7 @@ Output: WelcomeQmlViewStep - + Welcome ようこそ @@ -3679,7 +3761,7 @@ Output: WelcomeViewStep - + Welcome ようこそ @@ -3719,6 +3801,28 @@ Output: 戻る + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>言語</h1> </br> +システムロケールの設定は、一部のコマンドラインユーザーインターフェイスの言語と文字セットに影響します。現在の設定は <strong>%1</strong> です。 + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>ロケール</h1> </br> +システムロケールの設定は、一部のコマンドラインユーザーインターフェイスの言語と文字セットに影響します。現在の設定は <strong>%1</strong> です。 + + + + Back + 戻る + + keyboardq @@ -3764,6 +3868,24 @@ Output: キーボードをテストしてください + + localeq + + + System language set to %1 + システム言語が %1 に設定されました + + + + Numbers and dates locale set to %1 + 数値と日付のロケールが %1 に設定されました + + + + Change + 変更 + + notesqml @@ -3837,27 +3959,27 @@ Output: <p>このプログラムはいくつかの質問を行い、コンピューターに %1 をセットアップします。</p> - + About About - + Support サポート - + Known issues 既知の問題点 - + Release notes リリースノート - + Donate 寄付 diff --git a/lang/calamares_kk.ts b/lang/calamares_kk.ts index 21a8a1f2b..30c185059 100644 --- a/lang/calamares_kk.ts +++ b/lang/calamares_kk.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Орнату @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Дайын @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &Алға - + &Back А&ртқа - + &Done - + &Cancel Ба&с тарту - + Cancel setup? - + Cancel installation? Орнатудан бас тарту керек пе? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back А&ртқа - + &Next &Алға - + &Cancel Ба&с тарту - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: EFI жүйелік бөлімі: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support %1 қолдауы - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome Қош келдіңіз @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome Қош келдіңіз @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_kn.ts b/lang/calamares_kn.ts index ab2dd7856..ba9759c41 100644 --- a/lang/calamares_kn.ts +++ b/lang/calamares_kn.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install ಸ್ಥಾಪಿಸು @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes ಹೌದು - + &No ಇಲ್ಲ @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next ಮುಂದಿನ - + &Back ಹಿಂದಿನ - + &Done - + &Cancel ರದ್ದುಗೊಳಿಸು - + Cancel setup? - + Cancel installation? ಅನುಸ್ಥಾಪನೆಯನ್ನು ರದ್ದುಮಾಡುವುದೇ? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back ಹಿಂದಿನ - + &Next ಮುಂದಿನ - + &Cancel ರದ್ದುಗೊಳಿಸು - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ko.ts b/lang/calamares_ko.ts index 3385b4a86..08bb2ab1f 100644 --- a/lang/calamares_ko.ts +++ b/lang/calamares_ko.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up 설정 - + Install 설치 @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) (%1) 작업 실패 - + Programmed job failure was explicitly requested. 프로그래밍된 작업 실패가 명시적으로 요청되었습니다. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done 완료 @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) 작업 예제 (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. 대상 시스템에서 '%1' 명령을 실행합니다. - + Run command '%1'. '%1' 명령을 실행합니다. - + Running command %1 %2 명령 %1 %2 실행중 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 명령을 실행중 - + Bad working directory path 잘못된 작업 디렉터리 경로 - + Working directory %1 for python job %2 is not readable. 파이썬 작업 %2에 대한 작업 디렉터리 %1을 읽을 수 없습니다. - + Bad main script file 잘못된 주 스크립트 파일 - + Main script file %1 for python job %2 is not readable. 파이썬 작업 %2에 대한 주 스크립트 파일 %1을 읽을 수 없습니다. - + Boost.Python error in job "%1". 작업 "%1"에서 Boost.Python 오류 @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + <i>%1</i> 모듈에 대한 요구사항 검사가 완료되었습니다. + - + Waiting for %n module(s). %n 모듈(들)을 기다리는 중. - + (%n second(s)) (%n 초) - + System-requirements checking is complete. 시스템 요구사항 검사가 완료 되었습니다. @@ -271,13 +276,13 @@ - + &Yes 예(&Y) - + &No 아니오(&N) @@ -312,109 +317,109 @@ 다음 모듈 불러오기 실패: - + Continue with setup? 설치를 계속하시겠습니까? - + Continue with installation? 설치를 계속하시겠습니까? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 설치 프로그램이 %2을(를) 설정하기 위해 디스크를 변경하려고 하는 중입니다.<br/><strong>이러한 변경은 취소할 수 없습니다.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 인스톨러가 %2를 설치하기 위해 사용자의 디스크의 내용을 변경하려고 합니다. <br/> <strong>이 변경 작업은 되돌릴 수 없습니다.</strong> - + &Set up now 지금 설치 (&S) - + &Install now 지금 설치 (&I) - + Go &back 뒤로 이동 (&b) - + &Set up 설치 (&S) - + &Install 설치(&I) - + Setup is complete. Close the setup program. 설치가 완료 되었습니다. 설치 프로그램을 닫습니다. - + The installation is complete. Close the installer. 설치가 완료되었습니다. 설치 관리자를 닫습니다. - + Cancel setup without changing the system. 시스템을 변경 하지 않고 설치를 취소합니다. - + Cancel installation without changing the system. 시스템 변경 없이 설치를 취소합니다. - + &Next 다음 (&N) - + &Back 뒤로 (&B) - + &Done 완료 (&D) - + &Cancel 취소 (&C) - + Cancel setup? 설치를 취소 하시겠습니까? - + Cancel installation? 설치를 취소하시겠습니까? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. 현재 설정 프로세스를 취소하시겠습니까? 설치 프로그램이 종료되고 모든 변경 내용이 손실됩니다. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 정말로 현재 설치 프로세스를 취소하시겠습니까? @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type 알 수 없는 예외 유형 - + unparseable Python error 구문 분석할 수 없는 파이썬 오류 - + unparseable Python traceback 구문 분석할 수 없는 파이썬 역추적 정보 - + Unfetchable Python error. 가져올 수 없는 파이썬 오류 @@ -457,32 +462,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information 디버그 정보 보기 - + &Back 뒤로 (&B) - + &Next 다음 (&N) - + &Cancel 취소 (&C) - + %1 Setup Program %1 설치 프로그램 - + %1 Installer %1 설치 관리자 @@ -679,18 +684,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. 명령을 실행할 수 없습니다. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. 이 명령은 호스트 환경에서 실행되며 루트 경로를 알아야하지만, rootMountPoint가 정의되지 않았습니다. - + The command needs to know the user's name, but no username is defined. 이 명령은 사용자 이름을 알아야 하지만, username이 정의되지 않았습니다. @@ -743,49 +748,49 @@ The installer will quit and all changes will be lost. 네트워크 설치. (불가: 패키지 목록을 가져올 수 없습니다. 네트워크 연결을 확인해주세요) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 이 컴퓨터는 %1 설치를 위한 최소 요구 사항을 충족하지 않습니다.<br/>설치를 계속할 수 없습니다.<a href="#details">세부 정보...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 이 컴퓨터는 %1 설치를 위한 최소 요구 사항을 충족하지 않습니다.<br/>설치를 계속할 수 없습니다. <a href="#details">세부 사항입니다...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 이 컴퓨터는 %1 설치를 위한 권장 요구 사항 중 일부를 충족하지 않습니다.<br/>설치를 계속할 수는 있지만 일부 기능을 사용하지 않도록 설정할 수도 있습니다. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 이 컴퓨터는 %1 설치를 위한 권장 요구 사항 중 일부를 충족하지 않습니다.<br/>설치를 계속할 수 있지만 일부 기능을 사용하지 않도록 설정할 수 있습니다. - + This program will ask you some questions and set up %2 on your computer. 이 프로그램은 몇 가지 질문을 하고 컴퓨터에 %2을 설정합니다. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1에 대한 Calamares 설정 프로그램에 오신 것을 환영합니다.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>%1 설치에 오신 것을 환영합니다.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1을 위한 Calamares 설치 관리자에 오신 것을 환영합니다.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>%1 설치 관리자에 오신 것을 환영합니다.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information 파티션 정보 설정 - + Install %1 on <strong>new</strong> %2 system partition. <strong>새</strong> %2 시스템 파티션에 %1를설치합니다. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. 마운트 위치 <strong>%1</strong>을 사용하여 <strong>새</strong> 파티션 %2를 설정합니다. - + Install %2 on %3 system partition <strong>%1</strong>. 시스템 파티션 <strong>%1</strong>의 %3에 %2를 설치합니다. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. <strong>%2</strong> 마운트 위치를 사용하여 파티션 <strong>%1</strong>의 %3 을 설정합니다. - + Install boot loader on <strong>%1</strong>. <strong>%1</strong>에 부트 로더를 설치합니다. - + Setting up mount points. 마운트 위치를 설정 중입니다. @@ -1270,32 +1275,32 @@ The installer will quit and all changes will be lost. 지금 재시작 (&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>모두 완료.</h1><br/>%1이 컴퓨터에 설정되었습니다.<br/>이제 새 시스템을 사용할 수 있습니다. - + <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 setup program.</p></body></html> <html><head/><body><p>이 확인란을 선택하면 <span style="font-style:italic;">완료</span>를 클릭하거나 설치 프로그램을 닫으면 시스템이 즉시 다시 시작됩니다.</p></body></html> - + <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>모두 완료되었습니다.</h1><br/>%1이 컴퓨터에 설치되었습니다.<br/>이제 새 시스템으로 다시 시작하거나 %2 라이브 환경을 계속 사용할 수 있습니다. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>이 확인란을 선택하면 <span style="font-style:italic;">완료</span>를 클릭하거나 설치 관리자를 닫으면 시스템이 즉시 다시 시작됩니다.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>설치 실패</h1><br/>%1이 컴퓨터에 설정되지 않았습니다.<br/>오류 메시지 : %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>설치에 실패했습니다.</h1><br/>%1이 컴퓨터에 설치되지 않았습니다.<br/>오류 메시지는 %2입니다. @@ -1303,27 +1308,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish 완료 - + Setup Complete 설치 완료 - + Installation Complete 설치 완료 - + The setup of %1 is complete. %1 설치가 완료되었습니다. - + The installation of %1 is complete. %1의 설치가 완료되었습니다. @@ -1354,72 +1359,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space %1 GiB 이상의 사용 가능한 드라이브 공간이 있음 - + There is not enough drive space. At least %1 GiB is required. 드라이브 공간이 부족합니다. %1 GiB 이상이 필요합니다. - + has at least %1 GiB working memory %1 GiB 이상의 작동 메모리가 있습니다. - + The system does not have enough working memory. At least %1 GiB is required. 시스템에 충분한 작동 메모리가 없습니다. %1 GiB 이상이 필요합니다. - + 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. 이 시스템은 인터넷에 연결되어 있지 않습니다. - + is running the installer as an administrator (root) 설치 프로그램을 관리자(루트)로 실행 중입니다 - + The setup program is not running with administrator rights. 설치 프로그램이 관리자 권한으로 실행되고 있지 않습니다. - + The installer is not running with administrator rights. 설치 관리자가 관리자 권한으로 동작하고 있지 않습니다. - + has a screen large enough to show the whole installer 전체 설치 프로그램을 표시할 수 있을 만큼 큰 화면이 있습니다 - + The screen is too small to display the setup program. 화면이 너무 작아서 설정 프로그램을 표시할 수 없습니다. - + The screen is too small to display the installer. 설치 관리자를 표시하기에 화면이 너무 작습니다. @@ -1767,6 +1772,16 @@ The installer will quit and all changes will be lost. MachineId에 대해 설정된 루트 마운트 지점이 없습니다. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ The installer will quit and all changes will be lost. OEM 배치 식별자를 <code>%1</code>로 설정합니다. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ The installer will quit and all changes will be lost. 파티션 - + Install %1 <strong>alongside</strong> another operating system. %1을 다른 운영 체제와 <strong>함께</strong> 설치합니다. - + <strong>Erase</strong> disk and install %1. 디스크를 <strong>지우고</strong> %1을 설치합니다. - + <strong>Replace</strong> a partition with %1. 파티션을 %1로 <strong>바꿉니다</strong>. - + <strong>Manual</strong> partitioning. <strong>수동</strong> 파티션 작업 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 디스크 <strong>%2</strong> (%3)에 다른 운영 체제와 <strong>함께</strong> %1을 설치합니다. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. 디스크 <strong>%2</strong> (%3)를 <strong>지우고</strong> %1을 설치합니다. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. 디스크 <strong>%2</strong> (%3)의 파티션을 %1로 <strong>바꿉니다</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). 디스크 <strong>%1</strong> (%2) 의 <strong>수동</strong> 파티션 작업입니다. - + Disk <strong>%1</strong> (%2) 디스크 <strong>%1</strong> (%2) - + Current: 현재: - + After: 이후: - + No EFI system partition configured EFI 시스템 파티션이 설정되지 않았습니다 - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI 시스템 파티션 플래그가 설정되지 않았습니다 - + Option to use GPT on BIOS BIOS에서 GPT를 사용하는 옵션 - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT 파티션 테이블은 모든 시스템에 가장 적합한 옵션입니다. 이 설치 프로그램은 BIOS 시스템에 대한 이러한 설정도 지원합니다.<br/><br/>BIOS에서 GPT 파티션 테이블을 구성하려면(아직 구성되지 않은 경우) 돌아가서 파티션 테이블을 GPT로 설정한 다음, <strong>bios_grub</strong> 플래그가 사용하도록 설정된 8MB의 포맷되지 않은 파티션을 생성합니다.<br/><br/>GPT가 있는 BIOS 시스템에서 %1을 시작하려면 포맷되지 않은 8MB 파티션이 필요합니다. - + 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. 암호화된 루트 파티션과 함께 별도의 부팅 파티션이 설정되었지만 부팅 파티션은 암호화되지 않았습니다.<br/><br/>중요한 시스템 파일은 암호화되지 않은 파티션에 보관되기 때문에 이러한 설정과 관련하여 보안 문제가 있습니다.<br/>원하는 경우 계속할 수 있지만 나중에 시스템을 시작하는 동안 파일 시스템 잠금이 해제됩니다.<br/>부팅 파티션을 암호화하려면 돌아가서 다시 생성하여 파티션 생성 창에서 <strong>암호화</strong>를 선택합니다. - + has at least one disk device available. 하나 이상의 디스크 장치를 사용할 수 있습니다. - + There are no partitions to install on. 설치를 위한 파티션이 없습니다. @@ -2658,14 +2686,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. 명령으로부터 아무런 출력이 없습니다. - + Output: @@ -2674,52 +2702,52 @@ Output: - + External command crashed. 외부 명령이 실패했습니다. - + Command <i>%1</i> crashed. <i>%1</i> 명령이 실패했습니다. - + External command failed to start. 외부 명령을 시작하지 못했습니다. - + Command <i>%1</i> failed to start. <i>%1</i> 명령을 시작하지 못했습니다. - + 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. <i>%1</i> 명령을 %2초 안에 완료하지 못했습니다. - + External command finished with errors. 외부 명령이 오류와 함께 완료되었습니다. - + Command <i>%1</i> finished with exit code %2. <i>%1</i> 명령이 종료 코드 %2와 함께 완료되었습니다. @@ -2727,32 +2755,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - <i>%1</i> 모듈에 대한 요구사항 검사가 완료되었습니다. - - - + unknown 알 수 없음 - + extended 확장됨 - + unformatted 포맷되지 않음 - + swap 스왑 @@ -2806,6 +2829,15 @@ Output: 분할되지 않은 공간 또는 알 수 없는 파티션 테이블입니다. + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2841,73 +2873,88 @@ Output: 형식 - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. %1을 설치할 위치를 선택합니다.<br/><font color="red">경고: </font>선택한 파티션의 모든 파일이 삭제됩니다. - + The selected item does not appear to be a valid partition. 선택된 항목은 유효한 파티션으로 표시되지 않습니다. - + %1 cannot be installed on empty space. Please select an existing partition. %1은 빈 공간에 설치될 수 없습니다. 존재하는 파티션을 선택해주세요. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1은 확장 파티션에 설치될 수 없습니다. 주 파티션 혹은 논리 파티션을 선택해주세요. - + %1 cannot be installed on this partition. %1은 이 파티션에 설치될 수 없습니다. - + Data partition (%1) 데이터 파티션 (%1) - + Unknown system partition (%1) 알 수 없는 시스템 파티션 (%1) - + %1 system partition (%2) %1 시스템 파티션 (%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>%4</strong><br/><br/>%1 파티션이 %2에 비해 너무 작습니다. 용량이 %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>%2</strong><br/><br/>이 시스템에서는 EFI 시스템 파티션을 찾을 수 없습니다. 돌아가서 수동 파티션 작업을 사용하여 %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. <strong>%3</strong><br/><br/>%1이 %2에 설치됩니다.<br/><font color="red">경고: </font>%2 파티션의 모든 데이터가 손실됩니다. - + The EFI system partition at %1 will be used for starting %2. %1의 EFI 시스템 파티션은 %2의 시작으로 사용될 것입니다. - + EFI system partition: EFI 시스템 파티션: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3030,12 +3077,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: 최상의 결과를 얻으려면 이 컴퓨터가 다음 사항을 충족해야 합니다. - + System requirements 시스템 요구 사항 @@ -3043,27 +3090,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 이 컴퓨터는 %1 설치를 위한 최소 요구 사항을 충족하지 않습니다.<br/>설치를 계속할 수 없습니다.<a href="#details">세부 정보...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 이 컴퓨터는 %1 설치를 위한 최소 요구 사항을 충족하지 않습니다.<br/>설치를 계속할 수 없습니다. <a href="#details">세부 사항입니다...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 이 컴퓨터는 %1 설치를 위한 권장 요구 사항 중 일부를 충족하지 않습니다.<br/>설치를 계속할 수는 있지만 일부 기능을 사용하지 않도록 설정할 수도 있습니다. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 이 컴퓨터는 %1 설치를 위한 권장 요구 사항 중 일부를 충족하지 않습니다.<br/>설치를 계속할 수 있지만 일부 기능을 사용하지 않도록 설정할 수 있습니다. - + This program will ask you some questions and set up %2 on your computer. 이 프로그램은 몇 가지 질문을 하고 컴퓨터에 %2을 설정합니다. @@ -3346,51 +3393,80 @@ Output: TrackingInstallJob - + Installation feedback 설치 피드백 - + Sending installation feedback. 설치 피드백을 보내는 중입니다. - + Internal error in install-tracking. 설치 추적중 내부 오류 - + HTTP request timed out. HTTP 요청 시간이 만료되었습니다. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback 시스템 피드백 - + Configuring machine feedback. 시스템 피드백을 설정하는 중입니다. - - + + Error in machine feedback configuration. 시스템 피드백 설정 중에 오류가 발생했습니다. - + Could not configure machine feedback correctly, script error %1. 시스템 피드백을 정확하게 설정할 수 없습니다, %1 스크립트 오류. - + Could not configure machine feedback correctly, Calamares error %1. 시스템 피드백을 정확하게 설정할 수 없습니다, %1 깔라마레스 오류. @@ -3409,8 +3485,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>이 옵션을 선택하면 <span style=" font-weight:600;">설치에 대한 정보가</span> 전혀 전송되지 않습니다.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3418,30 +3494,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">사용자 피드백에 대한 자세한 정보를 보려면 여기를 클릭하세요.</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. - 설치 추적 기능을 사용하면 %1의 사용자 수, %1에 설치하는 하드웨어 (아래 마지막 두 옵션), 기본 응용 프로그램에 대한 지속적인 정보를 얻을 수 있습니다. 전송할 내용을 보려면 각 영역 옆에있는 도움말 아이콘을 클릭하십시오. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - 이 옵션을 선택하면 설치 및 하드웨어에 대한 정보가 전송됩니다. 이 정보는 설치가 완료된 후 <b>한 번만 전송</b>됩니다 + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - 이 옵션을 선택하면 <b>주기적으로</b> 설치, 하드웨어 및 응용 프로그램에 대한 정보를 %1로 전송합니다. + + By selecting this you will periodically send information about your <b>machine</b> 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. - 이 옵션을 선택하면 <b>정기적으로</b> 설치, 하드웨어, 응용 프로그램 및 사용 패턴에 대한 정보를 %1로 전송합니다. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback 피드백 @@ -3627,42 +3703,42 @@ Output: 출시 정보 (&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>%1에 대한 Calamares 설정 프로그램에 오신 것을 환영합니다.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>%1 설치에 오신 것을 환영합니다.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>%1을 위한 Calamares 설치 관리자에 오신 것을 환영합니다.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>%1 설치 관리자에 오신 것을 환영합니다.</h1> - + %1 support %1 지원 - + About %1 setup %1 설치 정보 - + About %1 installer %1 설치 관리자에 대하여 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/><a href="https://calamares.io/team/">Calamares 팀</a>과 <a href="https://www.transifex.com/calamares/calamares/">Calamares 번역 팀</a> 덕분입니다.<br/><br/><a href="https://calamares.io/">Calamares</a> 개발은 <br/><a href="http://www.blue-systems.com/">Blue Systems</a>에서 후원합니다 - Liberating Software. @@ -3670,7 +3746,7 @@ Output: WelcomeQmlViewStep - + Welcome 환영합니다 @@ -3678,7 +3754,7 @@ Output: WelcomeViewStep - + Welcome 환영합니다 @@ -3718,6 +3794,26 @@ Output: 뒤로 + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + 뒤로 + + keyboardq @@ -3763,6 +3859,24 @@ Output: 키보드 테스트 + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3815,27 +3929,27 @@ Output: - + About Calamares에 대하여 - + Support 지원 - + Known issues 알려진 이슈들 - + Release notes 릴리즈 노트 - + Donate 기부 diff --git a/lang/calamares_lo.ts b/lang/calamares_lo.ts index de6424583..46a2a0fb6 100644 --- a/lang/calamares_lo.ts +++ b/lang/calamares_lo.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). - + (%n second(s)) - + System-requirements checking is complete. @@ -271,13 +276,13 @@ - + &Yes - + &No @@ -312,108 +317,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -422,22 +427,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -454,32 +459,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -676,18 +681,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -740,48 +745,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1219,37 +1224,37 @@ The installer will quit and all changes will be lost. 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. @@ -1267,32 +1272,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1300,27 +1305,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1351,72 +1356,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1764,6 +1769,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1902,6 +1917,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2489,107 +2517,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2655,65 +2683,65 @@ The installer will quit and all changes will be lost. 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. @@ -2721,32 +2749,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2800,6 +2823,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2835,73 +2867,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3024,12 +3071,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3037,27 +3084,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3340,51 +3387,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3403,7 +3479,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3412,30 +3488,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3621,42 +3697,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3664,7 +3740,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3672,7 +3748,7 @@ Output: WelcomeViewStep - + Welcome @@ -3701,6 +3777,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3746,6 +3842,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3797,27 +3911,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts index 327e227c0..aa51d8669 100644 --- a/lang/calamares_lt.ts +++ b/lang/calamares_lt.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Sąranka - + Install Diegimas @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Užduotis patyrė nesėkmę (%1) - + Programmed job failure was explicitly requested. Užprogramuota užduoties nesėkmė buvo aiškiai užklausta. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Atlikta @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Pavyzdinė užduotis (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Paleisti paskirties sistemoje komandą „%1“. - + Run command '%1'. Paleisti komandą „%1“. - + Running command %1 %2 Vykdoma komanda %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Vykdoma %1 operacija. - + Bad working directory path Netinkama darbinio katalogo vieta - + Working directory %1 for python job %2 is not readable. Darbinis %1 python katalogas dėl %2 užduoties yra neskaitomas - + Bad main script file Prastas pagrindinio skripto failas - + Main script file %1 for python job %2 is not readable. Pagrindinis scenarijus %1 dėl python %2 užduoties yra neskaitomas - + Boost.Python error in job "%1". Boost.Python klaida užduotyje "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Reikalavimų tikrinimas <i>%1</i> moduliui yra užbaigtas. + - + Waiting for %n module(s). Laukiama %n modulio. @@ -238,7 +243,7 @@ - + (%n second(s)) (%n sekundė) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. Sistemos reikalavimų tikrinimas yra užbaigtas. @@ -277,13 +282,13 @@ - + &Yes &Taip - + &No &Ne @@ -318,109 +323,109 @@ <br/>Nepavyko įkelti šių modulių: - + Continue with setup? Tęsti sąranką? - + Continue with installation? Tęsti diegimą? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 sąrankos programa, siekdama nustatyti %2, ketina atlikti pakeitimus diske.<br/><strong>Šių pakeitimų nebegalėsite atšaukti.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.<br/><strong>Šių pakeitimų nebegalėsite atšaukti.</strong> - + &Set up now Nu&statyti dabar - + &Install now Į&diegti dabar - + Go &back &Grįžti - + &Set up Nu&statyti - + &Install Į&diegti - + Setup is complete. Close the setup program. Sąranka užbaigta. Užverkite sąrankos programą. - + The installation is complete. Close the installer. Diegimas užbaigtas. Užverkite diegimo programą. - + Cancel setup without changing the system. Atsisakyti sąrankos, nieko sistemoje nekeičiant. - + Cancel installation without changing the system. Atsisakyti diegimo, nieko sistemoje nekeičiant. - + &Next &Toliau - + &Back &Atgal - + &Done A&tlikta - + &Cancel A&tsisakyti - + Cancel setup? Atsisakyti sąrankos? - + Cancel installation? Atsisakyti diegimo? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Ar tikrai norite atsisakyti dabartinio sąrankos proceso? Sąrankos programa užbaigs darbą ir visi pakeitimai bus prarasti. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Ar tikrai norite atsisakyti dabartinio diegimo proceso? @@ -430,22 +435,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CalamaresPython::Helper - + Unknown exception type Nežinomas išimties tipas - + unparseable Python error Nepalyginama Python klaida - + unparseable Python traceback Nepalyginamas Python atsekimas - + Unfetchable Python error. Neatgaunama Python klaida. @@ -463,32 +468,32 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CalamaresWindow - + Show debug information Rodyti derinimo informaciją - + &Back &Atgal - + &Next &Toliau - + &Cancel A&tsisakyti - + %1 Setup Program %1 sąrankos programa - + %1 Installer %1 diegimo programa @@ -685,18 +690,18 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CommandList - - + + Could not run command. Nepavyko paleisti komandos. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Komanda yra vykdoma serverio aplinkoje ir turi žinoti šaknies kelią, tačiau nėra apibrėžtas joks rootMountPoint. - + The command needs to know the user's name, but no username is defined. Komanda turi žinoti naudotojo vardą, tačiau nebuvo apibrėžtas joks naudotojo vardas. @@ -749,49 +754,49 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Tinklo diegimas. (Išjungta: Nepavyksta gauti paketų sąrašus, patikrinkite savo tinklo ryšį) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Šis kompiuteris netenkina minimalių %1 nustatymo reikalavimų.<br/>Sąranka negali būti tęsiama. <a href="#details">Išsamiau...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Šis kompiuteris netenkina minimalių %1 diegimo reikalavimų.<br/>Diegimas negali būti tęsiamas. <a href="#details">Išsamiau...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Šis kompiuteris netenkina kai kurių %1 nustatymui rekomenduojamų reikalavimų.<br/>Sąranką galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.<br/>Diegimą galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos. - + This program will ask you some questions and set up %2 on your computer. Programa užduos kelis klausimus ir padės įsidiegti %2. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Jus sveikina Calamares sąrankos programa, skirta %1 sistemai.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Jus sveikina %1 sąranka.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Jus sveikina Calamares diegimo programa, skirta %1 sistemai.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Jus sveikina %1 diegimo programa.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1228,37 +1233,37 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. FillGlobalStorageJob - + Set partition information Nustatyti skaidinio informaciją - + Install %1 on <strong>new</strong> %2 system partition. Įdiegti %1 <strong>naujame</strong> %2 sistemos skaidinyje. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Nustatyti <strong>naują</strong> %2 skaidinį su prijungimo tašku <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Diegti %2 sistemą, %3 sistemos skaidinyje <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Nustatyti %3 skaidinį <strong>%1</strong> su prijungimo tašku <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Diegti paleidyklę skaidinyje <strong>%1</strong>. - + Setting up mount points. Nustatomi prijungimo taškai. @@ -1276,32 +1281,32 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. &Paleisti iš naujo dabar - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Viskas atlikta.</h1><br/>%1 sistema jūsų kompiuteryje jau nustatyta.<br/>Dabar galite pradėti naudotis savo naująja sistema. - + <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 setup program.</p></body></html> <html><head/><body><p>Pažymėjus šį langelį, jūsų sistema nedelsiant pasileis iš naujo, kai spustelėsite <span style="font-style:italic;">Atlikta</span> ar užversite sąrankos programą.</p></body></html> - + <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>Viskas atlikta.</h1><br/>%1 sistema jau įdiegta.<br/>Galite iš naujo paleisti kompiuterį dabar ir naudotis savo naująja sistema; arba galite tęsti naudojimąsi %2 sistema demonstracinėje aplinkoje. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Pažymėjus šį langelį, jūsų sistema nedelsiant pasileis iš naujo, kai spustelėsite <span style="font-style:italic;">Atlikta</span> ar užversite diegimo programą.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Sąranka nepavyko</h1><br/>%1 nebuvo nustatyta jūsų kompiuteryje.<br/>Klaidos pranešimas buvo: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Diegimas nepavyko</h1><br/>%1 nebuvo įdiegta jūsų kompiuteryje.<br/>Klaidos pranešimas buvo: %2. @@ -1309,27 +1314,27 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. FinishedViewStep - + Finish Pabaiga - + Setup Complete Sąranka užbaigta - + Installation Complete Diegimas užbaigtas - + The setup of %1 is complete. %1 sąranka yra užbaigta. - + The installation of %1 is complete. %1 diegimas yra užbaigtas. @@ -1360,72 +1365,72 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. GeneralRequirements - + has at least %1 GiB available drive space turi bent %1 GiB laisvos vietos diske - + There is not enough drive space. At least %1 GiB is required. Neužtenka vietos diske. Reikia bent %1 GiB. - + has at least %1 GiB working memory turi bent %1 GiB darbinės atminties - + The system does not have enough working memory. At least %1 GiB is required. Sistemai neužtenka darbinės atminties. Reikia bent %1 GiB. - + is plugged in to a power source prijungta prie maitinimo šaltinio - + The system is not plugged in to a power source. Sistema nėra prijungta prie maitinimo šaltinio. - + is connected to the Internet prijungta prie Interneto - + The system is not connected to the Internet. Sistema nėra prijungta prie Interneto. - + is running the installer as an administrator (root) vykdo diegimo programa administratoriaus (root) teisėmis - + The setup program is not running with administrator rights. Sąrankos programa yra vykdoma be administratoriaus teisių. - + The installer is not running with administrator rights. Diegimo programa yra vykdoma be administratoriaus teisių. - + has a screen large enough to show the whole installer turi ekraną, pakankamai didelį, kad rodytų visą diegimo programą - + The screen is too small to display the setup program. Ekranas yra per mažas, kad būtų parodyta sąrankos programa. - + The screen is too small to display the installer. Ekranas yra per mažas, kad būtų parodyta diegimo programa. @@ -1773,6 +1778,16 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Nenustatytas joks šaknies prijungimo taškas, skirtas MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1911,6 +1926,19 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Nustatyti OEM partijos identifikatorių į <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2498,107 +2526,107 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Skaidiniai - + Install %1 <strong>alongside</strong> another operating system. Diegti %1 <strong>šalia</strong> kitos operacinės sistemos. - + <strong>Erase</strong> disk and install %1. <strong>Ištrinti</strong> diską ir diegti %1. - + <strong>Replace</strong> a partition with %1. <strong>Pakeisti</strong> skaidinį, įrašant %1. - + <strong>Manual</strong> partitioning. <strong>Rankinis</strong> skaidymas. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Įdiegti %1 <strong>šalia</strong> kitos operacinės sistemos diske <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Ištrinti</strong> diską <strong>%2</strong> (%3) ir diegti %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Pakeisti</strong> skaidinį diske <strong>%2</strong> (%3), įrašant %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Rankinis</strong> skaidymas diske <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Diskas <strong>%1</strong> (%2) - + Current: Dabartinis: - + After: Po: - + No EFI system partition configured Nėra sukonfigūruoto EFI sistemos skaidinio - + 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>%3</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 sistemos skaidinys yra būtinas, norint paleisti %1.<br/><br/>Norėdami sukonfigūruoti EFI sistemos skaidinį, grįžkite atgal ir pasirinkite arba sukurkite FAT32 failų sistemą su įjungta <strong>%3</strong> vėliavėle ir <strong>%2</strong> prijungimo tašku.<br/><br/>Jūs galite tęsti ir nenustatę EFI sistemos skaidinio, tačiau tokiu atveju, gali nepavykti paleisti jūsų sistemos. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. EFI sistemos skaidinys yra būtinas, norint paleisti %1.<br/><br/>Skaidinys buvo sukonfigūruotas su prijungimo tašku <strong>%2</strong>, tačiau jo <strong>%3</strong> vėliavėlė yra nenustatyta.<br/>Norėdami nustatyti vėliavėlę, grįžkite atgal ir taisykite skaidinį.<br/><br/>Jūs galite tęsti ir nenustatę vėliavėlės, tačiau tokiu atveju, gali nepavykti paleisti jūsų sistemos. - + EFI system partition flag not set Nenustatyta EFI sistemos skaidinio vėliavėlė - + Option to use GPT on BIOS Parinktis naudoti GPT per BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT skaidinių lentelė yra geriausias variantas visoms sistemoms. Ši diegimo programa palaiko tokią sąranką taip pat ir BIOS sistemoms.<br/><br/>Norėdami konfigūruoti GPT skaidinių lentelę BIOS sistemoje, (jei dar nesate to padarę) grįžkite atgal ir nustatykite skaidinių lentelę į GPT, toliau, sukurkite 8 MB neformatuotą skaidinį su įjungta <strong>bios_grub</strong> vėliavėle.<br/><br/>Neformatuotas 8 MB skaidinys yra būtinas, norint paleisti %1 BIOS sistemoje su GPT. - + Boot partition not encrypted Paleidimo skaidinys nėra užšifruotas - + 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. Kartu su užšifruotu šaknies skaidiniu, buvo nustatytas atskiras paleidimo skaidinys, tačiau paleidimo skaidinys nėra užšifruotas.<br/><br/>Dėl tokios sąrankos iškyla tam tikrų saugumo klausimų, kadangi svarbūs sisteminiai failai yra laikomi neužšifruotame skaidinyje.<br/>Jeigu norite, galite tęsti, tačiau failų sistemos atrakinimas įvyks vėliau, sistemos paleidimo metu.<br/>Norėdami užšifruoti paleidimo skaidinį, grįžkite atgal ir sukurkite jį iš naujo bei skaidinių kūrimo lange pažymėkite parinktį <strong>Užšifruoti</strong>. - + has at least one disk device available. turi bent vieną prieinamą disko įrenginį. - + There are no partitions to install on. Nėra skaidinių į kuriuos diegti. @@ -2664,14 +2692,14 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. ProcessResult - + There was no output from the command. Nebuvo jokios išvesties iš komandos. - + Output: @@ -2680,52 +2708,52 @@ Išvestis: - + External command crashed. Išorinė komanda užstrigo. - + Command <i>%1</i> crashed. Komanda <i>%1</i> užstrigo. - + External command failed to start. Nepavyko paleisti išorinės komandos. - + Command <i>%1</i> failed to start. Nepavyko paleisti komandos <i>%1</i>. - + Internal error when starting command. Paleidžiant komandą, įvyko vidinė klaida. - + Bad parameters for process job call. Blogi parametrai proceso užduoties iškvietai. - + External command failed to finish. Nepavyko pabaigti išorinės komandos. - + Command <i>%1</i> failed to finish in %2 seconds. Nepavyko per %2 sek. pabaigti komandos <i>%1</i>. - + External command finished with errors. Išorinė komanda pabaigta su klaidomis. - + Command <i>%1</i> finished with exit code %2. Komanda <i>%1</i> pabaigta su išėjimo kodu %2. @@ -2733,32 +2761,27 @@ Išvestis: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Reikalavimų tikrinimas <i>%1</i> moduliui yra užbaigtas. - - - + unknown nežinoma - + extended išplėsta - + unformatted nesutvarkyta - + swap sukeitimų (swap) @@ -2812,6 +2835,15 @@ Išvestis: Nesuskaidyta vieta arba nežinoma skaidinių lentelė + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2847,73 +2879,88 @@ Išvestis: Forma - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Pasirinkite, kur norėtumėte įdiegti %1.<br/><font color="red">Įspėjimas: </font>tai ištrins visus, pasirinktame skaidinyje esančius, failus. - + The selected item does not appear to be a valid partition. Pasirinktas elementas neatrodo kaip teisingas skaidinys. - + %1 cannot be installed on empty space. Please select an existing partition. %1 negali būti įdiegta laisvoje vietoje. Prašome pasirinkti esamą skaidinį. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 negali būti įdiegta išplėstame skaidinyje. Prašome pasirinkti esamą pirminį ar loginį skaidinį. - + %1 cannot be installed on this partition. %1 negali būti įdiegta šiame skaidinyje. - + Data partition (%1) Duomenų skaidinys (%1) - + Unknown system partition (%1) Nežinomas sistemos skaidinys (%1) - + %1 system partition (%2) %1 sistemos skaidinys (%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>%4</strong><br/><br/>Skaidinys %1 yra pernelyg mažas sistemai %2. Prašome pasirinkti skaidinį, kurio dydis siektų bent %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>%2</strong><br/><br/>Šioje sistemoje niekur nepavyko rasti EFI skaidinio. Prašome grįžti ir naudoti rankinį skaidymą, kad nustatytumėte %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. <strong>%3</strong><br/><br/>%1 sistema bus įdiegta skaidinyje %2.<br/><font color="red">Įspėjimas: </font>visi duomenys skaidinyje %2 bus prarasti. - + The EFI system partition at %1 will be used for starting %2. %2 paleidimui bus naudojamas EFI sistemos skaidinys, esantis %1. - + EFI system partition: EFI sistemos skaidinys: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3036,12 +3083,12 @@ Išvestis: ResultsListDialog - + For best results, please ensure that this computer: Norėdami pasiekti geriausių rezultatų, įsitikinkite kad šis kompiuteris: - + System requirements Sistemos reikalavimai @@ -3049,27 +3096,27 @@ Išvestis: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Šis kompiuteris netenkina minimalių %1 nustatymo reikalavimų.<br/>Sąranka negali būti tęsiama. <a href="#details">Išsamiau...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Šis kompiuteris netenkina minimalių %1 diegimo reikalavimų.<br/>Diegimas negali būti tęsiamas. <a href="#details">Išsamiau...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Šis kompiuteris netenkina kai kurių %1 nustatymui rekomenduojamų reikalavimų.<br/>Sąranką galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.<br/>Diegimą galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos. - + This program will ask you some questions and set up %2 on your computer. Programa užduos kelis klausimus ir padės įsidiegti %2. @@ -3352,51 +3399,80 @@ Išvestis: TrackingInstallJob - + Installation feedback Grįžtamasis ryšys apie diegimą - + Sending installation feedback. Siunčiamas grįžtamasis ryšys apie diegimą. - + Internal error in install-tracking. Vidinė klaida diegimo sekime. - + HTTP request timed out. Baigėsi HTTP užklausos laikas. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Grįžtamasis ryšys apie kompiuterį - + Configuring machine feedback. Konfigūruojamas grįžtamasis ryšys apie kompiuterį. - - + + Error in machine feedback configuration. Klaida grįžtamojo ryšio apie kompiuterį konfigūravime. - + Could not configure machine feedback correctly, script error %1. Nepavyko teisingai sukonfigūruoti grįžtamojo ryšio apie kompiuterį, scenarijaus klaida %1. - + Could not configure machine feedback correctly, Calamares error %1. Nepavyko teisingai sukonfigūruoti grįžtamojo ryšio apie kompiuterį, Calamares klaida %1. @@ -3415,8 +3491,8 @@ Išvestis: - <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>Tai pažymėdami, nesiųsite <span style=" font-weight:600;">visiškai jokios informacijos</span> apie savo diegimą.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3424,30 +3500,30 @@ Išvestis: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Išsamesnei informacijai apie naudotojų grįžtamąjį ryšį, spustelėkite čia</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. - Diegimo sekimas padeda %1 matyti kiek jie turi naudotojų, į kokią aparatinę įrangą naudotojai diegia %1 ir (su paskutiniais dviejais parametrais žemiau), gauti tęstinę informaciją apie pageidaujamas programas. Norėdami matyti kas bus siunčiama, šalia kiekvienos srities spustelėkite žinyno piktogramą. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Tai pažymėdami, išsiųsite informaciją apie savo diegimą ir aparatinę įrangą. Ši informacija bus <b>išsiųsta tik vieną kartą</b>, užbaigus diegimą. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Tai pažymėdami, <b>periodiškai</b> siųsite informaciją apie savo diegimą, aparatinę įrangą ir programas į %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Tai pažymėdami, <b>reguliariai</b> siųsite informaciją apie savo diegimą, aparatinę įrangą, programas ir naudojimo būdus į %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Grįžtamasis ryšys @@ -3633,42 +3709,42 @@ Išvestis: Lai&dos informacija - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Jus sveikina Calamares sąrankos programa, skirta %1 sistemai.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Jus sveikina %1 sąranka.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Jus sveikina Calamares diegimo programa, skirta %1 sistemai.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Jus sveikina %1 diegimo programa.</h1> - + %1 support %1 palaikymas - + About %1 setup Apie %1 sąranką - + About %1 installer Apie %1 diegimo programą - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>skirta %3</strong><br/><br/>Autorių teisės 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorių teisės 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Dėkojame <a href="https://calamares.io/team/">Calamares komandai</a> ir <a href="https://www.transifex.com/calamares/calamares/">Calamares vertėjų komandai</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> plėtojimą remia <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Išlaisvinanti programinė įranga. @@ -3676,7 +3752,7 @@ Išvestis: WelcomeQmlViewStep - + Welcome Pasisveikinimas @@ -3684,7 +3760,7 @@ Išvestis: WelcomeViewStep - + Welcome Pasisveikinimas @@ -3724,6 +3800,26 @@ Išvestis: Atgal + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Atgal + + keyboardq @@ -3769,6 +3865,24 @@ Išvestis: Išbandykite savo klaviatūrą + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3842,27 +3956,27 @@ Išvestis: <p>Ši programa užduos jums kelis klausimus ir padės kompiuteryje nusistatyti %1.</p> - + About Apie - + Support Palaikymas - + Known issues Žinomos problemos - + Release notes Laidos informacija - + Donate Paaukoti diff --git a/lang/calamares_lv.ts b/lang/calamares_lv.ts index 4d6272e18..0ae072ce0 100644 --- a/lang/calamares_lv.ts +++ b/lang/calamares_lv.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -237,7 +242,7 @@ - + (%n second(s)) @@ -246,7 +251,7 @@ - + System-requirements checking is complete. @@ -275,13 +280,13 @@ - + &Yes - + &No @@ -316,108 +321,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -426,22 +431,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -458,32 +463,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -680,18 +685,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -744,48 +749,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1223,37 +1228,37 @@ The installer will quit and all changes will be lost. 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. @@ -1271,32 +1276,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1304,27 +1309,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1355,72 +1360,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1768,6 +1773,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2659,65 +2687,65 @@ The installer will quit and all changes will be lost. 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. @@ -2725,32 +2753,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2804,6 +2827,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2839,73 +2871,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3028,12 +3075,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3041,27 +3088,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3344,51 +3391,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3407,7 +3483,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3416,30 +3492,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3625,42 +3701,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3668,7 +3744,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3676,7 +3752,7 @@ Output: WelcomeViewStep - + Welcome @@ -3705,6 +3781,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3750,6 +3846,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3801,27 +3915,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_mk.ts b/lang/calamares_mk.ts index 69d35bdd9..49b253cec 100644 --- a/lang/calamares_mk.ts +++ b/lang/calamares_mk.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Инсталирај @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Готово @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Инсталацијата е готова. Исклучете го инсталерот. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ml.ts b/lang/calamares_ml.ts index b52077773..fc92eaad2 100644 --- a/lang/calamares_ml.ts +++ b/lang/calamares_ml.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up സജ്ജമാക്കുക - + Install ഇൻസ്റ്റാൾ ചെയ്യുക @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) ജോലി പരാജയപ്പെട്ടു (%1) - + Programmed job failure was explicitly requested. പ്രോഗ്രാം ചെയ്യപ്പെട്ട ജോലിയുടെ പരാജയം പ്രത്യേകമായി ആവശ്യപ്പെട്ടിരുന്നു. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done പൂർത്തിയായി @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) ഉദാഹരണം ജോലി (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. ടാർഗറ്റ് സിസ്റ്റത്തിൽ '%1' ആജ്ഞ പ്രവർത്തിപ്പിക്കുക. - + Run command '%1'. '%1' എന്ന ആജ്ഞ നടപ്പിലാക്കുക. - + Running command %1 %2 %1 %2 ആജ്ഞ നടപ്പിലാക്കുന്നു @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 ക്രിയ നടപ്പിലാക്കുന്നു. - + Bad working directory path പ്രവർത്ഥനരഹിതമായ ഡയറക്ടറി പാത - + Working directory %1 for python job %2 is not readable. പൈതൺ ജോബ് %2 യുടെ പ്രവർത്തന പാതയായ %1 വായിക്കുവാൻ കഴിയുന്നില്ല - + Bad main script file മോശമായ പ്രധാന സ്ക്രിപ്റ്റ് ഫയൽ - + Main script file %1 for python job %2 is not readable. പൈത്തൺ ജോബ് %2 നായുള്ള പ്രധാന സ്ക്രിപ്റ്റ് ഫയൽ %1 വായിക്കാൻ കഴിയുന്നില്ല. - + Boost.Python error in job "%1". "%1" എന്ന പ്രവൃത്തിയില്‍ ബൂസ്റ്റ്.പൈതണ്‍ പിശക് @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + <i>%1</i>മൊഡ്യൂളിനായുള്ള ആവശ്യകതകൾ പരിശോധിക്കൽ പൂർത്തിയായിരിക്കുന്നു. + - + Waiting for %n module(s). %n മൊഡ്യൂളിനായി കാത്തിരിക്കുന്നു. @@ -236,7 +241,7 @@ - + (%n second(s)) (%1 സെക്കൻഡ്) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. സിസ്റ്റം-ആവശ്യകതകളുടെ പരിശോധന പൂർത്തിയായി. @@ -273,13 +278,13 @@ - + &Yes വേണം (&Y) - + &No വേണ്ട (&N) @@ -314,109 +319,109 @@ <br/>താഴെ പറയുന്ന മൊഡ്യൂളുകൾ ലഭ്യമാക്കാനായില്ല: - + Continue with setup? സജ്ജീകരണപ്രക്രിയ തുടരണോ? - + Continue with installation? ഇൻസ്റ്റളേഷൻ തുടരണോ? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %2 സജ്ജീകരിക്കുന്നതിന് %1 സജ്ജീകരണ പ്രോഗ്രാം നിങ്ങളുടെ ഡിസ്കിൽ മാറ്റങ്ങൾ വരുത്താൻ പോകുന്നു.<br/><strong>നിങ്ങൾക്ക് ഈ മാറ്റങ്ങൾ പഴയപടിയാക്കാൻ കഴിയില്ല</strong> - + 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> %2 ഇൻസ്റ്റാളുചെയ്യുന്നതിന് %1 ഇൻസ്റ്റാളർ നിങ്ങളുടെ ഡിസ്കിൽ മാറ്റങ്ങൾ വരുത്താൻ പോകുന്നു.<br/><strong>നിങ്ങൾക്ക് ഈ മാറ്റങ്ങൾ പഴയപടിയാക്കാൻ കഴിയില്ല.</strong> - + &Set up now ഉടൻ സജ്ജീകരിക്കുക (&S) - + &Install now ഉടൻ ഇൻസ്റ്റാൾ ചെയ്യുക (&I) - + Go &back പുറകോട്ടു പോകുക - + &Set up സജ്ജീകരിക്കുക (&S) - + &Install ഇൻസ്റ്റാൾ (&I) - + Setup is complete. Close the setup program. സജ്ജീകരണം പൂർത്തിയായി. പ്രയോഗം അടയ്ക്കുക. - + The installation is complete. Close the installer. ഇൻസ്റ്റളേഷൻ പൂർത്തിയായി. ഇൻസ്റ്റാളർ അടയ്ക്കുക - + Cancel setup without changing the system. സിസ്റ്റത്തിന് മാറ്റമൊന്നും വരുത്താതെ സജ്ജീകരണപ്രക്രിയ റദ്ദാക്കുക. - + Cancel installation without changing the system. സിസ്റ്റത്തിന് മാറ്റമൊന്നും വരുത്താതെ ഇൻസ്റ്റളേഷൻ റദ്ദാക്കുക. - + &Next അടുത്തത് (&N) - + &Back പുറകോട്ട് (&B) - + &Done ചെയ്‌തു - + &Cancel റദ്ദാക്കുക (&C) - + Cancel setup? സജ്ജീകരണം റദ്ദാക്കണോ? - + Cancel installation? ഇൻസ്റ്റളേഷൻ റദ്ദാക്കണോ? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. നിലവിലുള്ള സജ്ജീകരണപ്രക്രിയ റദ്ദാക്കണോ? സജ്ജീകരണപ്രയോഗം നിൽക്കുകയും എല്ലാ മാറ്റങ്ങളും നഷ്ടപ്പെടുകയും ചെയ്യും. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. നിലവിലുള്ള ഇൻസ്റ്റാൾ പ്രക്രിയ റദ്ദാക്കണോ? @@ -426,22 +431,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type അജ്ഞാതമായ പിശക് - + unparseable Python error മനസ്സിലാക്കാനാവാത്ത പൈത്തൺ പിഴവ് - + unparseable Python traceback മനസ്സിലാക്കാനാവാത്ത പൈത്തൺ ട്രേസ്ബാക്ക് - + Unfetchable Python error. ലഭ്യമാക്കാനാവാത്ത പൈത്തൺ പിഴവ്. @@ -459,32 +464,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information ഡീബഗ് വിവരങ്ങൾ കാണിക്കുക - + &Back പുറകോട്ട് (&B) - + &Next അടുത്തത് (&N) - + &Cancel റദ്ദാക്കുക (&C) - + %1 Setup Program %1 സജ്ജീകരണപ്രയോഗം - + %1 Installer %1 ഇൻസ്റ്റാളർ @@ -681,18 +686,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. ആജ്ഞ പ്രവർത്തിപ്പിക്കാനായില്ല. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. കമാൻഡ് ഹോസ്റ്റ് എൻവയോൺമെന്റിൽ പ്രവർത്തിക്കുന്നു, റൂട്ട് പാത്ത് അറിയേണ്ടതുണ്ട്, പക്ഷേ rootMountPoint നിർവചിച്ചിട്ടില്ല. - + The command needs to know the user's name, but no username is defined. കമാൻഡിന് ഉപയോക്താവിന്റെ പേര് അറിയേണ്ടതുണ്ട്,എന്നാൽ ഉപയോക്തൃനാമമൊന്നും നിർവചിച്ചിട്ടില്ല. @@ -745,49 +750,49 @@ The installer will quit and all changes will be lost. നെറ്റ്‌വർക്ക് ഇൻസ്റ്റാളേഷൻ. (അപ്രാപ്‌തമാക്കി: പാക്കേജ് ലിസ്റ്റുകൾ നേടാനായില്ല, നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷൻ പരിശോധിക്കുക) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> %1 സജ്ജീകരിക്കുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>സജ്ജീകരണം തുടരാനാവില്ല. <a href="#details">വിവരങ്ങൾ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> %1 ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>ഇൻസ്റ്റളേഷൻ തുടരാനാവില്ല. <a href="#details">വിവരങ്ങൾ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. %1 സജ്ജീകരിക്കുന്നതിനുള്ള ചില ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>സജ്ജീകരണം തുടരാം, പക്ഷേ ചില സവിശേഷതകൾ നിഷ്ക്രിയമായിരിക്കാം. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. %1 ഇൻസ്റ്റാൾ ചെയ്യാൻ ശുപാർശ ചെയ്യപ്പെട്ടിട്ടുള്ള ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>ഇൻസ്റ്റളേഷൻ തുടരാം, പക്ഷേ ചില സവിശേഷതകൾ നിഷ്ക്രിയമായിരിക്കാം. - + This program will ask you some questions and set up %2 on your computer. ഈ പ്രക്രിയ താങ്കളോട് ചില ചോദ്യങ്ങൾ ചോദിക്കുകയും %2 താങ്കളുടെ കമ്പ്യൂട്ടറിൽ സജ്ജീകരിക്കുകയും ചെയ്യും. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1 -നായുള്ള കലാമാരേസ് സജ്ജീകരണപ്രക്രിയയിലേയ്ക്ക് സ്വാഗതം.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>%1 സജ്ജീകരണത്തിലേക്ക് സ്വാഗതം.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1 -നായുള്ള കലാമാരേസ് ഇൻസ്റ്റാളറിലേക്ക് സ്വാഗതം.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>%1 ഇൻസ്റ്റാളറിലേക്ക് സ്വാഗതം</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information പാർട്ടീഷൻ വിവരങ്ങൾ ക്രമീകരിക്കുക - + Install %1 on <strong>new</strong> %2 system partition. <strong>പുതിയ</strong> %2 സിസ്റ്റം പാർട്ടീഷനിൽ %1 ഇൻസ്റ്റാൾ ചെയ്യുക. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. <strong>%1</strong> മൗണ്ട് പോയിന്റോട് കൂടി <strong>പുതിയ</strong> %2 പാർട്ടീഷൻ സജ്ജീകരിക്കുക. - + Install %2 on %3 system partition <strong>%1</strong>. %3 സിസ്റ്റം പാർട്ടീഷൻ <strong>%1-ൽ</strong> %2 ഇൻസ്റ്റാൾ ചെയ്യുക. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. <strong>%2</strong> മൗണ്ട് പോയിന്റോട് കൂടി %3 പാർട്ടീഷൻ %1 സജ്ജീകരിക്കുക. - + Install boot loader on <strong>%1</strong>. <strong>%1-ൽ</strong> ബൂട്ട് ലോഡർ ഇൻസ്റ്റാൾ ചെയ്യുക. - + Setting up mount points. മൗണ്ട് പോയിന്റുകൾ സജ്ജീകരിക്കുക. @@ -1272,32 +1277,32 @@ The installer will quit and all changes will be lost. ഇപ്പോൾ റീസ്റ്റാർട്ട് ചെയ്യുക (&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>എല്ലാം പൂർത്തിയായി.</h1><br/>%1 താങ്കളുടെ കമ്പ്യൂട്ടറിൽ സജ്ജമാക്കപ്പെട്ടിരിക്കുന്നു. <br/>താങ്കൾക്ക് താങ്കളുടെ പുതിയ സിസ്റ്റം ഉപയോഗിച്ച് തുടങ്ങാം. - + <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 setup program.</p></body></html> <html><head/><body><p>ഈ ബോക്സിൽ ശെരിയിട്ടാൽ,നിങ്ങളുടെ സിസ്റ്റം <span style="font-style:italic;">പൂർത്തിയായി </span>അമർത്തുമ്പോഴോ സജ്ജീകരണ പ്രോഗ്രാം അടയ്ക്കുമ്പോഴോ ഉടൻ പുനരാരംഭിക്കും. - + <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>എല്ലാം പൂർത്തിയായി.</h1><br/> %1 നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഇൻസ്റ്റാൾ ചെയ്തു. <br/>നിങ്ങൾക്ക് ഇപ്പോൾ നിങ്ങളുടെ പുതിയ സിസ്റ്റത്തിലേക്ക് പുനരാരംഭിക്കാം അല്ലെങ്കിൽ %2 ലൈവ് എൻവയോൺമെൻറ് ഉപയോഗിക്കുന്നത് തുടരാം. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>ഈ ബോക്സിൽ ശെരിയിട്ടാൽ,നിങ്ങളുടെ സിസ്റ്റം <span style="font-style:italic;">പൂർത്തിയായി </span>അമർത്തുമ്പോഴോ സജ്ജീകരണ പ്രോഗ്രാം അടയ്ക്കുമ്പോഴോ ഉടൻ പുനരാരംഭിക്കും. - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>സജ്ജീകരണം പരാജയപ്പെട്ടു</h1><br/>നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ %1 സജ്ജമാക്കിയിട്ടില്ല.<br/>പിശക് സന്ദേശം ഇതായിരുന്നു: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു</h1><br/> നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ %1 സജ്ജമാക്കിയിട്ടില്ല.<br/>പിശക് സന്ദേശം ഇതായിരുന്നു: %2. @@ -1305,27 +1310,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish പൂർത്തിയാക്കുക - + Setup Complete സജ്ജീകരണം പൂർത്തിയായി - + Installation Complete ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായി - + The setup of %1 is complete. %1 ന്റെ സജ്ജീകരണം പൂർത്തിയായി. - + The installation of %1 is complete. %1 ന്റെ ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായി. @@ -1356,72 +1361,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space %1 GiB ഡിസ്ക്സ്പെയ്സ് എങ്കിലും ലഭ്യമായിരിക്കണം. - + There is not enough drive space. At least %1 GiB is required. ആവശ്യത്തിനു ഡിസ്ക്സ്പെയ്സ് ലഭ്യമല്ല. %1 GiB എങ്കിലും വേണം. - + has at least %1 GiB working memory %1 GiB RAM എങ്കിലും ലഭ്യമായിരിക്കണം. - + The system does not have enough working memory. At least %1 GiB is required. സിസ്റ്റത്തിൽ ആവശ്യത്തിനു RAM ലഭ്യമല്ല. %1 GiB എങ്കിലും വേണം. - + 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. സിസ്റ്റം ഇന്റർനെറ്റുമായി ബന്ധിപ്പിച്ചിട്ടില്ല. - + is running the installer as an administrator (root) ഇൻസ്റ്റാളർ കാര്യനിർവാഹകരിൽ ഒരാളായിട്ടാണ് (root) പ്രവർത്തിപ്പിക്കുന്നത് - + The setup program is not running with administrator rights. സെറ്റപ്പ് പ്രോഗ്രാം അഡ്മിനിസ്ട്രേറ്റർ അവകാശങ്ങൾ ഇല്ലാതെയാണ് പ്രവർത്തിക്കുന്നത്. - + The installer is not running with administrator rights. ഇൻസ്റ്റാളർ അഡ്മിനിസ്ട്രേറ്റർ അവകാശങ്ങൾ ഇല്ലാതെയാണ് പ്രവർത്തിക്കുന്നത് - + has a screen large enough to show the whole installer മുഴുവൻ ഇൻസ്റ്റാളറും കാണിക്കാൻ തക്ക വലിപ്പമുള്ള ഒരു സ്ക്രീനുണ്ട് - + The screen is too small to display the setup program. സജ്ജീകരണ പ്രയോഗം കാണിക്കാൻ തക്ക വലുപ്പം സ്ക്രീനിനില്ല. - + The screen is too small to display the installer. ഇൻസ്റ്റാളർ കാണിക്കാൻ തക്ക വലുപ്പം സ്ക്രീനിനില്ല. @@ -1769,6 +1774,16 @@ The installer will quit and all changes will be lost. മെഷീൻ ഐഡിയ്ക്ക് റൂട്ട് മൗണ്ട് പോയിന്റൊന്നും ക്രമീകരിച്ചിട്ടില്ല + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ The installer will quit and all changes will be lost. OEM ബാച്ച് ഐഡന്റിഫയർ <code>%1</code> ആയി ക്രമീകരിക്കുക. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ The installer will quit and all changes will be lost. പാർട്ടീഷനുകൾ - + Install %1 <strong>alongside</strong> another operating system. മറ്റൊരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനൊപ്പം %1 ഇൻസ്റ്റാൾ ചെയ്യുക. - + <strong>Erase</strong> disk and install %1. ഡിസ്ക് <strong>മായ്ക്കുക</strong>എന്നിട്ട് %1 ഇൻസ്റ്റാൾ ചെയ്യുക. - + <strong>Replace</strong> a partition with %1. ഒരു പാർട്ടീഷൻ %1 ഉപയോഗിച്ച് <strong>പുനഃസ്ഥാപിക്കുക.</strong> - + <strong>Manual</strong> partitioning. <strong>സ്വമേധയാ</strong> ഉള്ള പാർട്ടീഷനിങ്. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). %2 (%3) ഡിസ്കിൽ മറ്റൊരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനൊപ്പം %1 ഇൻസ്റ്റാൾ ചെയ്യുക. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. ഡിസ്ക് <strong>%2</strong> (%3) <strong>മായ്‌ച്ച് </strong> %1 ഇൻസ്റ്റാൾ ചെയ്യുക. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>%2</strong> (%3) ഡിസ്കിലെ ഒരു പാർട്ടീഷൻ %1 ഉപയോഗിച്ച് <strong>മാറ്റിസ്ഥാപിക്കുക</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>%1 </strong>(%2) ഡിസ്കിലെ <strong>സ്വമേധയാ</strong> പാർട്ടീഷനിംഗ്. - + Disk <strong>%1</strong> (%2) ഡിസ്ക് <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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set ഇഎഫ്ഐ സിസ്റ്റം പാർട്ടീഷൻ ഫ്ലാഗ് ക്രമീകരിച്ചിട്ടില്ല - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. എൻക്രിപ്റ്റ് ചെയ്ത ഒരു റൂട്ട് പാർട്ടീഷനോടൊപ്പം ഒരു വേർപെടുത്തിയ ബൂട്ട് പാർട്ടീഷനും ക്രമീകരിക്കപ്പെട്ടിരുന്നു, എന്നാൽ ബൂട്ട് പാർട്ടീഷൻ എൻക്രിപ്റ്റ് ചെയ്യപ്പെട്ടതല്ല.<br/><br/>ഇത്തരം സജ്ജീകരണത്തിന്റെ സുരക്ഷ ഉത്കണ്ഠാജനകമാണ്, എന്തെന്നാൽ പ്രധാനപ്പെട്ട സിസ്റ്റം ഫയലുകൾ ഒരു എൻക്രിപ്റ്റ് ചെയ്യപ്പെടാത്ത പാർട്ടീഷനിലാണ് സൂക്ഷിച്ചിട്ടുള്ളത്.<br/> താങ്കൾക്ക് വേണമെങ്കിൽ തുടരാം, പക്ഷേ ഫയൽ സിസ്റ്റം തുറക്കൽ സിസ്റ്റം ആരംഭപ്രക്രിയയിൽ വൈകിയേ സംഭവിക്കൂ.<br/>ബൂട്ട് പാർട്ടീഷൻ എൻക്രിപ്റ്റ് ചെയ്യാനായി, തിരിച്ചു പോയി പാർട്ടീഷൻ നിർമ്മാണ ജാലകത്തിൽ <strong>എൻക്രിപ്റ്റ്</strong> തിരഞ്ഞെടുത്തുകൊണ്ട് അത് വീണ്ടും നിർമ്മിക്കുക. - + has at least one disk device available. ഒരു ഡിസ്ക് ഡിവൈസെങ്കിലും ലഭ്യമാണ്. - + There are no partitions to install on. @@ -2660,14 +2688,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. ആജ്ഞയിൽ നിന്നും ഔട്ട്പുട്ടൊന്നുമില്ല. - + Output: @@ -2676,52 +2704,52 @@ Output: - + External command crashed. ബാഹ്യമായ ആജ്ഞ തകർന്നു. - + Command <i>%1</i> crashed. ആജ്ഞ <i>%1</i> പ്രവർത്തനരഹിതമായി. - + External command failed to start. ബാഹ്യമായ ആജ്ഞ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു. - + Command <i>%1</i> failed to start. <i>%1</i>ആജ്ഞ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു. - + 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. ആജ്ഞ <i>%1</i> %2 സെക്കൻഡുകൾക്കുള്ളിൽ പൂർത്തിയാവുന്നതിൽ പരാജയപ്പെട്ടു. - + External command finished with errors. ബാഹ്യമായ ആജ്ഞ പിഴവുകളോട് കൂടീ പൂർത്തിയായി. - + Command <i>%1</i> finished with exit code %2. ആജ്ഞ <i>%1</i> എക്സിറ്റ് കോഡ് %2ഓട് കൂടി പൂർത്തിയായി. @@ -2729,32 +2757,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - <i>%1</i>മൊഡ്യൂളിനായുള്ള ആവശ്യകതകൾ പരിശോധിക്കൽ പൂർത്തിയായിരിക്കുന്നു. - - - + unknown അജ്ഞാതം - + extended വിസ്തൃതമായത് - + unformatted ഫോർമാറ്റ് ചെയ്യപ്പെടാത്തത് - + swap സ്വാപ്പ് @@ -2808,6 +2831,15 @@ Output: പാർട്ടീഷൻ ചെയ്യപ്പെടാത്ത സ്ഥലം അല്ലെങ്കിൽ അപരിചിതമായ പാർട്ടീഷൻ ടേബിൾ + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Output: ഫോം - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. %1 എവിടെ ഇൻസ്റ്റാൾ ചെയ്യണമെന്ന് തിരഞ്ഞെടുക്കുക.<br/><font color="red">മുന്നറിയിപ്പ്: </font> ഇത് തിരഞ്ഞെടുത്ത പാർട്ടീഷനിലെ എല്ലാ ഫയലുകളും നീക്കം ചെയ്യും. - + The selected item does not appear to be a valid partition. തിരഞ്ഞെടുക്കപ്പെട്ടത് സാധുവായ ഒരു പാർട്ടീഷനായി തോന്നുന്നില്ല. - + %1 cannot be installed on empty space. Please select an existing partition. %1 ഒരു ശൂന്യമായ സ്ഥലത്ത് ഇൻസ്റ്റാൾ ചെയ്യാൻ സാധിക്കില്ല. ദയവായി നിലവിലുള്ള ഒരു പാർട്ടീഷൻ തിരഞ്ഞെടുക്കൂ. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 ഒരു എക്സ്റ്റൻഡഡ് പാർട്ടീഷനിൽ ചെയ്യാൻ സാധിക്കില്ല. ദയവായി നിലവിലുള്ള ഒരു പ്രൈമറി അല്ലെങ്കിൽ ലോജിക്കൽ പാർട്ടീഷൻ തിരഞ്ഞെടുക്കൂ. - + %1 cannot be installed on this partition. %1 ഈ പാർട്ടീഷനിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ സാധിക്കില്ല. - + Data partition (%1) ഡാറ്റ പാർട്ടീഷൻ (%1) - + Unknown system partition (%1) അപരിചിതമായ സിസ്റ്റം പാർട്ടീഷൻ (%1) - + %1 system partition (%2) %1 സിസ്റ്റം പാർട്ടീഷൻ (%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>%4</strong><br/><br/>പാർട്ടീഷൻ %1 %2ന് തീരെ ചെറുതാണ്. ദയവായി %3ജിബി എങ്കീലും ഇടമുള്ള ഒരു പാർട്ടീഷൻ തിരഞ്ഞെടുക്കൂ. - + <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>%2</strong><br/><br/>ഈ സിസ്റ്റത്തിൽ എവിടേയും ഒരു ഇഎഫ്ഐ സിസ്റ്റം പർട്ടീഷൻ കണ്ടെത്താനായില്ല. %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. <strong>%3</strong><br/><br/>%1 %2ൽ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടും.<br/><font color="red">മുന്നറിയിപ്പ്:</font>പാർട്ടീഷൻ %2ൽ ഉള്ള എല്ലാ ഡാറ്റയും നഷ്ടപ്പെടും. - + The EFI system partition at %1 will be used for starting %2. %1 ലെ ഇഎഫ്ഐ സിസ്റ്റം പാർട്ടീഷൻ %2 ആരംഭിക്കുന്നതിന് ഉപയോഗിക്കും. - + EFI system partition: ഇഎഫ്ഐ സിസ്റ്റം പാർട്ടീഷൻ + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: മികച്ച ഫലങ്ങൾക്കായി ഈ കമ്പ്യൂട്ടർ താഴെപ്പറയുന്നവ നിറവേറ്റുന്നു എന്നുറപ്പുവരുത്തുക: - + System requirements സിസ്റ്റം ആവശ്യകതകൾ @@ -3045,27 +3092,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> %1 സജ്ജീകരിക്കുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>സജ്ജീകരണം തുടരാനാവില്ല. <a href="#details">വിവരങ്ങൾ...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> %1 ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>ഇൻസ്റ്റളേഷൻ തുടരാനാവില്ല. <a href="#details">വിവരങ്ങൾ...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. %1 സജ്ജീകരിക്കുന്നതിനുള്ള ചില ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>സജ്ജീകരണം തുടരാം, പക്ഷേ ചില സവിശേഷതകൾ നിഷ്ക്രിയമായിരിക്കാം. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. %1 ഇൻസ്റ്റാൾ ചെയ്യാൻ ശുപാർശ ചെയ്യപ്പെട്ടിട്ടുള്ള ആവശ്യങ്ങൾ ഈ കമ്പ്യൂട്ടർ നിറവേറ്റുന്നില്ല.<br/>ഇൻസ്റ്റളേഷൻ തുടരാം, പക്ഷേ ചില സവിശേഷതകൾ നിഷ്ക്രിയമായിരിക്കാം. - + This program will ask you some questions and set up %2 on your computer. ഈ പ്രക്രിയ താങ്കളോട് ചില ചോദ്യങ്ങൾ ചോദിക്കുകയും %2 താങ്കളുടെ കമ്പ്യൂട്ടറിൽ സജ്ജീകരിക്കുകയും ചെയ്യും. @@ -3348,51 +3395,80 @@ Output: TrackingInstallJob - + Installation feedback ഇൻസ്റ്റളേഷനെ പറ്റിയുള്ള പ്രതികരണം - + Sending installation feedback. ഇൻസ്റ്റളേഷനെ പറ്റിയുള്ള പ്രതികരണം അയയ്ക്കുന്നു. - + Internal error in install-tracking. ഇൻസ്റ്റാൾ-പിന്തുടരുന്നതിൽ ആന്തരികമായ പിഴവ്. - + HTTP request timed out. HTTP അപേക്ഷയുടെ സമയപരിധി കഴിഞ്ഞു. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback ഉപകരണത്തിൽ നിന്നുള്ള പ്രതികരണം - + Configuring machine feedback. ഉപകരണത്തിൽ നിന്നുള്ള പ്രതികരണം ക്രമീകരിക്കുന്നു. - - + + Error in machine feedback configuration. ഉപകരണത്തിൽ നിന്നുള്ള പ്രതികരണത്തിന്റെ ക്രമീകരണത്തിൽ പിഴവ്. - + Could not configure machine feedback correctly, script error %1. ഉപകരണത്തിൽ നിന്നുള്ള പ്രതികരണം ശരിയായി ക്രമീകരിക്കാനായില്ല. സ്ക്രിപ്റ്റ് പിഴവ് %1. - + Could not configure machine feedback correctly, Calamares error %1. ഉപകരണത്തിൽ നിന്നുള്ള പ്രതികരണം ശരിയായി ക്രമീകരിക്കാനായില്ല. കലാമാരേസ് പിഴവ് %1. @@ -3411,8 +3487,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>ഇത് തിരഞ്ഞെടുക്കുന്നതിലൂടെ, നിങ്ങളുടെ ഇൻസ്റ്റാളേഷനെക്കുറിച്ച് <span style=" font-weight:600;">ഒരു വിവരവും നിങ്ങൾ അയയ്‌ക്കില്ല.</span></p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">ഉപയോക്തൃ ഫീഡ്‌ബാക്കിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് ഇവിടെ ക്ലിക്കുചെയ്യുക</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. - എത്ര ഉപയോക്താക്കളുണ്ട് ,ഏത് ഹാർഡ്‌വെയറിലാണ് %1 ഇൻസ്റ്റാൾ ചെയ്യുന്നത് (ചുവടെയുള്ള അവസാന രണ്ടു ഓപ്ഷനുകൾക്കൊപ്പം) കൂടാതെ നിങ്ങൾ മുന്ഗണന നൽകുന്ന പ്രയോഗങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ നേടുന്നതിന് %1 ഇൻസ്റ്റാൾ ട്രാക്കിംഗ് സഹായിക്കുന്നു.എന്താണ് അയയ്‌ക്കുന്നതെന്ന് കാണാൻ, ഓരോ ഭാഗത്തിനും അടുത്തുള്ള സഹായ ഐക്കണിൽ ക്ലിക്കുചെയ്യുക. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - ഇത് തിരഞ്ഞെടുക്കുന്നതിലൂടെ നിങ്ങളുടെ ഇൻസ്റ്റാളേഷനെക്കുറിച്ചും ഹാർഡ്‌വെയറിനെക്കുറിച്ചും വിവരങ്ങൾ അയയ്ക്കും. ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായതിന് ശേഷം <b>ഒരു തവണ മാത്രമേ ഈ വിവരങ്ങൾ അയയ്ക്കൂ</b>. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - ഇത് തിരഞ്ഞെടുക്കുന്നതിലൂടെ താങ്കൾ <b>ഇടയ്ക്കിടെ</b>താങ്കളുടെ ഇൻസ്റ്റളേഷനെയും ഹാർഡ്‌വെയറിനെയും പ്രയോഗങ്ങളേയും പറ്റിയുള്ള വിവരങ്ങൾ %1ന് അയച്ചുകൊടുക്കും. + + By selecting this you will periodically send information about your <b>machine</b> 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. - ഇത് തിരഞ്ഞെടുക്കുന്നതിലൂടെ നിങ്ങളുടെ ഇൻസ്റ്റാളേഷൻ, ഹാർഡ്‌വെയർ, ആപ്ലിക്കേഷനുകൾ, ഉപയോഗ രീതികൾ എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ <b>പതിവായി</b> %1 ലേക്ക് അയയ്ക്കും. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback പ്രതികരണം @@ -3629,42 +3705,42 @@ Output: പ്രകാശന കുറിപ്പുകൾ (&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>%1 -നായുള്ള കലാമാരേസ് സജ്ജീകരണപ്രക്രിയയിലേയ്ക്ക് സ്വാഗതം.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>%1 സജ്ജീകരണത്തിലേക്ക് സ്വാഗതം.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>%1 -നായുള്ള കലാമാരേസ് ഇൻസ്റ്റാളറിലേക്ക് സ്വാഗതം.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>%1 ഇൻസ്റ്റാളറിലേക്ക് സ്വാഗതം</h1> - + %1 support %1 പിന്തുണ - + About %1 setup %1 സജ്ജീകരണത്തെക്കുറിച്ച് - + About %1 installer %1 ഇൻസ്റ്റാളറിനെ കുറിച്ച് - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3672,7 +3748,7 @@ Output: WelcomeQmlViewStep - + Welcome സ്വാഗതം @@ -3680,7 +3756,7 @@ Output: WelcomeViewStep - + Welcome സ്വാഗതം @@ -3709,6 +3785,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3754,6 +3850,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3805,27 +3919,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_mr.ts b/lang/calamares_mr.ts index bc9f94226..f564dc3d0 100644 --- a/lang/calamares_mr.ts +++ b/lang/calamares_mr.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install अधिष्ठापना @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done पूर्ण झाली @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 %1 %2 आज्ञा चालवला जातोय @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 क्रिया चालवला जातोय - + 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &होय - + &No &नाही @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now &आता अधिष्ठापित करा - + Go &back &मागे जा - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. अधिष्ठापना संपूर्ण झाली. अधिष्ठापक बंद करा. - + Cancel setup without changing the system. - + Cancel installation without changing the system. प्रणालीत बदल न करता अधिष्टापना रद्द करा. - + &Next &पुढे - + &Back &मागे - + &Done &पूर्ण झाली - + &Cancel &रद्द करा - + Cancel setup? - + Cancel installation? अधिष्ठापना रद्द करायचे? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information दोषमार्जन माहिती दर्शवा - + &Back &मागे - + &Next &पुढे - + &Cancel &रद्द करा - + %1 Setup Program - + %1 Installer %1 अधिष्ठापक @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,49 +747,49 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>‌%1 साठी असलेल्या अधिष्ठापकमध्ये स्वागत आहे.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>‌%1 अधिष्ठापकमधे स्वागत आहे.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: स्वरुप - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements प्रणालीची आवशक्यता @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob - + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: &प्रकाशन टिपा - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>‌%1 साठी असलेल्या अधिष्ठापकमध्ये स्वागत आहे.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>‌%1 अधिष्ठापकमधे स्वागत आहे.</h1> - + %1 support %1 पाठबळ - + About %1 setup - + About %1 installer %1 अधिष्ठापक बद्दल - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome स्वागत @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome स्वागत @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_nb.ts b/lang/calamares_nb.ts index 626fe0d4a..6c11386a2 100644 --- a/lang/calamares_nb.ts +++ b/lang/calamares_nb.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Installer @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Ferdig @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Kjører kommando %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path Feil filsti til arbeidsmappe - + Working directory %1 for python job %2 is not readable. Arbeidsmappe %1 for python oppgave %2 er ikke lesbar. - + Bad main script file Ugyldig hovedskriptfil - + Main script file %1 for python job %2 is not readable. Hovedskriptfil %1 for python oppgave %2 er ikke lesbar. - + Boost.Python error in job "%1". Boost.Python feil i oppgave "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &Ja - + &No &Nei @@ -314,108 +319,108 @@ - + Continue with setup? Fortsette å sette opp? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 vil nå gjøre endringer på harddisken, for å installere %2. <br/><strong>Du vil ikke kunne omgjøre disse endringene.</strong> - + &Set up now - + &Install now &Installer nå - + Go &back Gå &tilbake - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Installasjonen er fullført. Lukk installeringsprogrammet. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &Neste - + &Back &Tilbake - + &Done &Ferdig - + &Cancel &Avbryt - + Cancel setup? - + Cancel installation? Avbryte installasjon? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Vil du virkelig avbryte installasjonen? @@ -425,22 +430,22 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CalamaresPython::Helper - + Unknown exception type Ukjent unntakstype - + unparseable Python error Ikke-kjørbar Python feil - + unparseable Python traceback Ikke-kjørbar Python tilbakesporing - + Unfetchable Python error. Ukjent Python feil. @@ -457,32 +462,32 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CalamaresWindow - + Show debug information Vis feilrettingsinformasjon - + &Back &Tilbake - + &Next &Neste - + &Cancel &Avbryt - + %1 Setup Program - + %1 Installer %1 Installasjonsprogram @@ -679,18 +684,18 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -743,48 +748,48 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Denne datamaskinen oppfyller ikke minimumskravene for installering %1.<br/> Installeringen kan ikke fortsette. <a href="#details">Detaljer..</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1222,37 +1227,37 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. 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. @@ -1270,32 +1275,32 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt.&Start på nytt nå - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Innnstallasjonen mislyktes</h1><br/>%1 har ikke blitt installert på datamaskinen din.<br/>Feilmeldingen var: %2. @@ -1303,27 +1308,27 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete Installasjon fullført - + The setup of %1 is complete. - + The installation of %1 is complete. Installasjonen av %1 er fullført. @@ -1354,72 +1359,72 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source er koblet til en strømkilde - + The system is not plugged in to a power source. Systemet er ikke koblet til en strømkilde. - + is connected to the Internet er tilkoblet Internett - + The system is not connected to the Internet. Systemet er ikke tilkoblet Internett. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1767,6 +1772,16 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,65 +2686,65 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. 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. Ugyldige parametere for prosessens oppgavekall - + 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. @@ -2724,32 +2752,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2803,6 +2826,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2838,73 +2870,88 @@ Output: 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. %1 kan ikke bli installert på denne partisjonen. - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3027,12 +3074,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements Systemkrav @@ -3040,27 +3087,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Denne datamaskinen oppfyller ikke minimumskravene for installering %1.<br/> Installeringen kan ikke fortsette. <a href="#details">Detaljer..</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3343,51 +3390,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3406,7 +3482,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3415,30 +3491,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3624,42 +3700,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3667,7 +3743,7 @@ Output: WelcomeQmlViewStep - + Welcome Velkommen @@ -3675,7 +3751,7 @@ Output: WelcomeViewStep - + Welcome Velkommen @@ -3704,6 +3780,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3749,6 +3845,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3800,27 +3914,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ne_NP.ts b/lang/calamares_ne_NP.ts index acb1c22b2..a200c91f9 100644 --- a/lang/calamares_ne_NP.ts +++ b/lang/calamares_ne_NP.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts index 0c7e6f87a..07ac3dfcd 100644 --- a/lang/calamares_nl.ts +++ b/lang/calamares_nl.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Inrichten - + Install Installeer @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Gereed @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Uitvoeren van opdracht %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Bewerking %1 uitvoeren. - + Bad working directory path Ongeldig pad voor huidige map - + Working directory %1 for python job %2 is not readable. Werkmap %1 voor python taak %2 onleesbaar. - + Bad main script file Onjuist hoofdscriptbestand - + Main script file %1 for python job %2 is not readable. Hoofdscriptbestand %1 voor python taak %2 onleesbaar. - + Boost.Python error in job "%1". Boost.Python fout in taak "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n seconde) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes &ja - + &No &Nee @@ -314,108 +319,108 @@ <br/>The volgende modules konden niet worden geladen: - + Continue with setup? Doorgaan met installatie? - + Continue with installation? Doorgaan met installatie? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> Het %1 installatieprogramma zal nu aanpassingen maken aan je schijf om %2 te installeren.<br/><strong>Deze veranderingen kunnen niet ongedaan gemaakt worden.</strong> - + &Set up now Nu &Inrichten - + &Install now Nu &installeren - + Go &back Ga &terug - + &Set up &Inrichten - + &Install &Installeer - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. De installatie is voltooid. Sluit het installatie-programma. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Installatie afbreken zonder aanpassingen aan het systeem. - + &Next &Volgende - + &Back &Terug - + &Done Voltooi&d - + &Cancel &Afbreken - + Cancel setup? - + Cancel installation? Installatie afbreken? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Wil je het huidige installatieproces echt afbreken? @@ -425,22 +430,22 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CalamaresPython::Helper - + Unknown exception type Onbekend uitzonderingstype - + unparseable Python error onuitvoerbare Python fout - + unparseable Python traceback onuitvoerbare Python traceback - + Unfetchable Python error. Onbekende Python fout. @@ -457,32 +462,32 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CalamaresWindow - + Show debug information Toon debug informatie - + &Back &Terug - + &Next &Volgende - + &Cancel &Afbreken - + %1 Setup Program - + %1 Installer %1 Installatieprogramma @@ -679,18 +684,18 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CommandList - - + + Could not run command. Kon de opdracht niet uitvoeren. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. De opdracht loopt in de gastomgeving en moet het root pad weten, maar rootMountPoint is niet gedefinieerd. - + The command needs to know the user's name, but no username is defined. De opdracht moet de naam van de gebruiker weten, maar de gebruikersnaam is niet gedefinieerd. @@ -743,49 +748,49 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Netwerkinstallatie. (Uitgeschakeld: kon de pakketlijsten niet binnenhalen, controleer de netwerkconnectie) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Deze computer voldoet niet aan de minimumvereisten om %1 te installeren.<br/>De installatie kan niet doorgaan. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Deze computer voldoet niet aan enkele van de aanbevolen specificaties om %1 te installeren.<br/>De installatie kan doorgaan, maar sommige functies kunnen uitgeschakeld zijn. - + This program will ask you some questions and set up %2 on your computer. Dit programma stelt je enkele vragen en installeert %2 op jouw computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Welkom in het Calamares voorbereidingsprogramma voor %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Welkom in het Calamares installatieprogramma voor %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Welkom in het %1 installatieprogramma.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1222,37 +1227,37 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. FillGlobalStorageJob - + Set partition information Instellen partitie-informatie - + Install %1 on <strong>new</strong> %2 system partition. Installeer %1 op <strong>nieuwe</strong> %2 systeempartitie. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Maak <strong>nieuwe</strong> %2 partitie met aankoppelpunt <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Installeer %2 op %3 systeempartitie <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Stel %3 partitie <strong>%1</strong> in met aankoppelpunt <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Installeer bootloader op <strong>%1</strong>. - + Setting up mount points. Aankoppelpunten instellen. @@ -1270,32 +1275,32 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. &Nu herstarten - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Klaar.</h1><br/>%1 is op je computer geïnstalleerd.<br/>Je mag je nieuwe systeem nu herstarten of de %2 Live omgeving blijven gebruiken. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installatie Mislukt</h1><br/>%1 werd niet op de computer geïnstalleerd. <br/>De foutboodschap was: %2 @@ -1303,27 +1308,27 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. FinishedViewStep - + Finish Beëindigen - + Setup Complete - + Installation Complete Installatie Afgerond. - + The setup of %1 is complete. - + The installation of %1 is complete. De installatie van %1 is afgerond. @@ -1354,72 +1359,72 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. Er is niet genoeg schijfruimte. Tenminste %1 GiB is vereist. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. Het systeem heeft niet genoeg intern geheugen. Tenminste %1 GiB is vereist. - + is plugged in to a power source aangesloten is op netstroom - + The system is not plugged in to a power source. Dit systeem is niet aangesloten op netstroom. - + is connected to the Internet verbonden is met het Internet - + The system is not connected to the Internet. Dit systeem is niet verbonden met het Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Het installatieprogramma draait zonder administratorrechten. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Het schem is te klein on het installatieprogramma te vertonen. @@ -1767,6 +1772,16 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1905,6 +1920,19 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2492,107 +2520,107 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Partities - + Install %1 <strong>alongside</strong> another operating system. Installeer %1 <strong>naast</strong> een ander besturingssysteem. - + <strong>Erase</strong> disk and install %1. <strong>Wis</strong> schijf en installeer %1. - + <strong>Replace</strong> a partition with %1. <strong>Vervang</strong> een partitie met %1. - + <strong>Manual</strong> partitioning. <strong>Handmatig</strong> partitioneren. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installeer %1 <strong>naast</strong> een ander besturingssysteem op schijf <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Wis</strong> schijf <strong>%2</strong> (%3) en installeer %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Vervang</strong> een partitie op schijf <strong>%2</strong> (%3) met %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Handmatig</strong> partitioneren van schijf <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Schijf <strong>%1</strong> (%2) - + Current: Huidig: - + After: Na: - + No EFI system partition configured Geen EFI systeempartitie geconfigureerd - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set EFI-systeem partitievlag niet ingesteld. - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Bootpartitie niet versleuteld - + 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. Een aparte bootpartitie was ingesteld samen met een versleutelde rootpartitie, maar de bootpartitie zelf is niet versleuteld.<br/><br/>Dit is niet volledig veilig, aangezien belangrijke systeembestanden bewaard worden op een niet-versleutelde partitie.<br/>Je kan doorgaan als je wil, maar het ontgrendelen van bestandssystemen zal tijdens het opstarten later plaatsvinden.<br/>Om de bootpartitie toch te versleutelen: keer terug en maak de bootpartitie opnieuw, waarbij je <strong>Versleutelen</strong> aanvinkt in het venster partitie aanmaken. - + has at least one disk device available. - + There are no partitions to install on. @@ -2658,14 +2686,14 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. ProcessResult - + There was no output from the command. Er was geen uitvoer van de opdracht. - + Output: @@ -2674,52 +2702,52 @@ Uitvoer: - + External command crashed. Externe opdracht is vastgelopen. - + Command <i>%1</i> crashed. Opdracht <i>%1</i> is vastgelopen. - + External command failed to start. Externe opdracht kon niet worden gestart. - + Command <i>%1</i> failed to start. Opdracht <i>%1</i> kon niet worden gestart. - + Internal error when starting command. Interne fout bij het starten van de opdracht. - + Bad parameters for process job call. Onjuiste parameters voor procestaak - + External command failed to finish. Externe opdracht is niet correct beëindigd. - + Command <i>%1</i> failed to finish in %2 seconds. Opdracht <i>%1</i> is niet beëindigd in %2 seconden. - + External command finished with errors. Externe opdracht beëindigd met fouten. - + Command <i>%1</i> finished with exit code %2. Opdracht <i>%1</i> beëindigd met foutcode %2. @@ -2727,32 +2755,27 @@ Uitvoer: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown onbekend - + extended uitgebreid - + unformatted niet-geformateerd - + swap wisselgeheugen @@ -2806,6 +2829,15 @@ Uitvoer: Niet-gepartitioneerde ruimte of onbekende partitietabel + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2841,73 +2873,88 @@ Uitvoer: Formulier - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Kies waar %1 te installeren. <br/><font color="red">Opgelet: </font>dit zal alle bestanden op de geselecteerde partitie wissen. - + The selected item does not appear to be a valid partition. Het geselecteerde item is geen geldige partitie. - + %1 cannot be installed on empty space. Please select an existing partition. %1 kan niet worden geïnstalleerd op lege ruimte. Kies een bestaande partitie. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 kan niet op een uitgebreide partitie geïnstalleerd worden. Kies een bestaande primaire of logische partitie. - + %1 cannot be installed on this partition. %1 kan niet op deze partitie geïnstalleerd worden. - + Data partition (%1) Gegevenspartitie (%1) - + Unknown system partition (%1) Onbekende systeempartitie (%1) - + %1 system partition (%2) %1 systeempartitie (%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>%4</strong><br/><br/>Partitie %1 is te klein voor %2. Gelieve een partitie te selecteren met een capaciteit van minstens %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>%2</strong><br/><br/>Er werd geen EFI systeempartite gevonden op dit systeem. Gelieve terug te keren en manueel te partitioneren om %1 in te stellen. - - - + + + <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 zal geïnstalleerd worden op %2.<br/><font color="red">Opgelet: </font>alle gegevens op partitie %2 zullen verloren gaan. - + The EFI system partition at %1 will be used for starting %2. De EFI systeempartitie op %1 zal gebruikt worden om %2 te starten. - + EFI system partition: EFI systeempartitie: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3030,12 +3077,12 @@ Uitvoer: ResultsListDialog - + For best results, please ensure that this computer: Voor de beste resultaten is het aangeraden dat deze computer: - + System requirements Systeemvereisten @@ -3043,27 +3090,27 @@ Uitvoer: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Deze computer voldoet niet aan de minimumvereisten om %1 te installeren.<br/>De installatie kan niet doorgaan. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Deze computer voldoet niet aan enkele van de aanbevolen specificaties om %1 te installeren.<br/>De installatie kan doorgaan, maar sommige functies kunnen uitgeschakeld zijn. - + This program will ask you some questions and set up %2 on your computer. Dit programma stelt je enkele vragen en installeert %2 op jouw computer. @@ -3346,51 +3393,80 @@ Uitvoer: TrackingInstallJob - + Installation feedback Installatiefeedback - + Sending installation feedback. Installatiefeedback opsturen. - + Internal error in install-tracking. Interne fout in de installatie-tracking. - + HTTP request timed out. HTTP request is verlopen. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Machinefeedback - + Configuring machine feedback. Instellen van machinefeedback. - - + + Error in machine feedback configuration. Fout in de configuratie van de machinefeedback. - + Could not configure machine feedback correctly, script error %1. Kon de machinefeedback niet correct instellen, scriptfout %1. - + Could not configure machine feedback correctly, Calamares error %1. Kon de machinefeedback niet correct instellen, Calamares-fout %1. @@ -3409,8 +3485,8 @@ Uitvoer: - <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>Door dit aan te vinken zal er <span style=" font-weight:600;">geen enkele informatie</span> over jouw installatie verstuurd worden.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3418,30 +3494,30 @@ Uitvoer: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klik hier voor meer informatie over gebruikersfeedback</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. - Installatie-tracking helpt %1 om te zien hoeveel gebruikers ze hebben, op welke hardware %1 geïnstalleerd wordt en (met de laatste twee opties hieronder) op de hoogte te blijven van de geprefereerde toepassingen. Om na te gaan wat verzonden zal worden, klik dan op het help-pictogram naast elke optie. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Door dit aan te vinken zal er informatie verstuurd worden over jouw installatie en hardware. Deze informatie zal <b>slechts eenmaal verstuurd worden</b> na het afronden van de installatie. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Door dit aan te vinken zal <b>periodiek</b> informatie verstuurd worden naar %1 over jouw installatie, hardware en toepassingen. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Door dit aan te vinken zal <b>regelmatig</b> informatie verstuurd worden naar %1 over jouw installatie, hardware, toepassingen en gebruikspatronen. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Feedback @@ -3627,42 +3703,42 @@ Uitvoer: Aantekeningen bij deze ve&rsie - + <h1>Welcome to the Calamares setup program for %1.</h1> Welkome in het Calamares voorbereidingsprogramma voor %1. - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Welkom in het Calamares installatieprogramma voor %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Welkom in het %1 installatieprogramma.</h1> - + %1 support %1 ondersteuning - + About %1 setup - + About %1 installer Over het %1 installatieprogramma - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3670,7 +3746,7 @@ Uitvoer: WelcomeQmlViewStep - + Welcome Welkom @@ -3678,7 +3754,7 @@ Uitvoer: WelcomeViewStep - + Welcome Welkom @@ -3707,6 +3783,26 @@ Uitvoer: Terug + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Terug + + keyboardq @@ -3752,6 +3848,24 @@ Uitvoer: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3803,27 +3917,27 @@ Uitvoer: - + About Over - + Support Ondersteuning - + Known issues Bekende problemen - + Release notes Aantekeningen bij deze versie - + Donate Doneren diff --git a/lang/calamares_pl.ts b/lang/calamares_pl.ts index 742fdf45f..a9742c80e 100644 --- a/lang/calamares_pl.ts +++ b/lang/calamares_pl.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Zainstaluj @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Ukończono @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Wykonywanie polecenia %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Wykonuję operację %1. - + Bad working directory path Niepoprawna ścieżka katalogu roboczego - + Working directory %1 for python job %2 is not readable. Katalog roboczy %1 dla zadań pythona %2 jest nieosiągalny. - + Bad main script file Niepoprawny główny plik skryptu - + Main script file %1 for python job %2 is not readable. Główny plik skryptu %1 dla zadań pythona %2 jest nieczytelny. - + Boost.Python error in job "%1". Wystąpił błąd Boost.Python w zadaniu "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). Oczekiwanie na %n moduł. @@ -238,7 +243,7 @@ - + (%n second(s)) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. @@ -277,13 +282,13 @@ - + &Yes &Tak - + &No &Nie @@ -318,108 +323,108 @@ <br/>Następujące moduły nie mogły zostać wczytane: - + Continue with setup? Kontynuować z programem instalacyjnym? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> Instalator %1 zamierza przeprowadzić zmiany na Twoim dysku, aby zainstalować %2.<br/><strong>Nie będziesz mógł cofnąć tych zmian.</strong> - + &Set up now - + &Install now &Zainstaluj teraz - + Go &back &Cofnij się - + &Set up - + &Install Za&instaluj - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Instalacja ukończona pomyślnie. Możesz zamknąć instalator. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Anuluj instalację bez dokonywania zmian w systemie. - + &Next &Dalej - + &Back &Wstecz - + &Done &Ukończono - + &Cancel &Anuluj - + Cancel setup? Anulować ustawianie? - + Cancel installation? Anulować instalację? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Czy na pewno chcesz anulować obecny proces instalacji? @@ -429,22 +434,22 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CalamaresPython::Helper - + Unknown exception type Nieznany rodzaj wyjątku - + unparseable Python error nieparowalny błąd Pythona - + unparseable Python traceback nieparowalny traceback Pythona - + Unfetchable Python error. Nieosiągalny błąd Pythona. @@ -461,32 +466,32 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CalamaresWindow - + Show debug information Pokaż informacje debugowania - + &Back &Wstecz - + &Next &Dalej - + &Cancel &Anuluj - + %1 Setup Program - + %1 Installer Instalator %1 @@ -683,18 +688,18 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CommandList - - + + Could not run command. Nie można wykonać polecenia. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Polecenie uruchomione jest w środowisku hosta i musi znać ścieżkę katalogu głównego, jednakże nie został określony punkt montowania katalogu głównego (root). - + The command needs to know the user's name, but no username is defined. Polecenie musi znać nazwę użytkownika, ale żadna nazwa nie została jeszcze zdefiniowana. @@ -747,49 +752,49 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Instalacja sieciowa. (Wyłączona: Nie można pobrać listy pakietów, sprawdź swoje połączenie z siecią) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ten komputer nie spełnia minimalnych wymagań, niezbędnych do instalacji %1.<br/>Instalacja nie może być kontynuowana. <a href="#details">Szczegóły...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ten komputer nie spełnia wszystkich, zalecanych do instalacji %1 wymagań.<br/>Instalacja może być kontynuowana, ale niektóre opcje mogą być niedostępne. - + This program will ask you some questions and set up %2 on your computer. Ten program zada Ci garść pytań i ustawi %2 na Twoim komputerze. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Witamy w ustawianiu %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Witamy w instalatorze Calamares dla systemu %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Witamy w instalatorze %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1226,37 +1231,37 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. FillGlobalStorageJob - + Set partition information Ustaw informacje partycji - + Install %1 on <strong>new</strong> %2 system partition. Zainstaluj %1 na <strong>nowej</strong> partycji systemowej %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Ustaw <strong>nową</strong> partycję %2 z punktem montowania <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Zainstaluj %2 na partycji systemowej %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Ustaw partycję %3 <strong>%1</strong> z punktem montowania <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Zainstaluj program rozruchowy na <strong>%1</strong>. - + Setting up mount points. Ustawianie punktów montowania. @@ -1274,32 +1279,32 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.&Uruchom ponownie teraz - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Wszystko gotowe.</h1><br/>%1 został zainstalowany na Twoim komputerze.<br/>Możesz teraz ponownie uruchomić komputer, aby przejść do nowego systemu, albo kontynuować używanie środowiska live %2. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalacja nie powiodła się</h1><br/>Nie udało się zainstalować %1 na Twoim komputerze.<br/>Komunikat o błędzie: %2. @@ -1307,27 +1312,27 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. FinishedViewStep - + Finish Koniec - + Setup Complete Ustawianie ukończone - + Installation Complete Instalacja zakończona - + The setup of %1 is complete. Ustawianie %1 jest ukończone. - + The installation of %1 is complete. Instalacja %1 ukończyła się pomyślnie. @@ -1358,72 +1363,72 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source jest podłączony do źródła zasilania - + The system is not plugged in to a power source. System nie jest podłączony do źródła zasilania. - + is connected to the Internet jest podłączony do Internetu - + The system is not connected to the Internet. System nie jest podłączony do Internetu. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Instalator jest uruchomiony bez praw administratora. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Zbyt niska rozdzielczość ekranu, aby wyświetlić instalator. @@ -1771,6 +1776,16 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1909,6 +1924,19 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2496,107 +2524,107 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Partycje - + Install %1 <strong>alongside</strong> another operating system. Zainstaluj %1 <strong>obok</strong> innego systemu operacyjnego. - + <strong>Erase</strong> disk and install %1. <strong>Wyczyść</strong> dysk i zainstaluj %1. - + <strong>Replace</strong> a partition with %1. <strong>Zastąp</strong> partycję poprzez %1. - + <strong>Manual</strong> partitioning. <strong>Ręczne</strong> partycjonowanie. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Zainstaluj %1 <strong>obok</strong> innego systemu operacyjnego na dysku <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Wyczyść</strong> dysk <strong>%2</strong> (%3) i zainstaluj %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Zastąp</strong> partycję na dysku <strong>%2</strong> (%3) poprzez %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ręczne</strong> partycjonowanie na dysku <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Dysk <strong>%1</strong> (%2) - + Current: Bieżący: - + After: Po: - + No EFI system partition configured Nie skonfigurowano partycji systemowej EFI - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Flaga partycji systemowej EFI nie została ustawiona - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Niezaszyfrowana partycja rozruchowa - + 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. Oddzielna partycja rozruchowa została skonfigurowana razem z zaszyfrowaną partycją roota, ale partycja rozruchowa nie jest szyfrowana.<br/><br/>Nie jest to najbezpieczniejsze rozwiązanie, ponieważ ważne pliki systemowe znajdują się na niezaszyfrowanej partycji.<br/>Możesz kontynuować, ale odblokowywanie systemu nastąpi później, w trakcie uruchamiania.<br/>Aby zaszyfrować partycję rozruchową, wróć i utwórz ją ponownie zaznaczając opcję <strong>Szyfruj</strong> w oknie tworzenia partycji. - + has at least one disk device available. - + There are no partitions to install on. @@ -2662,14 +2690,14 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. ProcessResult - + There was no output from the command. W wyniku polecenia nie ma żadnego rezultatu. - + Output: @@ -2678,52 +2706,52 @@ Wyjście: - + External command crashed. Zewnętrzne polecenie zakończone niepowodzeniem. - + Command <i>%1</i> crashed. Wykonanie polecenia <i>%1</i> nie powiodło się. - + External command failed to start. Nie udało się uruchomić zewnętrznego polecenia. - + Command <i>%1</i> failed to start. Polecenie <i>%1</i> nie zostało uruchomione. - + Internal error when starting command. Wystąpił wewnętrzny błąd podczas uruchamiania polecenia. - + Bad parameters for process job call. Błędne parametry wywołania zadania. - + External command failed to finish. Nie udało się ukończyć zewnętrznego polecenia. - + Command <i>%1</i> failed to finish in %2 seconds. Nie udało się ukończyć polecenia <i>%1</i> w ciągu %2 sekund. - + External command finished with errors. Ukończono zewnętrzne polecenie z błędami. - + Command <i>%1</i> finished with exit code %2. Polecenie <i>%1</i> zostało ukończone z błędem o kodzie %2. @@ -2731,32 +2759,27 @@ Wyjście: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown nieznany - + extended rozszerzona - + unformatted niesformatowany - + swap przestrzeń wymiany @@ -2810,6 +2833,15 @@ Wyjście: Przestrzeń bez partycji lub nieznana tabela partycji + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2845,73 +2877,88 @@ Wyjście: Formularz - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Wskaż gdzie zainstalować %1.<br/><font color="red">Uwaga: </font>na wybranej partycji zostaną usunięte wszystkie pliki. - + The selected item does not appear to be a valid partition. Wybrany element zdaje się nie być poprawną partycją. - + %1 cannot be installed on empty space. Please select an existing partition. Nie można zainstalować %1 na pustej przestrzeni. Prosimy wybrać istniejącą partycję. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. Nie można zainstalować %1 na rozszerzonej partycji. Prosimy wybrać istniejącą partycję podstawową lub logiczną. - + %1 cannot be installed on this partition. %1 nie może zostać zainstalowany na tej partycji. - + Data partition (%1) Partycja z danymi (%1) - + Unknown system partition (%1) Nieznana partycja systemowa (%1) - + %1 system partition (%2) %1 partycja systemowa (%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>%4</strong><br/><br/>Partycja %1 jest zbyt mała dla %2. Prosimy wybrać partycję o pojemności przynajmniej %3 GB. - + <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>%2</strong><br/><br/>Nigdzie w tym systemie nie można odnaleźć partycji systemowej EFI. Prosimy się cofnąć i użyć ręcznego partycjonowania dysku do ustawienia %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. <strong>%3</strong><br/><br/>%1 zostanie zainstalowany na %2.<br/><font color="red">Uwaga: </font>wszystkie dane znajdujące się na partycji %2 zostaną utracone. - + The EFI system partition at %1 will be used for starting %2. Partycja systemowa EFI na %1 będzie użyta do uruchamiania %2. - + EFI system partition: Partycja systemowa EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3035,12 +3082,12 @@ i nie uruchomi się ResultsListDialog - + For best results, please ensure that this computer: Dla osiągnięcia najlepszych rezultatów upewnij się, że ten komputer: - + System requirements Wymagania systemowe @@ -3048,27 +3095,27 @@ i nie uruchomi się ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ten komputer nie spełnia minimalnych wymagań, niezbędnych do instalacji %1.<br/>Instalacja nie może być kontynuowana. <a href="#details">Szczegóły...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ten komputer nie spełnia wszystkich, zalecanych do instalacji %1 wymagań.<br/>Instalacja może być kontynuowana, ale niektóre opcje mogą być niedostępne. - + This program will ask you some questions and set up %2 on your computer. Ten program zada Ci garść pytań i ustawi %2 na Twoim komputerze. @@ -3351,51 +3398,80 @@ i nie uruchomi się TrackingInstallJob - + Installation feedback Informacja zwrotna o instalacji - + Sending installation feedback. Wysyłanie informacji zwrotnej o instalacji. - + Internal error in install-tracking. Błąd wewnętrzny śledzenia instalacji. - + HTTP request timed out. Wyczerpano limit czasu żądania HTTP. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Maszynowa informacja zwrotna - + Configuring machine feedback. Konfiguracja mechanizmu informacji zwrotnej. - - + + Error in machine feedback configuration. Błąd w konfiguracji maszynowej informacji zwrotnej. - + Could not configure machine feedback correctly, script error %1. Nie można poprawnie skonfigurować maszynowej informacji zwrotnej, błąd skryptu %1. - + Could not configure machine feedback correctly, Calamares error %1. Nie można poprawnie skonfigurować maszynowej informacji zwrotnej, błąd Calamares %1. @@ -3414,8 +3490,8 @@ i nie uruchomi się - <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>Jeżeli wybierzesz tą opcję, nie zostaną wysłane <span style=" font-weight:600;">żadne informacje</span> o Twojej instalacji.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3423,30 +3499,30 @@ i nie uruchomi się <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Naciśnij, aby dowiedzieć się więcej o uzyskiwaniu informacji zwrotnych.</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. - Śledzenie instalacji pomoże %1 dowiedzieć się, ilu mają użytkowników, na jakim sprzęcie instalują %1 i (jeżeli wybierzesz dwie ostatnie opcje) uzyskać informacje o używanych aplikacjach. Jeżeli chcesz wiedzieć, jakie informacje będą wysyłane, naciśnij ikonę pomocy obok. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Jeżeli wybierzesz tę opcję, zostaną wysłane informacje dotyczące tej instalacji i używanego sprzętu. Zostaną wysłane <b>jednokrotnie</b> po zakończeniu instalacji. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Jeżeli wybierzesz tę opcję, <b>okazjonalnie</b> będą wysyłane informacje dotyczące tej instalacji, używanego sprzętu i aplikacji do %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Jeżeli wybierzesz tą opcję, <b>regularnie</b> będą wysyłane informacje dotyczące tej instalacji, używanego sprzętu i aplikacji do %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Informacje zwrotne @@ -3632,42 +3708,42 @@ i nie uruchomi się Informacje o &wydaniu - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Witamy w ustawianiu %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Witamy w instalatorze Calamares dla systemu %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Witamy w instalatorze %1.</h1> - + %1 support Wsparcie %1 - + About %1 setup - + About %1 installer O instalatorze %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3675,7 +3751,7 @@ i nie uruchomi się WelcomeQmlViewStep - + Welcome Witamy @@ -3683,7 +3759,7 @@ i nie uruchomi się WelcomeViewStep - + Welcome Witamy @@ -3712,6 +3788,26 @@ i nie uruchomi się + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3757,6 +3853,24 @@ i nie uruchomi się + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3808,27 +3922,27 @@ i nie uruchomi się - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index 7141597be..ab98dc800 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Configurar - + Install Instalar @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) A tarefa falhou (%1) - + Programmed job failure was explicitly requested. Falha na tarefa programada foi solicitada explicitamente. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Concluído @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Tarefa de exemplo (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Executar o comando '%1' no sistema de destino. - + Run command '%1'. Executar comando '%1'. - + Running command %1 %2 Executando comando %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Executando operação %1. - + Bad working directory path Caminho de diretório de trabalho ruim - + Working directory %1 for python job %2 is not readable. Diretório de trabalho %1 para a tarefa do python %2 não é legível. - + Bad main script file Arquivo de script principal ruim - + Main script file %1 for python job %2 is not readable. Arquivo de script principal %1 para a tarefa do python %2 não é legível. - + Boost.Python error in job "%1". Boost.Python erro na tarefa "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + A verificação de requerimentos para o módulo <i>%1</i> está completa. + - + Waiting for %n module(s). Esperando por %n módulo. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n segundo) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Verificação de requerimentos do sistema completa. @@ -273,13 +278,13 @@ - + &Yes &Sim - + &No &Não @@ -314,109 +319,109 @@ <br/>Os seguintes módulos não puderam ser carregados: - + Continue with setup? Continuar com configuração? - + Continue with installation? Continuar com a instalação? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> O programa de configuração %1 está prestes a fazer mudanças no seu disco de modo a configurar %2.<br/><strong>Você não será capaz de desfazer estas mudanças.</strong> - + 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> O instalador %1 está prestes a fazer alterações no disco a fim de instalar %2.<br/><strong>Você não será capaz de desfazer estas mudanças.</strong> - + &Set up now &Configurar agora - + &Install now &Instalar agora - + Go &back &Voltar - + &Set up &Configurar - + &Install &Instalar - + Setup is complete. Close the setup program. A configuração está completa. Feche o programa de configuração. - + The installation is complete. Close the installer. A instalação está completa. Feche o instalador. - + Cancel setup without changing the system. Cancelar configuração sem alterar o sistema. - + Cancel installation without changing the system. Cancelar instalação sem modificar o sistema. - + &Next &Próximo - + &Back &Voltar - + &Done Concluí&do - + &Cancel &Cancelar - + Cancel setup? Cancelar a configuração? - + Cancel installation? Cancelar a instalação? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Você realmente quer cancelar o processo atual de configuração? O programa de configuração será fechado e todas as mudanças serão perdidas. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Você deseja realmente cancelar a instalação atual? @@ -426,22 +431,22 @@ O instalador será fechado e todas as alterações serão perdidas. CalamaresPython::Helper - + Unknown exception type Tipo de exceção desconhecida - + unparseable Python error erro inanalisável do Python - + unparseable Python traceback rastreamento inanalisável do Python - + Unfetchable Python error. Erro inbuscável do Python. @@ -459,32 +464,32 @@ O instalador será fechado e todas as alterações serão perdidas. CalamaresWindow - + Show debug information Exibir informações de depuração - + &Back &Voltar - + &Next &Próximo - + &Cancel &Cancelar - + %1 Setup Program Programa de configuração %1 - + %1 Installer Instalador %1 @@ -681,18 +686,18 @@ O instalador será fechado e todas as alterações serão perdidas. CommandList - - + + Could not run command. Não foi possível executar o comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. O comando é executado no ambiente do hospedeiro e precisa saber o caminho root, mas nenhum rootMountPoint foi definido. - + The command needs to know the user's name, but no username is defined. O comando precisa saber do nome do usuário, mas nenhum nome de usuário foi definido. @@ -745,49 +750,49 @@ O instalador será fechado e todas as alterações serão perdidas.Instalação pela Rede. (Desabilitada: Não foi possível adquirir lista de pacotes, verifique sua conexão com a internet) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requerimentos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1.<br/>A instalação não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Este computador não satisfaz alguns dos requerimentos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funções podem ser desativadas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para instalar %1.<br/>A instalação pode continuar, mas alguns recursos podem ser desativados. - + This program will ask you some questions and set up %2 on your computer. Este programa irá fazer-lhe algumas perguntas e configurar %2 no computador. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Bem-vindo ao programa de configuração Calamares para %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Bem-vindo à configuração de %1</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Bem-vindo ao instalador Calamares para %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Bem-vindo ao instalador %1 .</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ O instalador será fechado e todas as alterações serão perdidas. FillGlobalStorageJob - + Set partition information Definir informações da partição - + Install %1 on <strong>new</strong> %2 system partition. Instalar %1 em <strong>nova</strong> partição %2 do sistema. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Configurar <strong>nova</strong> partição %2 com ponto de montagem <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instalar %2 na partição %3 do sistema <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Configurar partição %3 <strong>%1</strong> com ponto de montagem <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalar gerenciador de inicialização em <strong>%1</strong>. - + Setting up mount points. Configurando pontos de montagem. @@ -1272,32 +1277,32 @@ O instalador será fechado e todas as alterações serão perdidas.&Reiniciar agora - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Tudo concluído.</h1><br/>%1 foi configurado no seu computador.<br/>Agora você pode começar a usar seu novo sistema. - + <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 setup program.</p></body></html> <html><head/><body><p>Quando essa caixa for marcada, seu sistema irá reiniciar imediatamente quando você clicar em <span style="font-style:italic;">Concluído</span> ou fechar o programa de configuração.</p></body></html> - + <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>Tudo pronto.</h1><br/>%1 foi instalado no seu computador.<br/>Agora você pode reiniciar seu novo sistema ou continuar usando o ambiente Live %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Quando essa caixa for marcada, seu sistema irá reiniciar imediatamente quando você clicar em <span style="font-style:italic;">Concluído</span> ou fechar o instalador.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>A configuração falhou</h1><br/>%1 não foi configurado no seu computador.<br/>A mensagem de erro foi: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>A instalação falhou</h1><br/>%1 não foi instalado em seu computador.<br/>A mensagem de erro foi: %2. @@ -1305,27 +1310,27 @@ O instalador será fechado e todas as alterações serão perdidas. FinishedViewStep - + Finish Concluir - + Setup Complete Configuração Concluída - + Installation Complete Instalação Completa - + The setup of %1 is complete. A configuração de %1 está concluída. - + The installation of %1 is complete. A instalação do %1 está completa. @@ -1356,72 +1361,72 @@ O instalador será fechado e todas as alterações serão perdidas. GeneralRequirements - + has at least %1 GiB available drive space tenha pelo menos %1 GiB disponível de espaço no disco - + There is not enough drive space. At least %1 GiB is required. Não há espaço suficiente no disco. Pelo menos %1 GiB é requerido. - + has at least %1 GiB working memory tenha pelo menos %1 GiB de memória de trabalho - + The system does not have enough working memory. At least %1 GiB is required. O sistema não tem memória de trabalho o suficiente. Pelo menos %1 GiB é requerido. - + is plugged in to a power source está conectado a uma fonte de energia - + The system is not plugged in to a power source. O sistema não está conectado a uma fonte de energia. - + is connected to the Internet está conectado à Internet - + The system is not connected to the Internet. O sistema não está conectado à Internet. - + is running the installer as an administrator (root) está executando o instalador como administrador (root) - + The setup program is not running with administrator rights. O programa de configuração não está sendo executado com direitos de administrador. - + The installer is not running with administrator rights. O instalador não está sendo executado com permissões de administrador. - + has a screen large enough to show the whole installer tem uma tela grande o suficiente para mostrar todo o instalador - + The screen is too small to display the setup program. A tela é muito pequena para exibir o programa de configuração. - + The screen is too small to display the installer. A tela é muito pequena para exibir o instalador. @@ -1769,6 +1774,16 @@ O instalador será fechado e todas as alterações serão perdidas.Nenhum ponto de montagem raiz está definido para MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ O instalador será fechado e todas as alterações serão perdidas.Definir o identificador de Lote OEM em <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ O instalador será fechado e todas as alterações serão perdidas.Partições - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>ao lado de</strong> outro sistema operacional. - + <strong>Erase</strong> disk and install %1. <strong>Apagar</strong> disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Substituir</strong> uma partição com %1. - + <strong>Manual</strong> partitioning. Particionamento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>ao lado de</strong> outro sistema operacional no disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Apagar</strong> disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Substituir</strong> uma partição no disco <strong>%2</strong> (%3) com %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamento <strong>manual</strong> no disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Atualmente: - + After: Depois: - + No EFI system partition configured Nenhuma partição de sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</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. É necessário uma partição de sistema EFI para iniciar %1.<br/><br/>Para configurar uma partição de sistema EFI, volte e faça a seleção ou crie um sistema de arquivos FAT32 com a flag <strong>%3</strong> ativada e o ponto de montagem <strong>%2</strong>.<br/><br/>Você pode continuar sem definir uma partição de sistema EFI, mas seu sistema poderá falhar ao iniciar. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. É necessário uma partição de sistema EFI para iniciar %1.<br/><br/>Uma partição foi configurada com o ponto de montagem <strong>%2</strong>, mas não foi definida a flag <strong>%3</strong>.<br/>Para definir a flag, volte e edite a partição.<br/><br/>Você pode continuar sem definir a flag, mas seu sistema poderá falhar ao iniciar. - + EFI system partition flag not set Marcador da partição do sistema EFI não definida - + Option to use GPT on BIOS Opção para usar GPT no BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Uma tabela de partições GPT é a melhor opção para todos os sistemas. Este instalador suporta tal configuração para sistemas BIOS também.<br/><br/>Para configurar uma tabela de partições GPT no BIOS, (caso não tenha sido feito ainda) volte e defina a tabela de partições como GPT, depois crie uma partição sem formatação de 8 MB com o marcador <strong>bios_grub</strong> ativado.<br/><br/>Uma partição não formatada de 8 MB é necessária para iniciar %1 num sistema BIOS com o GPT. - + Boot partition not encrypted Partição de boot não criptografada - + 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. Uma partição de inicialização separada foi configurada juntamente com uma partição raiz criptografada, mas a partição de inicialização não é criptografada.<br/><br/>Há preocupações de segurança quanto a esse tipo de configuração, porque arquivos de sistema importantes são mantidos em uma partição não criptografada.<br/>Você pode continuar se quiser, mas o desbloqueio do sistema de arquivos acontecerá mais tarde durante a inicialização do sistema.<br/>Para criptografar a partição de inicialização, volte e recrie-a, selecionando <strong>Criptografar</strong> na janela de criação da partição. - + has at least one disk device available. tem pelo menos um dispositivo de disco disponível. - + There are no partitions to install on. Não há partições para instalar. @@ -2660,14 +2688,14 @@ O instalador será fechado e todas as alterações serão perdidas. ProcessResult - + There was no output from the command. Não houve saída do comando. - + Output: @@ -2676,52 +2704,52 @@ Saída: - + External command crashed. O comando externo falhou. - + Command <i>%1</i> crashed. O comando <i>%1</i> falhou. - + External command failed to start. O comando externo falhou ao iniciar. - + Command <i>%1</i> failed to start. O comando <i>%1</i> falhou ao iniciar. - + Internal error when starting command. Erro interno ao iniciar o comando. - + Bad parameters for process job call. Parâmetros ruins para a chamada da tarefa do processo. - + External command failed to finish. O comando externo falhou ao finalizar. - + Command <i>%1</i> failed to finish in %2 seconds. O comando <i>%1</i> falhou ao finalizar em %2 segundos. - + External command finished with errors. O comando externo foi concluído com erros. - + Command <i>%1</i> finished with exit code %2. O comando <i>%1</i> foi concluído com o código %2. @@ -2729,32 +2757,27 @@ Saída: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - A verificação de requerimentos para o módulo <i>%1</i> está completa. - - - + unknown desconhecido - + extended estendida - + unformatted não formatado - + swap swap @@ -2808,6 +2831,15 @@ Saída: Espaço não particionado ou tabela de partições desconhecida + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Saída: Formulário - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Selecione onde instalar %1.<br/><font color="red">Atenção:</font> isto excluirá todos os arquivos existentes na partição selecionada. - + The selected item does not appear to be a valid partition. O item selecionado não parece ser uma partição válida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 não pode ser instalado no espaço vazio. Por favor, selecione uma partição existente. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 não pode ser instalado em uma partição estendida. Por favor, selecione uma partição primária ou lógica existente. - + %1 cannot be installed on this partition. %1 não pode ser instalado nesta partição. - + Data partition (%1) Partição de dados (%1) - + Unknown system partition (%1) Partição de sistema desconhecida (%1) - + %1 system partition (%2) Partição de sistema %1 (%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>%4</strong><br/><br/>A partição %1 é muito pequena para %2. Por favor, selecione uma partição com capacidade mínima de %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>%2</strong><br/><br/>Não foi encontrada uma partição de sistema EFI no sistema. Por favor, volte e use o particionamento manual para configurar %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. <strong>%3</strong><br/><br/>%1 será instalado em %2.<br/><font color="red">Atenção: </font>todos os dados da partição %2 serão perdidos. - + The EFI system partition at %1 will be used for starting %2. A partição do sistema EFI em %1 será utilizada para iniciar %2. - + EFI system partition: Partição do sistema EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Saída: ResultsListDialog - + For best results, please ensure that this computer: Para melhores resultados, por favor, certifique-se de que este computador: - + System requirements Requisitos do sistema @@ -3045,27 +3092,27 @@ Saída: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requerimentos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1.<br/>A instalação não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Este computador não satisfaz alguns dos requerimentos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funções podem ser desativadas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para instalar %1.<br/>A instalação pode continuar, mas alguns recursos podem ser desativados. - + This program will ask you some questions and set up %2 on your computer. Este programa irá fazer-lhe algumas perguntas e configurar %2 no computador. @@ -3348,51 +3395,80 @@ Saída: TrackingInstallJob - + Installation feedback Feedback da instalação - + Sending installation feedback. Enviando feedback da instalação. - + Internal error in install-tracking. Erro interno no install-tracking. - + HTTP request timed out. A solicitação HTTP expirou. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Feedback da máquina - + Configuring machine feedback. Configurando feedback da máquina. - - + + Error in machine feedback configuration. Erro na configuração de feedback da máquina. - + Could not configure machine feedback correctly, script error %1. Não foi possível configurar o feedback da máquina corretamente, erro de script %1. - + Could not configure machine feedback correctly, Calamares error %1. Não foi possível configurar o feedback da máquina corretamente, erro do Calamares %1. @@ -3411,8 +3487,8 @@ Saída: - <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>Ao selecionar isto, você <span style=" font-weight:600;">não enviará nenhuma informação</span> sobre sua instalação.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Saída: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Clique aqui para mais informações sobre o feedback do usuário</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. - O rastreamento de instalação ajuda %1 a ver quantos usuários eles têm, em qual hardware eles instalam %1 e (com as duas últimas opções abaixo), adquirir informações sobre os aplicativos preferidos. Para ver o que será enviado, por favor, clique no ícone de ajuda perto de cada área. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Ao selecionar isto, você enviará informações sobre sua instalação e hardware. Esta informação <b>será enviada apenas uma vez</b> depois que a instalação terminar. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Ao selecionar isto, você enviará <b>periodicamente</b> informações sobre sua instalação, hardware e aplicativos para %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Ao selecionar isto, você enviará <b>regularmente</b> informações sobre sua instalação, hardware, aplicativos e padrões de uso para %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Feedback @@ -3629,42 +3705,42 @@ Saída: &Notas de lançamento - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Bem-vindo ao programa de configuração Calamares para %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Bem-vindo à configuração de %1</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Bem-vindo ao instalador Calamares para %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Bem-vindo ao instalador %1 .</h1> - + %1 support %1 suporte - + About %1 setup Sobre a configuração de %1 - + About %1 installer Sobre o instalador %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>para %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Obrigado ao <a href="https://calamares.io/team/">time Calamares</a> e ao <a href="https://www.transifex.com/calamares/calamares/">time de tradutores do Calamares</a>.<br/><br/>O desenvolvimento do <a href="https://calamares.io/">Calamares</a> é patrocinado pela <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3672,7 +3748,7 @@ Saída: WelcomeQmlViewStep - + Welcome Bem-vindo @@ -3680,7 +3756,7 @@ Saída: WelcomeViewStep - + Welcome Bem-vindo @@ -3720,6 +3796,26 @@ Saída: Voltar + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Voltar + + keyboardq @@ -3765,6 +3861,24 @@ Saída: Teste seu teclado + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3838,27 +3952,27 @@ Saída: <p>Este programa fará algumas perguntas e configurar o %1 no seu computador.</p> - + About Sobre - + Support Suporte - + Known issues Problemas conhecidos - + Release notes Notas de lançamento - + Donate Faça uma doação diff --git a/lang/calamares_pt_PT.ts b/lang/calamares_pt_PT.ts index 756bbd2bc..add96468c 100644 --- a/lang/calamares_pt_PT.ts +++ b/lang/calamares_pt_PT.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Configuração - + Install Instalar @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Tarefa falhou (%1) - + Programmed job failure was explicitly requested. Falha de tarefa programada foi explicitamente solicitada. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Concluído @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Exemplo de tarefa (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Execute o comando '%1' no sistema alvo. - + Run command '%1'. Execute o comando '%1'. - + Running command %1 %2 A executar comando %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Operação %1 em execução. - + Bad working directory path Caminho do directório de trabalho errado - + Working directory %1 for python job %2 is not readable. Directório de trabalho %1 para a tarefa python %2 não é legível. - + Bad main script file Ficheiro de script principal errado - + Main script file %1 for python job %2 is not readable. Ficheiro de script principal %1 para a tarefa python %2 não é legível. - + Boost.Python error in job "%1". Erro Boost.Python na tarefa "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + A verificação de requisitos para módulo <i>%1</i> está completa. + - + Waiting for %n module(s). A aguardar por %n módulo(s). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n segundo(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. A verificação de requisitos de sistema está completa. @@ -273,13 +278,13 @@ - + &Yes &Sim - + &No &Não @@ -314,109 +319,109 @@ <br/>Os módulos seguintes não puderam ser carregados: - + Continue with setup? Continuar com a configuração? - + Continue with installation? Continuar com a instalação? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> O programa de instalação %1 está prestes a fazer alterações no seu disco para configurar o %2.<br/><strong>Você não poderá desfazer essas alterações.</strong> - + 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> O %1 instalador está prestes a fazer alterações ao seu disco em ordem para instalar %2.<br/><strong>Não será capaz de desfazer estas alterações.</strong> - + &Set up now &Instalar agora - + &Install now &Instalar agora - + Go &back Voltar &atrás - + &Set up &Instalar - + &Install &Instalar - + Setup is complete. Close the setup program. Instalação completa. Feche o programa de instalação. - + The installation is complete. Close the installer. A instalação está completa. Feche o instalador. - + Cancel setup without changing the system. Cancelar instalação sem alterar o sistema. - + Cancel installation without changing the system. Cancelar instalar instalação sem modificar o sistema. - + &Next &Próximo - + &Back &Voltar - + &Done &Feito - + &Cancel &Cancelar - + Cancel setup? Cancelar instalação? - + Cancel installation? Cancelar a instalação? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Quer mesmo cancelar o processo de instalação atual? O programa de instalação irá fechar todas as alterações serão perdidas. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Tem a certeza que pretende cancelar o atual processo de instalação? @@ -426,22 +431,22 @@ O instalador será encerrado e todas as alterações serão perdidas. CalamaresPython::Helper - + Unknown exception type Tipo de exceção desconhecido - + unparseable Python error erro inanalisável do Python - + unparseable Python traceback rasto inanalisável do Python - + Unfetchable Python error. Erro inatingível do Python. @@ -459,32 +464,32 @@ O instalador será encerrado e todas as alterações serão perdidas. CalamaresWindow - + Show debug information Mostrar informação de depuração - + &Back &Voltar - + &Next &Próximo - + &Cancel &Cancelar - + %1 Setup Program %1 Programa de Instalação - + %1 Installer %1 Instalador @@ -681,18 +686,18 @@ O instalador será encerrado e todas as alterações serão perdidas. CommandList - - + + Could not run command. Não foi possível correr o comando. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. O comando corre no ambiente do host e precisa de conhecer o caminho root, mas nenhum Ponto de Montagem root está definido. - + The command needs to know the user's name, but no username is defined. O comando precisa de saber o nome do utilizador, mas não está definido nenhum nome de utilizador. @@ -745,49 +750,49 @@ O instalador será encerrado e todas as alterações serão perdidas.Instalação de rede. (Desativada: Incapaz de buscar listas de pacotes, verifique a sua ligação de rede) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1.<br/>A instalação não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funcionalidades podem ser desativadas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para instalar %1.<br/>A instalação pode continuar, mas algumas funcionalidades poderão ser desativadas. - + This program will ask you some questions and set up %2 on your computer. Este programa vai fazer-lhe algumas perguntas e configurar o %2 no seu computador. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Bem vindo ao programa de instalação Calamares para %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Bem vindo à instalação de %1.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Bem vindo ao instalador Calamares para %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Bem vindo ao instalador do %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ O instalador será encerrado e todas as alterações serão perdidas. FillGlobalStorageJob - + Set partition information Definir informação da partição - + Install %1 on <strong>new</strong> %2 system partition. Instalar %1 na <strong>nova</strong> %2 partição de sistema. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Criar <strong>nova</strong> %2 partição com ponto de montagem <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instalar %2 em %3 partição de sistema <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Criar %3 partitição <strong>%1</strong> com ponto de montagem <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalar carregador de arranque em <strong>%1</strong>. - + Setting up mount points. Definindo pontos de montagem. @@ -1272,32 +1277,32 @@ O instalador será encerrado e todas as alterações serão perdidas.&Reiniciar agora - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Tudo feito</h1><br/>%1 foi instalado no seu computador.<br/>Pode agora reiniciar para o seu novo sistema, ou continuar a usar o %2 ambiente Live. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalação Falhada</h1><br/>%1 não foi instalado no seu computador.<br/>A mensagem de erro foi: %2. @@ -1305,27 +1310,27 @@ O instalador será encerrado e todas as alterações serão perdidas. FinishedViewStep - + Finish Finalizar - + Setup Complete Instalação Completa - + Installation Complete Instalação Completa - + The setup of %1 is complete. A instalação de %1 está completa. - + The installation of %1 is complete. A instalação de %1 está completa. @@ -1356,72 +1361,72 @@ O instalador será encerrado e todas as alterações serão perdidas. GeneralRequirements - + has at least %1 GiB available drive space tem pelo menos %1 GiB de espaço livre em disco - + There is not enough drive space. At least %1 GiB is required. Não existe espaço livre suficiente em disco. É necessário pelo menos %1 GiB. - + has at least %1 GiB working memory tem pelo menos %1 GiB de memória disponível - + The system does not have enough working memory. At least %1 GiB is required. O sistema não tem memória disponível suficiente. É necessário pelo menos %1 GiB. - + is plugged in to a power source está ligado a uma fonte de energia - + The system is not plugged in to a power source. O sistema não está ligado a uma fonte de energia. - + is connected to the Internet está ligado à internet - + The system is not connected to the Internet. O sistema não está ligado à internet. - + is running the installer as an administrator (root) está a executar o instalador como um administrador (root) - + The setup program is not running with administrator rights. O programa de instalação está agora a correr com direitos de administrador. - + The installer is not running with administrator rights. O instalador não está a ser executado com permissões de administrador. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. O ecrã é demasiado pequeno para mostrar o programa de instalação. - + The screen is too small to display the installer. O ecrã tem um tamanho demasiado pequeno para mostrar o instalador. @@ -1769,6 +1774,16 @@ O instalador será encerrado e todas as alterações serão perdidas. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ O instalador será encerrado e todas as alterações serão perdidas.Definir o Identificar OEM em Lote para <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ O instalador será encerrado e todas as alterações serão perdidas.Partições - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>paralelamente</strong> a outro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Apagar</strong> disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Substituir</strong> a partição com %1. - + <strong>Manual</strong> partitioning. Particionamento <strong>Manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>paralelamente</strong> a outro sistema operativo no disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Apagar</strong> disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Substituir</strong> a partição no disco <strong>%2</strong> (%3) com %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamento <strong>Manual</strong> no disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Atual: - + After: Depois: - + No EFI system partition configured Nenhuma partição de sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set flag não definida da partição de sistema EFI - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Partição de arranque não encriptada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Foi preparada uma partição de arranque separada juntamente com uma partição root encriptada, mas a partição de arranque não está encriptada.<br/><br/>Existem preocupações de segurança com este tipo de configuração, por causa de importantes ficheiros de sistema serem guardados numa partição não encriptada.<br/>Se desejar pode continuar, mas o destrancar do sistema de ficheiros irá ocorrer mais tarde durante o arranque do sistema.<br/>Para encriptar a partição de arranque, volte atrás e recrie-a, e selecione <strong>Encriptar</strong> na janela de criação de partições. - + has at least one disk device available. tem pelo menos um dispositivo de disco disponível. - + There are no partitions to install on. @@ -2660,14 +2688,14 @@ O instalador será encerrado e todas as alterações serão perdidas. ProcessResult - + There was no output from the command. O comando não produziu saída de dados. - + Output: @@ -2676,52 +2704,52 @@ Saída de Dados: - + External command crashed. O comando externo "crashou". - + Command <i>%1</i> crashed. Comando <i>%1</i> "crashou". - + External command failed to start. Comando externo falhou ao iniciar. - + Command <i>%1</i> failed to start. Comando <i>%1</i> falhou a inicialização. - + Internal error when starting command. Erro interno ao iniciar comando. - + Bad parameters for process job call. Maus parâmetros para chamada de processamento de tarefa. - + External command failed to finish. Comando externo falhou a finalização. - + Command <i>%1</i> failed to finish in %2 seconds. Comando <i>%1</i> falhou ao finalizar em %2 segundos. - + External command finished with errors. Comando externo finalizou com erros. - + Command <i>%1</i> finished with exit code %2. Comando <i>%1</i> finalizou com código de saída %2. @@ -2729,32 +2757,27 @@ Saída de Dados: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - A verificação de requisitos para módulo <i>%1</i> está completa. - - - + unknown desconhecido - + extended estendido - + unformatted não formatado - + swap swap @@ -2808,6 +2831,15 @@ Saída de Dados: Espaço não particionado ou tabela de partições desconhecida + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2843,73 +2875,88 @@ Saída de Dados: Formulário - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Selecione onde instalar %1.<br/><font color="red">Aviso: </font>isto irá apagar todos os ficheiros na partição selecionada. - + The selected item does not appear to be a valid partition. O item selecionado não aparenta ser uma partição válida. - + %1 cannot be installed on empty space. Please select an existing partition. %1 não pode ser instalado no espaço vazio. Por favor selecione uma partição existente. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 não pode ser instalado numa partição estendida. Por favor selecione uma partição primária ou partição lógica. - + %1 cannot be installed on this partition. %1 não pode ser instalado nesta partição. - + Data partition (%1) Partição de dados (%1) - + Unknown system partition (%1) Partição de sistema desconhecida (%1) - + %1 system partition (%2) %1 partição de sistema (%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>%4</strong><br/><br/>A partição %1 é demasiado pequena para %2. Por favor selecione uma partição com pelo menos %3 GiB de capacidade. - + <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>%2</strong><br/><br/>Uma partição de sistema EFI não pode ser encontrada em nenhum sítio neste sistema. Por favor volte atrás e use o particionamento manual para instalar %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. <strong>%3</strong><br/><br/>%1 será instalado na %2.<br/><font color="red">Aviso: </font>todos os dados na partição %2 serão perdidos. - + The EFI system partition at %1 will be used for starting %2. A partição de sistema EFI em %1 será usada para iniciar %2. - + EFI system partition: Partição de sistema EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3032,12 +3079,12 @@ Saída de Dados: ResultsListDialog - + For best results, please ensure that this computer: Para melhores resultados, por favor certifique-se que este computador: - + System requirements Requisitos de sistema @@ -3045,27 +3092,27 @@ Saída de Dados: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1.<br/>A instalação não pode continuar. <a href="#details">Detalhes...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funcionalidades podem ser desativadas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Este computador não satisfaz alguns dos requisitos recomendados para instalar %1.<br/>A instalação pode continuar, mas algumas funcionalidades poderão ser desativadas. - + This program will ask you some questions and set up %2 on your computer. Este programa vai fazer-lhe algumas perguntas e configurar o %2 no seu computador. @@ -3348,51 +3395,80 @@ Saída de Dados: TrackingInstallJob - + Installation feedback Relatório da Instalação - + Sending installation feedback. A enviar relatório da instalação. - + Internal error in install-tracking. Erro interno no rastreio da instalação. - + HTTP request timed out. Expirou o tempo para o pedido de HTTP. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback Relatório da máquina - + Configuring machine feedback. A configurar relatório da máquina. - - + + Error in machine feedback configuration. Erro na configuração do relatório da máquina. - + Could not configure machine feedback correctly, script error %1. Não foi possível configurar corretamente o relatório da máquina, erro de script %1. - + Could not configure machine feedback correctly, Calamares error %1. Não foi possível configurar corretamente o relatório da máquina, erro do Calamares %1. @@ -3411,8 +3487,8 @@ Saída de Dados: - <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>Ao selecionar isto, não estará a enviar <span style=" font-weight:600;">qualquer informação</span> sobre a sua instalação.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3420,30 +3496,30 @@ Saída de Dados: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Clique aqui para mais informação acerca do relatório do utilizador</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. - O rastreio de instalação ajuda %1 a ver quanto utilizadores eles têm, qual o hardware que instalam %1 e (com a duas últimas opções abaixo), obter informação contínua sobre aplicações preferidas. Para ver o que será enviado, por favor clique no ícone de ajuda a seguir a cada área. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Ao selecionar isto estará a enviar informação acerca da sua instalação e hardware. Esta informação será <b>enviada apenas uma vez</b> depois da instalação terminar. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Ao selecionar isto irá <b>periodicamente</b> enviar informação sobre a instalação, hardware e aplicações, para %1. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Ao selecionar isto irá periodicamente enviar informação sobre a instalação, hardware, aplicações e padrões de uso, para %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Relatório @@ -3629,42 +3705,42 @@ Saída de Dados: &Notas de lançamento - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Bem vindo ao programa de instalação Calamares para %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Bem vindo à instalação de %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Bem vindo ao instalador Calamares para %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Bem vindo ao instalador do %1.</h1> - + %1 support %1 suporte - + About %1 setup Sobre a instalação de %1 - + About %1 installer Acerca %1 instalador - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3672,7 +3748,7 @@ Saída de Dados: WelcomeQmlViewStep - + Welcome Bem-vindo @@ -3680,7 +3756,7 @@ Saída de Dados: WelcomeViewStep - + Welcome Bem-vindo @@ -3709,6 +3785,26 @@ Saída de Dados: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3754,6 +3850,24 @@ Saída de Dados: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3805,27 +3919,27 @@ Saída de Dados: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ro.ts b/lang/calamares_ro.ts index 7216960a3..7e9b14462 100644 --- a/lang/calamares_ro.ts +++ b/lang/calamares_ro.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Instalează @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Gata @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Se rulează comanda %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Se rulează operațiunea %1. - + Bad working directory path Calea dosarului de lucru este proastă - + Working directory %1 for python job %2 is not readable. Dosarul de lucru %1 pentru sarcina python %2 nu este citibil. - + Bad main script file Fișierul script principal este prost - + Main script file %1 for python job %2 is not readable. Fișierul script peincipal %1 pentru sarcina Python %2 nu este citibil. - + Boost.Python error in job "%1". Eroare Boost.Python în sarcina „%1”. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -237,7 +242,7 @@ - + (%n second(s)) @@ -246,7 +251,7 @@ - + System-requirements checking is complete. @@ -275,13 +280,13 @@ - + &Yes &Da - + &No &Nu @@ -316,108 +321,108 @@ - + Continue with setup? Continuați configurarea? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> Programul de instalare %1 este pregătit să facă schimbări pe discul dumneavoastră pentru a instala %2.<br/><strong>Nu veți putea anula aceste schimbări.</strong> - + &Set up now - + &Install now &Instalează acum - + Go &back Î&napoi - + &Set up - + &Install Instalează - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. Instalarea este completă. Închide instalatorul. - + Cancel setup without changing the system. - + Cancel installation without changing the system. Anulează instalarea fără schimbarea sistemului. - + &Next &Următorul - + &Back &Înapoi - + &Done &Gata - + &Cancel &Anulează - + Cancel setup? - + Cancel installation? Anulez instalarea? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Doriți să anulați procesul curent de instalare? @@ -427,22 +432,22 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CalamaresPython::Helper - + Unknown exception type Tip de excepție necunoscut - + unparseable Python error Eroare Python neanalizabilă - + unparseable Python traceback Traceback Python neanalizabil - + Unfetchable Python error. Eroare Python nepreluabilă @@ -459,32 +464,32 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CalamaresWindow - + Show debug information Arată informația de depanare - + &Back &Înapoi - + &Next &Următorul - + &Cancel &Anulează - + %1 Setup Program - + %1 Installer Program de instalare %1 @@ -681,18 +686,18 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CommandList - - + + Could not run command. Nu s-a putut executa comanda. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -745,49 +750,49 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Instalarea rețelei. (Dezactivat: Nu se pot obține listele de pachete, verificați conexiunea la rețea) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Acest calculator nu satisface cerințele minimale pentru instalarea %1.<br/>Instalarea nu poate continua. <a href="#details">Detalii...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Acest calculator nu satisface unele din cerințele recomandate pentru instalarea %1.<br/>Instalarea poate continua, dar unele funcții ar putea fi dezactivate. - + This program will ask you some questions and set up %2 on your computer. Acest program vă va pune mai multe întrebări și va seta %2 pe calculatorul dumneavoastră. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Bun venit în programul de instalare Calamares pentru %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Bine ați venit la programul de instalare pentru %1.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1224,37 +1229,37 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. FillGlobalStorageJob - + Set partition information Setează informația pentru partiție - + Install %1 on <strong>new</strong> %2 system partition. Instalează %1 pe <strong>noua</strong> partiție de sistem %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Setează <strong>noua</strong> partiție %2 cu punctul de montare <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instalează %2 pe partiția de sistem %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Setează partiția %3 <strong>%1</strong> cu punctul de montare <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalează bootloader-ul pe <strong>%1</strong>. - + Setting up mount points. Se setează puncte de montare. @@ -1272,32 +1277,32 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.&Repornește acum - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>Gata.</h1><br/>%1 a fost instalat pe calculatorul dumneavoastră.<br/>Puteți reporni noul sistem, sau puteți continua să folosiți sistemul de operare portabil %2. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalarea a eșuat</h1><br/>%1 nu a mai fost instalat pe acest calculator.<br/>Mesajul de eroare era: %2. @@ -1305,27 +1310,27 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. FinishedViewStep - + Finish Termină - + Setup Complete - + Installation Complete Instalarea s-a terminat - + The setup of %1 is complete. - + The installation of %1 is complete. Instalarea este %1 completă. @@ -1356,72 +1361,72 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source este alimentat cu curent - + The system is not plugged in to a power source. Sistemul nu este alimentat cu curent. - + is connected to the Internet este conectat la Internet - + The system is not connected to the Internet. Sistemul nu este conectat la Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. Programul de instalare nu rulează cu privilegii de administrator. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. Ecranu este prea mic pentru a afișa instalatorul. @@ -1769,6 +1774,16 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2497,107 +2525,107 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Partiții - + Install %1 <strong>alongside</strong> another operating system. Instalează %1 <strong>laolaltă</strong> cu un alt sistem de operare. - + <strong>Erase</strong> disk and install %1. <strong>Șterge</strong> discul și instalează %1. - + <strong>Replace</strong> a partition with %1. <strong>Înlocuiește</strong> o partiție cu %1. - + <strong>Manual</strong> partitioning. Partiționare <strong>manuală</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalează %1 <strong>laolaltă</strong> cu un alt sistem de operare pe discul <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Șterge</strong> discul <strong>%2</strong> (%3) și instalează %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Înlocuiește</strong> o partiție pe discul <strong>%2</strong> (%3) cu %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Partiționare <strong>manuală</strong> a discului <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Discul <strong>%1</strong> (%2) - + Current: Actual: - + After: După: - + No EFI system partition configured Nicio partiție de sistem EFI nu a fost configurată - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Flag-ul de partiție de sistem pentru EFI nu a fost setat - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + Boot partition not encrypted Partiția de boot nu este criptată - + 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. A fost creată o partiție de boot împreună cu o partiție root criptată, dar partiția de boot nu este criptată.<br/><br/>Sunt potențiale probleme de securitate cu un astfel de aranjament deoarece importante fișiere de sistem sunt păstrate pe o partiție necriptată.<br/>Puteți continua dacă doriți, dar descuierea sistemului se va petrece mai târziu în timpul pornirii.<br/>Pentru a cripta partiția de boot, reveniți și recreați-o, alegând opțiunea <strong>Criptează</strong> din fereastra de creare de partiții. - + has at least one disk device available. - + There are no partitions to install on. @@ -2663,14 +2691,14 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. ProcessResult - + There was no output from the command. Nu a existat nici o iesire din comanda - + Output: @@ -2679,52 +2707,52 @@ Output - + External command crashed. Comanda externă a eșuat. - + Command <i>%1</i> crashed. Comanda <i>%1</i> a eșuat. - + External command failed to start. Comanda externă nu a putut fi pornită. - + Command <i>%1</i> failed to start. Comanda <i>%1</i> nu a putut fi pornită. - + Internal error when starting command. Eroare internă la pornirea comenzii. - + Bad parameters for process job call. Parametri proști pentru apelul sarcinii de proces. - + External command failed to finish. Finalizarea comenzii externe a eșuat. - + Command <i>%1</i> failed to finish in %2 seconds. Comanda <i>%1</i> nu a putut fi finalizată în %2 secunde. - + External command finished with errors. Comanda externă finalizată cu erori. - + Command <i>%1</i> finished with exit code %2. Comanda <i>%1</i> finalizată cu codul de ieșire %2. @@ -2732,32 +2760,27 @@ Output QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown necunoscut - + extended extins - + unformatted neformatat - + swap swap @@ -2811,6 +2834,15 @@ Output Spațiu nepartiționat sau tabelă de partiții necunoscută + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2846,73 +2878,88 @@ Output Formular - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Selectați locul în care să instalați %1.<br/><font color="red">Atenție: </font>aceasta va șterge toate fișierele de pe partiția selectată. - + The selected item does not appear to be a valid partition. Elementul selectat nu pare a fi o partiție validă. - + %1 cannot be installed on empty space. Please select an existing partition. %1 nu poate fi instalat în spațiul liber. Vă rugăm să alegeți o partiție existentă. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 nu poate fi instalat pe o partiție extinsă. Vă rugăm selectați o partiție primară existentă sau o partiție logică. - + %1 cannot be installed on this partition. %1 nu poate fi instalat pe această partiție. - + Data partition (%1) Partiție de date (%1) - + Unknown system partition (%1) Partiție de sistem necunoscută (%1) - + %1 system partition (%2) %1 partiție de sistem (%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>%4</strong><br/><br/>Partiția %1 este prea mică pentru %2. Vă rugăm selectați o partiție cu o capacitate de cel puțin %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>%2</strong><br/><br/>O partiție de sistem EFI nu a putut fi găsită nicăieri pe sistem. Vă rugăm să reveniți și să utilizați partiționarea manuală pentru a seta %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. <strong>%3</strong><br/><br/>%1 va fi instalat pe %2.<br/><font color="red">Atenție: </font>toate datele de pe partiția %2 se vor pierde. - + The EFI system partition at %1 will be used for starting %2. Partiția de sistem EFI de la %1 va fi folosită pentru a porni %2. - + EFI system partition: Partiție de sistem EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3035,12 +3082,12 @@ Output ResultsListDialog - + For best results, please ensure that this computer: Pentru rezultate optime, asigurați-vă că acest calculator: - + System requirements Cerințe de sistem @@ -3048,27 +3095,27 @@ Output ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Acest calculator nu satisface cerințele minimale pentru instalarea %1.<br/>Instalarea nu poate continua. <a href="#details">Detalii...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Acest calculator nu satisface unele din cerințele recomandate pentru instalarea %1.<br/>Instalarea poate continua, dar unele funcții ar putea fi dezactivate. - + This program will ask you some questions and set up %2 on your computer. Acest program vă va pune mai multe întrebări și va seta %2 pe calculatorul dumneavoastră. @@ -3351,51 +3398,80 @@ Output TrackingInstallJob - + Installation feedback Feedback pentru instalare - + Sending installation feedback. Trimite feedback pentru instalare - + Internal error in install-tracking. Eroare internă în gestionarea instalării. - + HTTP request timed out. Requestul HTTP a atins time out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Feedback pentru mașină - + Configuring machine feedback. Se configurează feedback-ul pentru mașină - - + + Error in machine feedback configuration. Eroare în configurația de feedback pentru mașină. - + Could not configure machine feedback correctly, script error %1. Nu s-a putut configura feedback-ul pentru mașină în mod corect, eroare de script %1 - + Could not configure machine feedback correctly, Calamares error %1. Nu s-a putut configura feedback-ul pentru mașină în mod corect, eroare Calamares %1. @@ -3414,8 +3490,8 @@ Output - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Prin selectarea acestei opțiuni <span style=" font-weight:600;">nu vei trimite nicio informație</span> vei trimite informații despre instalare.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3423,30 +3499,30 @@ Output <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Clic aici pentru mai multe informații despre feedback-ul de la utilizatori</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. - Urmărirea instalărilor ajută %1 să măsoare numărul de utilizatori, hardware-ul pe care se instalează %1 și (cu ajutorul celor două opțiuni de mai jos) poate obține informații în mod continuu despre aplicațiile preferate. Pentru a vedea ce informații se trimit, clic pe pictograma de ajutor din dreptul fiecărei zone. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Alegând să trimiți aceste informații despre instalare și hardware vei trimite aceste informații <b>o singură dată</b> după finalizarea instalării. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Prin această alegere vei trimite informații despre instalare, hardware și aplicații în mod <b>periodic</b>. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Prin această alegere vei trimite informații în mod <b>regulat</b> despre instalare, hardware, aplicații și tipare de utilizare la %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Feedback @@ -3632,42 +3708,42 @@ Output &Note asupra ediției - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Bun venit în programul de instalare Calamares pentru %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Bine ați venit la programul de instalare pentru %1.</h1> - + %1 support %1 suport - + About %1 setup - + About %1 installer Despre programul de instalare %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3675,7 +3751,7 @@ Output WelcomeQmlViewStep - + Welcome Bine ați venit @@ -3683,7 +3759,7 @@ Output WelcomeViewStep - + Welcome Bine ați venit @@ -3712,6 +3788,26 @@ Output + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3757,6 +3853,24 @@ Output + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3808,27 +3922,27 @@ Output - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_ru.ts b/lang/calamares_ru.ts index 13e1d65a8..8a66cdc77 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Настроить - + Install Установить @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Не удалось выполнить задание (%1) - + Programmed job failure was explicitly requested. Работа программы была прекращена пользователем. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Готово @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Пример задания (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Запустить комманду'%1'в целевой системе. - + Run command '%1'. Запустить команду '%1'. - + Running command %1 %2 Выполняется команда %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Выполняется действие %1. - + Bad working directory path Неверный путь к рабочему каталогу - + Working directory %1 for python job %2 is not readable. Рабочий каталог %1 для задачи python %2 недоступен для чтения. - + Bad main script file Ошибочный главный файл сценария - + Main script file %1 for python job %2 is not readable. Главный файл сценария %1 для задачи python %2 недоступен для чтения. - + Boost.Python error in job "%1". Boost.Python ошибка в задаче "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Проверка требований для модуля <i>%1</i> завершена. + - + Waiting for %n module(s). Ожидание %n модуля. @@ -238,7 +243,7 @@ - + (%n second(s)) (% секунда) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. Проверка соответствия системным требованиям завершена. @@ -277,13 +282,13 @@ - + &Yes &Да - + &No &Нет @@ -318,109 +323,109 @@ <br/>Не удалось загрузить следующие модули: - + Continue with setup? Продолжить установку? - + Continue with installation? Продолжить установку? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Программа установки %1 готова внести изменения на Ваш диск, чтобы установить %2.<br/><strong>Отменить эти изменения будет невозможно.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Программа установки %1 готова внести изменения на Ваш диск, чтобы установить %2.<br/><strong>Отменить эти изменения будет невозможно.</strong> - + &Set up now &Настроить сейчас - + &Install now Приступить к &установке - + Go &back &Назад - + &Set up &Настроить - + &Install &Установить - + Setup is complete. Close the setup program. Установка завершена. Закройте программу установки. - + The installation is complete. Close the installer. Установка завершена. Закройте установщик. - + Cancel setup without changing the system. Отменить установку без изменения системы. - + Cancel installation without changing the system. Отменить установку без изменения системы. - + &Next &Далее - + &Back &Назад - + &Done &Готово - + &Cancel О&тмена - + Cancel setup? Отменить установку? - + Cancel installation? Отменить установку? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Прервать процесс установки? Программа установки прекратит работу и все изменения будут потеряны. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Действительно прервать процесс установки? Программа установки сразу прекратит работу, все изменения будут потеряны. @@ -429,22 +434,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Неизвестный тип исключения - + unparseable Python error неподдающаяся обработке ошибка Python - + unparseable Python traceback неподдающийся обработке traceback Python - + Unfetchable Python error. Неизвестная ошибка Python @@ -462,32 +467,32 @@ n%1 CalamaresWindow - + Show debug information Показать отладочную информацию - + &Back &Назад - + &Next &Далее - + &Cancel &Отмена - + %1 Setup Program Программа установки %1 - + %1 Installer Программа установки %1 @@ -684,18 +689,18 @@ n%1 CommandList - - + + Could not run command. Не удалось выполнить команду. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Команда выполняется в окружении установщика, и ей необходимо знать путь корневого раздела, но rootMountPoint не определено. - + The command needs to know the user's name, but no username is defined. Команде необходимо знать имя пользователя, но оно не задано. @@ -748,49 +753,49 @@ n%1 Установка по сети. (Отключено: не удается получить список пакетов, проверьте сетевое подключение) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Этот компьютер не соответствует минимальным требованиям для установки %1.<br/>Невозможно продолжить установку. <a href="#details">Подробнее...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Этот компьютер не соответствует минимальным требованиям для установки %1.<br/>Невозможно продолжить установку. <a href="#details">Подробнее...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Этот компьютер соответствует не всем рекомендуемым требованиям для установки %1.<br/>Можно продолжить установку, но некоторые возможности могут быть недоступны. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Этот компьютер соответствует не всем рекомендуемым требованиям для установки %1.<br/>Можно продолжить установку, но некоторые возможности могут быть недоступны. - + This program will ask you some questions and set up %2 on your computer. Эта программа задаст вам несколько вопросов и поможет установить %2 на ваш компьютер. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Добро пожаловать в программу установки Calamares для %1 .</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Добро пожаловать в программу установки %1 .</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Добро пожаловать в установщик Calamares для %1 .</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Добро пожаловать в программу установки %1 .</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1227,37 +1232,37 @@ n%1 FillGlobalStorageJob - + Set partition information Установить сведения о разделе - + Install %1 on <strong>new</strong> %2 system partition. Установить %1 на <strong>новый</strong> системный раздел %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Настроить <strong>новый</strong> %2 раздел с точкой монтирования <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Установить %2 на %3 системный раздел <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Настроить %3 раздел <strong>%1</strong> с точкой монтирования <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Установить загрузчик на <strong>%1</strong>. - + Setting up mount points. Настраиваются точки монтирования. @@ -1275,32 +1280,32 @@ n%1 П&ерезагрузить - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Готово.</h1><br/>Система %1 установлена на ваш компьютер.<br/>Можете перезагрузить компьютер и начать использовать вашу новую систему. - + <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 setup program.</p></body></html> <html><head/><body><p>Если этот флажок установлен, ваша система будет перезагружена сразу после нажатия кнопки <span style="font-style:italic;">Готово</span> или закрытия программы установки.</p></body></html> - + <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>Готово.</h1><br/>Система %1 установлена на Ваш компьютер.<br/>Вы можете перезагрузить компьютер и использовать Вашу новую систему или продолжить работу в Live окружении %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Если этот флажок установлен, ваша система будет перезагружена сразу после нажатия кнопки <span style=" font-style:italic;">Готово</span> или закрытия программы установки.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Сбой установки</h1><br/>Система %1 не была установлена на ваш компьютер.<br/>Сообщение об ошибке: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Сбой установки</h1><br/>Не удалось установить %1 на ваш компьютер.<br/>Сообщение об ошибке: %2. @@ -1308,27 +1313,27 @@ n%1 FinishedViewStep - + Finish Завершить - + Setup Complete Установка завершена - + Installation Complete Установка завершена - + The setup of %1 is complete. Установка %1 завершена. - + The installation of %1 is complete. Установка %1 завершена. @@ -1359,72 +1364,72 @@ n%1 GeneralRequirements - + has at least %1 GiB available drive space доступно как минимум %1 ГБ свободного дискового пространства - + There is not enough drive space. At least %1 GiB is required. Недостаточно места на дисках. Необходимо как минимум %1 ГБ. - + has at least %1 GiB working memory доступно как минимум %1 ГБ оперативной памяти - + The system does not have enough working memory. At least %1 GiB is required. Недостаточно оперативной памяти. Необходимо как минимум %1 ГБ. - + 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. Отсутствует выход в Интернет. - + is running the installer as an administrator (root) запуск установщика с правами администратора (root) - + The setup program is not running with administrator rights. Программа установки запущена без прав администратора. - + The installer is not running with administrator rights. Программа установки не запущена с привилегиями администратора. - + has a screen large enough to show the whole installer экран достаточно большой, чтобы показать установщик полностью - + The screen is too small to display the setup program. Экран слишком маленький, чтобы отобразить программу установки. - + The screen is too small to display the installer. Экран слишком маленький, чтобы отобразить окно установщика. @@ -1772,6 +1777,16 @@ n%1 + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1910,6 +1925,19 @@ n%1 + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2497,107 +2525,107 @@ n%1 Разделы - + Install %1 <strong>alongside</strong> another operating system. Установить %1 <strong>параллельно</strong> к другой операционной системе. - + <strong>Erase</strong> disk and install %1. <strong>Очистить</strong> диск и установить %1. - + <strong>Replace</strong> a partition with %1. <strong>Заменить</strong> раздел на %1. - + <strong>Manual</strong> partitioning. <strong>Ручная</strong> разметка. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Установить %1 <strong>параллельно</strong> к другой операционной системе на диске <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Очистить</strong> диск <strong>%2</strong> (%3) и установить %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Заменить</strong> раздел на диске <strong>%2</strong> (%3) на %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ручная</strong> разметка диска <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Диск <strong>%1</strong> (%2) - + Current: Текущий: - + After: После: - + No EFI system partition configured Нет настроенного системного раздела EFI - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set Не установлен флаг системного раздела EFI - + Option to use GPT on BIOS Возможность для использования GPT в BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Таблица разделов GPT - наилучший вариант для всех систем. Этот установщик позволяет использовать таблицу разделов GPT для систем с BIOS. <br/> <br/> Чтобы установить таблицу разделов как GPT (если это еще не сделано) вернитесь назад и создайте таблицу разделов GPT, затем создайте 8 МБ Не форматированный раздел с включенным флагом <strong> bios-grub</strong> </ strong>. <br/> <br/> Не форматированный раздел в 8 МБ необходим для запуска %1 на системе с BIOS и таблицей разделов GPT. - + 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. Включено шифрование корневого раздела, но использован отдельный загрузочный раздел без шифрования.<br/><br/>При такой конфигурации возникают проблемы с безопасностью, потому что важные системные файлы хранятся на разделе без шифрования.<br/>Если хотите, можете продолжить, но файловая система будет разблокирована позднее во время загрузки системы.<br/>Чтобы включить шифрование загрузочного раздела, вернитесь назад и снова создайте его, отметив <strong>Шифровать</strong> в окне создания раздела. - + has at least one disk device available. имеет как минимум одно доступное дисковое устройство. - + There are no partitions to install on. Нет разделов для установки. @@ -2663,14 +2691,14 @@ n%1 ProcessResult - + There was no output from the command. Вывода из команды не последовало. - + Output: @@ -2679,52 +2707,52 @@ Output: - + External command crashed. Сбой внешней команды. - + Command <i>%1</i> crashed. Сбой команды <i>%1</i>. - + External command failed to start. Не удалось запустить внешнюю команду. - + Command <i>%1</i> failed to start. Не удалось запустить команду <i>%1</i>. - + 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. Команда <i>%1</i> не завершилась за %2 с. - + External command finished with errors. Внешняя команда завершилась с ошибками. - + Command <i>%1</i> finished with exit code %2. Команда <i>%1</i> завершилась с кодом %2. @@ -2732,32 +2760,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Проверка требований для модуля <i>%1</i> завершена. - - - + unknown неизвестный - + extended расширенный - + unformatted неформатированный - + swap swap @@ -2811,6 +2834,15 @@ Output: Неразмеченное место или неизвестная таблица разделов + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2846,73 +2878,88 @@ Output: Форма - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Выберите, где установить %1.<br/><font color="red">Внимание: </font>это удалит все файлы на выбранном разделе. - + The selected item does not appear to be a valid partition. Выбранный элемент, видимо, не является действующим разделом. - + %1 cannot be installed on empty space. Please select an existing partition. %1 не может быть установлен вне раздела. Пожалуйста выберите существующий раздел. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 не может быть установлен прямо в расширенный раздел. Выберите существующий основной или логический раздел. - + %1 cannot be installed on this partition. %1 не может быть установлен в этот раздел. - + Data partition (%1) Раздел данных (%1) - + Unknown system partition (%1) Неизвестный системный раздел (%1) - + %1 system partition (%2) %1 системный раздел (%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>%4</strong><br/><br/>Раздел %1 слишком мал для %2. Пожалуйста выберите раздел объемом не менее %3 Гиб. - + <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>%2</strong><br/><br/>Не найден системный раздел EFI. Вернитесь назад и выполните ручную разметку для установки %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. <strong>%3</strong><br/><br/>%1 будет установлен в %2.<br/><font color="red">Внимание: </font>все данные на разделе %2 будут потеряны. - + The EFI system partition at %1 will be used for starting %2. Системный раздел EFI на %1 будет использован для запуска %2. - + EFI system partition: Системный раздел EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3035,12 +3082,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Для наилучших результатов, убедитесь, что этот компьютер: - + System requirements Системные требования @@ -3048,27 +3095,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Этот компьютер не соответствует минимальным требованиям для установки %1.<br/>Невозможно продолжить установку. <a href="#details">Подробнее...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Этот компьютер не соответствует минимальным требованиям для установки %1.<br/>Невозможно продолжить установку. <a href="#details">Подробнее...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Этот компьютер соответствует не всем рекомендуемым требованиям для установки %1.<br/>Можно продолжить установку, но некоторые возможности могут быть недоступны. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Этот компьютер соответствует не всем рекомендуемым требованиям для установки %1.<br/>Можно продолжить установку, но некоторые возможности могут быть недоступны. - + This program will ask you some questions and set up %2 on your computer. Эта программа задаст вам несколько вопросов и поможет установить %2 на ваш компьютер. @@ -3351,51 +3398,80 @@ Output: TrackingInstallJob - + Installation feedback Отчёт об установке - + Sending installation feedback. Отправка отчёта об установке. - + Internal error in install-tracking. Внутренняя ошибка в install-tracking. - + HTTP request timed out. Тайм-аут запроса HTTP. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + - + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback - + Configuring machine feedback. - - + + Error in machine feedback configuration. - + Could not configure machine feedback correctly, script error %1. Не удалось настроить отзывы о компьютере, ошибка сценария %1. - + Could not configure machine feedback correctly, Calamares error %1. Не удалось настроить отзывы о компьютере, ошибка Calamares %1. @@ -3414,8 +3490,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Если вы это выберете, то не будет отправлено <span style=" font-weight:600;">никаких</span> сведений об установке.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3423,30 +3499,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Щелкните здесь чтобы узнать больше об отзывах пользователей</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. - Отслеживание установок позволяет %1 узнать, сколько у них пользователей, на каком оборудовании устанавливается %1, и (с двумя последними опциями) постоянно получать сведения о предпочитаемых приложениях. Чтобы увидеть, что будет отправлено, щелкните по значку справки рядом с каждой областью. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Отметив этот пункт, вы поделитесь информацией о установке и своем оборудовании. Эта информация <b>будет отправлена только один раз</b> после завершения установки. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Отметив этот пункт, вы будете <b>периодически</b> отправлять %1 информацию о своей установке, оборудовании и приложениях. + + By selecting this you will periodically send information about your <b>machine</b> 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. - Отметив этот пункт, вы будете <b>регулярно</b> отправлять %1 информацию о своей установке, оборудовании, приложениях и паттернах их использования. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback Отзывы @@ -3632,42 +3708,42 @@ Output: &Примечания к выпуску - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Добро пожаловать в программу установки Calamares для %1 .</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Добро пожаловать в программу установки %1 .</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Добро пожаловать в установщик Calamares для %1 .</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Добро пожаловать в программу установки %1 .</h1> - + %1 support %1 поддержка - + About %1 setup О установке %1 - + About %1 installer О программе установки %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3675,7 +3751,7 @@ Output: WelcomeQmlViewStep - + Welcome Добро пожаловать @@ -3683,7 +3759,7 @@ Output: WelcomeViewStep - + Welcome Добро пожаловать @@ -3712,6 +3788,26 @@ Output: Назад + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Назад + + keyboardq @@ -3757,6 +3853,24 @@ Output: Проверьте свою клавиатуру + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3809,27 +3923,27 @@ Output: - + About О Программе - + Support Поддержка - + Known issues Известные проблемы - + Release notes Примечания к выпуску - + Donate diff --git a/lang/calamares_sk.ts b/lang/calamares_sk.ts index bed5e96bf..e52a6422a 100644 --- a/lang/calamares_sk.ts +++ b/lang/calamares_sk.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Inštalácia - + Install Inštalácia @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Úloha zlyhala (%1) - + Programmed job failure was explicitly requested. Zlyhanie naprogramovanej úlohy bolo výlučne vyžiadané. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Hotovo @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Vzorová úloha (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Spustenie príkazu „%1“ v cieľovom systéme. - + Run command '%1'. Spustenie príkazu „%1“. - + Running command %1 %2 Spúšťa sa príkaz %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Spúšťa sa operácia %1. - + Bad working directory path Nesprávna cesta k pracovnému adresáru - + Working directory %1 for python job %2 is not readable. Pracovný adresár %1 pre úlohu jazyka python %2 nie je možné čítať. - + Bad main script file Nesprávny súbor hlavného skriptu - + Main script file %1 for python job %2 is not readable. Súbor hlavného skriptu %1 pre úlohu jazyka python %2 nie je možné čítať. - + Boost.Python error in job "%1". Chyba knižnice Boost.Python v úlohe „%1“. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Kontrola požiadaviek modulu <i>%1</i> je dokončená. + - + Waiting for %n module(s). Čaká sa na %n modul. @@ -238,7 +243,7 @@ - + (%n second(s)) (%n sekunda) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. Kontrola systémových požiadaviek je dokončená. @@ -277,13 +282,13 @@ - + &Yes _Áno - + &No _Nie @@ -318,109 +323,109 @@ <br/>Nebolo možné načítať nasledujúce moduly - + Continue with setup? Pokračovať v inštalácii? - + Continue with installation? Pokračovať v inštalácii? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Inštalačný program distribúcie %1 sa chystá vykonať zmeny na vašom disku, aby nainštaloval distribúciu %2. <br/><strong>Tieto zmeny nebudete môcť vrátiť späť.</strong> - + 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> Inštalátor distribúcie %1 sa chystá vykonať zmeny na vašom disku, aby nainštaloval distribúciu %2. <br/><strong>Tieto zmeny nebudete môcť vrátiť späť.</strong> - + &Set up now &Inštalovať teraz - + &Install now &Inštalovať teraz - + Go &back Prejsť s&päť - + &Set up &Inštalovať - + &Install _Inštalovať - + Setup is complete. Close the setup program. Inštalácia je dokončená. Zavrite inštalačný program. - + The installation is complete. Close the installer. Inštalácia je dokončená. Zatvorí inštalátor. - + Cancel setup without changing the system. Zrušenie inštalácie bez zmien v systéme. - + Cancel installation without changing the system. Zruší inštaláciu bez zmeny systému. - + &Next Ď&alej - + &Back &Späť - + &Done _Dokončiť - + &Cancel &Zrušiť - + Cancel setup? Zrušiť inštaláciu? - + Cancel installation? Zrušiť inštaláciu? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Naozaj chcete zrušiť aktuálny priebeh inštalácie? Inštalačný program bude ukončený a zmeny budú stratené. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Skutočne chcete zrušiť aktuálny priebeh inštalácie? @@ -430,22 +435,22 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CalamaresPython::Helper - + Unknown exception type Neznámy typ výnimky - + unparseable Python error Neanalyzovateľná chyba jazyka Python - + unparseable Python traceback Neanalyzovateľný ladiaci výstup jazyka Python - + Unfetchable Python error. Nezískateľná chyba jazyka Python. @@ -463,32 +468,32 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CalamaresWindow - + Show debug information Zobraziť ladiace informácie - + &Back &Späť - + &Next Ď&alej - + &Cancel &Zrušiť - + %1 Setup Program Inštalačný program distribúcie %1 - + %1 Installer Inštalátor distribúcie %1 @@ -685,18 +690,18 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CommandList - - + + Could not run command. Nepodarilo sa spustiť príkaz. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Príkaz beží v hostiteľskom prostredí a potrebuje poznať koreňovú cestu, ale nie je definovaný žiadny koreňový prípojný bod. - + The command needs to know the user's name, but no username is defined. Príkaz musí poznať meno používateľa, ale žiadne nie je definované. @@ -749,49 +754,49 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Sieťová inštalácia. (Zakázaná: Nie je možné získať zoznamy balíkov. Skontrolujte vaše sieťové pripojenie.) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/>Inštalácia nemôže pokračovať. <a href="#details">Podrobnosti...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/>Inštalácia nemôže pokračovať. <a href="#details">Podrobnosti...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/>Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/>Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. - + This program will ask you some questions and set up %2 on your computer. Tento program vám položí niekoľko otázok a nainštaluje distribúciu %2 do vášho počítača. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Vitajte v inštalačnom programe Calamares pre distribúciu %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Vitajte v inštalačnom programe Calamares pre distribúciu %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Vitajte pri inštalácii distribúcie %1.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Vitajte pri inštalácii distribúcie %1</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Vitajte v aplikácii Calamares, inštalátore distribúcie %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Vitajte v aplikácii Calamares, inštalátore distribúcie %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Vitajte v inštalátore distribúcie %1.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Vitajte v inštalátore distribúcie %1</h1> @@ -1228,37 +1233,37 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. FillGlobalStorageJob - + Set partition information Nastaviť informácie o oddieli - + Install %1 on <strong>new</strong> %2 system partition. Inštalovať distribúciu %1 na <strong>novom</strong> %2 systémovom oddieli. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Nastaviť <strong>nový</strong> %2 oddiel s bodom pripojenia <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Inštalovať distribúciu %2 na %3 systémovom oddieli <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Nastaviť %3 oddiel <strong>%1</strong> s bodom pripojenia <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Inštalovať zavádzač do <strong>%1</strong>. - + Setting up mount points. Nastavujú sa body pripojení. @@ -1276,32 +1281,32 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. &Reštartovať teraz - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Všetko je dokončené.</h1><br/>Distribúcia %1 bola nainštalovaná do vášho počítača.<br/>Teraz môžete začať používať váš nový systém. - + <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 setup program.</p></body></html> <html><head/><body><p>Keď je zaškrtnuté toto políčko, váš systém sa okamžite reštartuje po stlačení tlačidla <span style="font-style:italic;">Dokončiť</span> alebo zatvorení inštalačného programu.</p></body></html> - + <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>Všetko je dokončené.</h1><br/>Distribúcia %1 bola nainštalovaná do vášho počítača.<br/>Teraz môžete reštartovať počítač a spustiť váš nový systém, alebo pokračovať v používaní živého prostredia distribúcie %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Keď je zaškrtnuté toto políčko, váš systém sa okamžite reštartuje po stlačení tlačidla <span style="font-style:italic;">Dokončiť</span> alebo zatvorení inštalátora.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Inštalácia zlyhala</h1><br/>Distribúcia %1 nebola nainštalovaná do vášho počítača.<br/>Chybová hláška: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Inštalácia zlyhala</h1><br/>Distribúcia %1 nebola nainštalovaná do vášho počítača.<br/>Chybová hláška: %2. @@ -1309,27 +1314,27 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. FinishedViewStep - + Finish Dokončenie - + Setup Complete Inštalácia dokončená - + Installation Complete Inštalácia dokončená - + The setup of %1 is complete. Inštalácia distribúcie %1 je dokončená. - + The installation of %1 is complete. Inštalácia distribúcie %1s je dokončená. @@ -1360,72 +1365,72 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. GeneralRequirements - + has at least %1 GiB available drive space obsahuje aspoň %1 GiB voľného miesta na disku - + There is not enough drive space. At least %1 GiB is required. Nie je dostatok miesta na disku. Vyžaduje sa aspoň %1 GiB. - + has at least %1 GiB working memory obsahuje aspoň %1 GiB voľnej operačnej pamäte - + The system does not have enough working memory. At least %1 GiB is required. Počítač neobsahuje dostatok operačnej pamäte. Vyžaduje sa aspoň %1 GiB. - + is plugged in to a power source je pripojený k zdroju napájania - + The system is not plugged in to a power source. Počítač nie je pripojený k zdroju napájania. - + is connected to the Internet je pripojený k internetu - + The system is not connected to the Internet. Počítač nie je pripojený k internetu. - + is running the installer as an administrator (root) má spustený inštalátor s právami správcu (root) - + The setup program is not running with administrator rights. Inštalačný program nie je spustený s právami správcu. - + The installer is not running with administrator rights. Inštalátor nie je spustený s právami správcu. - + has a screen large enough to show the whole installer má obrazovku dostatočne veľkú na zobrazenie celého inštalátora - + The screen is too small to display the setup program. Obrazovka je príliš malá na to, aby bolo možné zobraziť inštalačný program. - + The screen is too small to display the installer. Obrazovka je príliš malá na to, aby bolo možné zobraziť inštalátor. @@ -1773,6 +1778,16 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1911,6 +1926,19 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Nastavenie hromadného identifikátora výrobcu na <code>%1</code>. + + Offline + + + Timezone: %1 + Časová zóna: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Aby bolo možné vybrať časovú zónu, uistite sa, že ste pripojený k internetu. Po pripojení reštartujte inštalátor. Nižšie môžete upresniť nastavenia jazyka a miestne nastavenia. + + PWQ @@ -2498,107 +2526,107 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Oddiely - + Install %1 <strong>alongside</strong> another operating system. Inštalácia distribúcie %1 <strong>popri</strong> inom operačnom systéme. - + <strong>Erase</strong> disk and install %1. <strong>Vymazanie</strong> disku a inštalácia distribúcie %1. - + <strong>Replace</strong> a partition with %1. <strong>Nahradenie</strong> oddielu distribúciou %1. - + <strong>Manual</strong> partitioning. <strong>Ručné</strong> rozdelenie oddielov. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Inštalácia distribúcie %1 <strong>popri</strong> inom operačnom systéme na disku <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Vymazanie</strong> disku <strong>%2</strong> (%3) a inštalácia distribúcie %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Nahradenie</strong> oddielu na disku <strong>%2</strong> (%3) distribúciou %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ručné</strong> rozdelenie oddielov na disku <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Teraz: - + After: Potom: - + No EFI system partition configured Nie je nastavený žiadny oddiel systému EFI - + 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>%3</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. Oddiel systému EFI je potrebný pre spustenie distribúcie %1.<br/><br/>Na nastavenie oddielu systému EFI prejdite späť a vyberte, alebo vytvorte systém súborov FAT32 s povoleným príznakom <strong>%3</strong> a bod pripojenia <strong>%2</strong>.<br/><br/>Môžete pokračovať bez nastavenia oddielu systému EFI, ale váš systém môže pri spustení zlyhať. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. Oddiel systému EFI je potrebný pre spustenie distribúcie %1.<br/><br/>Oddiel bol nastavený s bodom pripojenia <strong>%2</strong>, ale nemá nastavený príznak <strong>%3</strong>.<br/>Na nastavenie príznaku prejdite späť a upravte oddiel.<br/><br/>Môžete pokračovať bez nastavenia príznaku, ale váš systém môže pri spustení zlyhať. - + EFI system partition flag not set Príznak oddielu systému EFI nie je nastavený - + Option to use GPT on BIOS Voľba na použitie tabuľky GPT s BIOSom - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Tabuľka oddielov GPT je najlepšou voľbou pre všetky systémy. Inštalátor podporuje taktiež inštaláciu pre systémy s BIOSom.<br/><br/>Pre nastavenie tabuľky oddielov GPT s BIOSom, (ak ste tak už neučinili) prejdite späť a nastavte tabuľku oddielov na GPT, a potom vytvorte nenaformátovaný oddiel o veľkosti 8 MB s povoleným príznakom <strong>bios_grub</strong>.<br/><br/>Nenaformátovaný oddiel o veľkosti 8 MB je potrebný na spustenie distribúcie %1 na systéme s BIOSom a tabuľkou GPT. - + Boot partition not encrypted Zavádzací oddiel nie je zašifrovaný - + 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. Spolu so zašifrovaným koreňovým oddielom bol nainštalovaný oddelený zavádzací oddiel, ktorý ale nie je zašifrovaný.<br/><br/>S týmto typom inštalácie je ohrozená bezpečnosť, pretože dôležité systémové súbory sú uchovávané na nezašifrovanom oddieli.<br/>Ak si to želáte, môžete pokračovať, ale neskôr, počas spúšťania systému sa vykoná odomknutie systému súborov.<br/>Na zašifrovanie zavádzacieho oddielu prejdite späť a vytvorte ju znovu vybraním voľby <strong>Zašifrovať</strong> v okne vytvárania oddielu. - + has at least one disk device available. má dostupné aspoň jedno diskové zariadenie. - + There are no partitions to install on. Neexistujú žiadne oddiely, na ktoré je možné vykonať inštaláciu. @@ -2664,14 +2692,14 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. ProcessResult - + There was no output from the command. Žiadny výstup z príkazu. - + Output: @@ -2680,52 +2708,52 @@ Výstup: - + External command crashed. Externý príkaz nečakane skončil. - + Command <i>%1</i> crashed. Príkaz <i>%1</i> nečakane skončil. - + External command failed to start. Zlyhalo spustenie externého príkazu. - + Command <i>%1</i> failed to start. Zlyhalo spustenie príkazu <i>%1</i> . - + Internal error when starting command. Počas spúšťania príkazu sa vyskytla interná chyba. - + Bad parameters for process job call. Nesprávne parametre pre volanie úlohy procesu. - + External command failed to finish. Zlyhalo dokončenie externého príkazu. - + Command <i>%1</i> failed to finish in %2 seconds. Zlyhalo dokončenie príkazu <i>%1</i> počas doby %2 sekúnd. - + External command finished with errors. Externý príkaz bol dokončený s chybami. - + Command <i>%1</i> finished with exit code %2. Príkaz <i>%1</i> skončil s ukončovacím kódom %2. @@ -2733,32 +2761,27 @@ Výstup: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Kontrola požiadaviek modulu <i>%1</i> je dokončená. - - - + unknown neznámy - + extended rozšírený - + unformatted nenaformátovaný - + swap odkladací @@ -2812,6 +2835,16 @@ Výstup: Nerozdelené miesto alebo neznáma tabuľka oddielov + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/> +  Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané.</p> + + RemoveUserJob @@ -2847,73 +2880,90 @@ Výstup: Forma - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Vyberte, kam sa má nainštalovať distribúcia %1.<br/><font color="red">Upozornenie: </font>týmto sa odstránia všetky súbory na vybranom oddieli. - + The selected item does not appear to be a valid partition. Zdá sa, že vybraná položka nie je platným oddielom. - + %1 cannot be installed on empty space. Please select an existing partition. Distribúcia %1 sa nedá nainštalovať na prázdne miesto. Prosím, vyberte existujúci oddiel. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. Distribúcia %1 sa nedá nainštalovať na rozšírený oddiel. Prosím, vyberte existujúci primárny alebo logický oddiel. - + %1 cannot be installed on this partition. Distribúcia %1 sa nedá nainštalovať na tento oddiel. - + Data partition (%1) Údajový oddiel (%1) - + Unknown system partition (%1) Neznámy systémový oddiel (%1) - + %1 system partition (%2) Systémový oddiel operačného systému %1 (%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>%4</strong><br/><br/>Oddiel %1 je príliš malý pre distribúciu %2. Prosím, vyberte oddiel s kapacitou aspoň %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>%2</strong><br/><br/>Oddiel systému EFI sa nedá v tomto počítači nájsť. Prosím, prejdite späť a použite ručné rozdelenie oddielov na inštaláciu distribúcie %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. <strong>%3</strong><br/><br/>Distribúcia %1 bude nainštalovaná na oddiel %2.<br/><font color="red">Upozornenie: </font>všetky údaje na oddieli %2 budú stratené. - + The EFI system partition at %1 will be used for starting %2. Oddiel systému EFI na %1 bude použitý pre spustenie distribúcie %2. - + EFI system partition: Oddiel systému EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/> +  Inštalácia nemôže pokračovať.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/> +  Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. + + ResizeFSJob @@ -3036,12 +3086,12 @@ Výstup: ResultsListDialog - + For best results, please ensure that this computer: Pre čo najlepší výsledok, sa prosím, uistite, že tento počítač: - + System requirements Systémové požiadavky @@ -3049,27 +3099,27 @@ Výstup: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/>Inštalácia nemôže pokračovať. <a href="#details">Podrobnosti...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Tento počítač nespĺňa minimálne požiadavky pre inštaláciu distribúcie %1.<br/>Inštalácia nemôže pokračovať. <a href="#details">Podrobnosti...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/>Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Tento počítač nespĺňa niektoré z odporúčaných požiadaviek pre inštaláciu distribúcie %1.<br/>Inštalácia môže pokračovať, ale niektoré funkcie môžu byť zakázané. - + This program will ask you some questions and set up %2 on your computer. Tento program vám položí niekoľko otázok a nainštaluje distribúciu %2 do vášho počítača. @@ -3352,51 +3402,80 @@ Výstup: TrackingInstallJob - + Installation feedback Spätná väzba inštalácie - + Sending installation feedback. Odosiela sa spätná väzba inštalácie. - + Internal error in install-tracking. Interná chyba príkazu install-tracking. - + HTTP request timed out. Požiadavka HTTP vypršala. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Spätná väzba počítača - + Configuring machine feedback. Nastavuje sa spätná väzba počítača. - - + + Error in machine feedback configuration. Chyba pri nastavovaní spätnej väzby počítača. - + Could not configure machine feedback correctly, script error %1. Nepodarilo sa správne nastaviť spätnú väzbu počítača. Chyba skriptu %1. - + Could not configure machine feedback correctly, Calamares error %1. Nepodarilo sa správne nastaviť spätnú väzbu počítača. Chyba inštalátora Calamares %1. @@ -3415,8 +3494,8 @@ Výstup: - <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>Výberom tejto voľby neodošlete <span style=" font-weight:600;">žiadne informácie</span> o vašej inštalácii.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3424,30 +3503,30 @@ Výstup: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Kliknutím sem získate viac informácií o spätnej väzbe od používateľa</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. - Inštalácia sledovania pomáha distribúcii %1 vidieť, koľko používateľov ju používa, na akom hardvéri inštalujú distribúciu %1 a (s poslednými dvoma voľbami nižšie) získavať nepretržité informácie o uprednostňovaných aplikáciách. Na zobrazenie, čo bude odosielané, prosím, kliknite na ikonu pomocníka vedľa každej oblasti. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Vybraním tejto voľby odošlete informácie o vašej inštalácii a hardvéri. Tieto informácie budú <b>odoslané iba raz</b> po dokončení inštalácie. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Vybraním tejto voľby odošlete informácie o vašej inštalácii a hardvéri. Tieto informácie budú odoslané <b>iba raz</b> po dokončení inštalácie. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Vybraním tejto voľby budete <b>pravidelne</b> odosielať informácie o vašej inštalácii, hardvéri a aplikáciách distribúcii %1. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Vybraním tejto voľby budete pravidelne odosielať informácie o vašom <b>počítači</b>, inštalácii, hardvéri a aplikáciách distribúcii %1. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Vybraním tejto voľby budete <b>neustále</b> odosielať informácie o vašej inštalácii, hardvéri, aplikáciách a charakteristike používania distribúcii %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Vybraním tejto voľby budete neustále odosielať informácie o vašej <b>používateľskej</b> inštalácii, hardvéri, aplikáciách a charakteristike používania distribúcii %1. TrackingViewStep - + Feedback Spätná väzba @@ -3633,42 +3712,42 @@ Výstup: &Poznámky k vydaniu - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Vitajte v inštalačnom programe Calamares pre distribúciu %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Vitajte pri inštalácii distribúcie %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Vitajte v aplikácii Calamares, inštalátore distribúcie %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Vitajte v inštalátore distribúcie %1.</h1> - + %1 support Podpora distribúcie %1 - + About %1 setup O inštalátore %1 - + About %1 installer O inštalátore %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>pre %3</strong><br/><br/>Autorské práva 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorské práva 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Poďakovanie patrí <a href="https://calamares.io/team/">tímu inštalátora Calamares</a> a <a href="https://www.transifex.com/calamares/calamares/">prekladateľskému tímu inštalátora Calamares</a>.<br/><br/>Vývoj inštalátora <a href="https://calamares.io/">Calamares</a> je sponzorovaný spoločnosťou <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - oslobodzujúci softvér. @@ -3676,7 +3755,7 @@ Výstup: WelcomeQmlViewStep - + Welcome Uvítanie @@ -3684,7 +3763,7 @@ Výstup: WelcomeViewStep - + Welcome Uvítanie @@ -3723,6 +3802,26 @@ Výstup: Späť + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Späť + + keyboardq @@ -3768,6 +3867,24 @@ Výstup: Vyskúšajte vašu klávesnicu + + localeq + + + System language set to %1 + Jazyk systému bol nastavený na %1 + + + + Numbers and dates locale set to %1 + Miestne nastavenie čísel a dátumov boli nastavené na %1. + + + + Change + Zmeniť + + notesqml @@ -3821,27 +3938,27 @@ Výstup: <p>Tento program vám položí niekoľko otázok a nainštaluje distribúciu %1 do vášho počítača.</p> - + About O inštalátore - + Support Podpora - + Known issues Známe problémy - + Release notes Poznámky k vydaniu - + Donate Prispieť diff --git a/lang/calamares_sl.ts b/lang/calamares_sl.ts index 56838a558..ef1eac5fb 100644 --- a/lang/calamares_sl.ts +++ b/lang/calamares_sl.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Namesti @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Končano @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path Nepravilna pot delovne mape - + Working directory %1 for python job %2 is not readable. Ni mogoče brati delovne mape %1 za pythonovo opravilo %2. - + Bad main script file Nepravilna datoteka glavnega skripta - + Main script file %1 for python job %2 is not readable. Ni mogoče brati datoteke %1 glavnega skripta za pythonovo opravilo %2. - + Boost.Python error in job "%1". Napaka Boost.Python v opravilu "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -238,7 +243,7 @@ - + (%n second(s)) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. @@ -277,13 +282,13 @@ - + &Yes - + &No @@ -318,108 +323,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &Naprej - + &Back &Nazaj - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? Preklic namestitve? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Ali res želite preklicati trenutni namestitveni proces? @@ -429,22 +434,22 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CalamaresPython::Helper - + Unknown exception type Neznana vrsta izjeme - + unparseable Python error nerazčlenljiva napaka Python - + unparseable Python traceback - + Unfetchable Python error. @@ -461,32 +466,32 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CalamaresWindow - + Show debug information - + &Back &Nazaj - + &Next &Naprej - + &Cancel - + %1 Setup Program - + %1 Installer %1 Namestilnik @@ -683,18 +688,18 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -747,48 +752,48 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1226,37 +1231,37 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. FillGlobalStorageJob - + Set partition information Nastavi informacije razdelka - + 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. @@ -1274,32 +1279,32 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1307,27 +1312,27 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. FinishedViewStep - + Finish Končano - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1358,72 +1363,72 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source je priklopljen na vir napajanja - + The system is not plugged in to a power source. - + is connected to the Internet je povezan s spletom - + The system is not connected to the Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1771,6 +1776,16 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1909,6 +1924,19 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2496,107 +2524,107 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. Razdelki - + 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: Potem: - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2662,65 +2690,65 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. 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. Nepravilni parametri za klic procesa opravila. - + 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. @@ -2728,32 +2756,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2807,6 +2830,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2842,73 +2874,88 @@ Output: Oblika - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3031,12 +3078,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Za najboljše rezultate se prepričajte, da vaš računalnik izpolnjuje naslednje zahteve: - + System requirements @@ -3044,27 +3091,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3347,51 +3394,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3410,7 +3486,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3419,30 +3495,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3628,42 +3704,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3671,7 +3747,7 @@ Output: WelcomeQmlViewStep - + Welcome Dobrodošli @@ -3679,7 +3755,7 @@ Output: WelcomeViewStep - + Welcome Dobrodošli @@ -3708,6 +3784,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3753,6 +3849,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3804,27 +3918,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_sq.ts b/lang/calamares_sq.ts index cbbc2e9d9..0ffbae6e4 100644 --- a/lang/calamares_sq.ts +++ b/lang/calamares_sq.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Ujdise - + Install Instalim @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Akti dështoi (%1) - + Programmed job failure was explicitly requested. Dështimi i programuar i aktit qe kërkuar shprehimisht. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done U bë @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Shembull akti (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Xhiroje urdhrin '%1' te sistemi i synuar. - + Run command '%1'. Xhiro urdhrin '%1'. - + Running command %1 %2 Po xhirohet urdhri %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Po xhirohet %1 veprim. - + Bad working directory path Shteg i gabuar drejtorie pune - + Working directory %1 for python job %2 is not readable. Drejtoria e punës %1 për aktin python %2 s’është e lexueshme. - + Bad main script file Kartelë kryesore programthi e dëmtuar - + Main script file %1 for python job %2 is not readable. Kartela kryesore e programthit file %1 për aktin python %2 s’është e lexueshme. - + Boost.Python error in job "%1". Gabim Boost.Python tek akti \"%1\". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Kontrolli i domosdoshmërive për modulin <i>%1</i> u plotësua. + - + Waiting for %n module(s). Po pritet për %n modul(e). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n sekondë(a)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Kontrolli i domosdoshmërive të sistemit u plotësua. @@ -273,13 +278,13 @@ - + &Yes &Po - + &No &Jo @@ -314,109 +319,109 @@ <br/>S’u ngarkuan dot modulet vijues: - + Continue with setup? Të vazhdohet me rregullimin? - + Continue with installation? Të vazhdohet me instalimin? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Programi i rregullimit %1 është një hap larg nga bërja e ndryshimeve në diskun tuaj, që të mund të rregullojë %2.<br/><strong>S’do të jeni në gjendje t’i zhbëni këto ndryshime.</strong> - + 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> Instaluesi %1 është një hap larg nga bërja e ndryshimeve në diskun tuaj, që të mund të instalojë %2.<br/><strong>S’do të jeni në gjendje t’i zhbëni këto ndryshime.</strong> - + &Set up now &Rregulloje tani - + &Install now &Instaloje tani - + Go &back Kthehu &mbrapsht - + &Set up &Rregulloje - + &Install &Instaloje - + Setup is complete. Close the setup program. Rregullimi është i plotë. Mbylleni programin e rregullimit. - + The installation is complete. Close the installer. Instalimi u plotësua. Mbylleni instaluesin. - + Cancel setup without changing the system. Anuloje rregullimin pa ndryshuar sistemin. - + Cancel installation without changing the system. Anuloje instalimin pa ndryshuar sistemin. - + &Next Pas&uesi - + &Back &Mbrapsht - + &Done &U bë - + &Cancel &Anuloje - + Cancel setup? Të anulohet rregullimi? - + Cancel installation? Të anulohet instalimi? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Doni vërtet të anulohet procesi i tanishëm i rregullimit? Programi i rregullimit do të mbyllet dhe krejt ndryshimet do të humbin. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Doni vërtet të anulohet procesi i tanishëm i instalimit? @@ -426,22 +431,22 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. CalamaresPython::Helper - + Unknown exception type Lloj i panjohur përjashtimi - + unparseable Python error gabim kodi Python të papërtypshëm - + unparseable Python traceback <i>traceback</i> Python i papërtypshëm - + Unfetchable Python error. Gabim Python mosprurjeje kodi. @@ -459,32 +464,32 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. CalamaresWindow - + Show debug information Shfaq të dhëna diagnostikimi - + &Back &Mbrapsht - + &Next Pas&uesi - + &Cancel &Anuloje - + %1 Setup Program Programi i Rregullimit të %1 - + %1 Installer Instalues %1 @@ -681,18 +686,18 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. CommandList - - + + Could not run command. S’u xhirua dot urdhri. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Urdhri xhirohet në mjedisin strehë dhe është e nevojshme të dijë shtegun për rrënjën, por nuk ka rootMountPoint të përcaktuar. - + The command needs to know the user's name, but no username is defined. Urdhri lypset të dijë emrin e përdoruesit, por s’ka të përcaktuar emër përdoruesi. @@ -745,49 +750,49 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Instalim Nga Rrjeti. (U çaktivizua: S’arrihet të sillen lista paketash, kontrolloni lidhjen tuaj në rrjet) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ky kompjuter s’i plotëson kërkesat minimum për rregullimin e %1.<br/>Rregullimi s’mund të vazhdojë. <a href=\"#details\">Hollësi…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ky kompjuter s’i plotëson kërkesat minimum për instalimin e %1.<br/>Instalimi s’mund të vazhdojë. <a href=\"#details\">Hollësi…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Ky kompjuter s’i plotëson disa nga domosdoshmëritë e rekomanduara për rregullimin e %1.<br/>Rregullimi mund të vazhdojë, por disa veçori mund të përfundojnë të çaktivizuara. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ky kompjuter s’i plotëson disa nga domosdoshmëritë e rekomanduara për instalimin e %1.<br/>Instalimi mund të vazhdojë, por disa veçori mund të përfundojnë të çaktivizuara. - + This program will ask you some questions and set up %2 on your computer. Ky program do t’ju bëjë disa pyetje dhe do të rregullojë %2 në kompjuterin tuaj. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Mirë se vini te programi i rregullimit Calamares për %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Mirë se vini te programi i ujdisjes së Calamares për</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Mirë se vini te rregullimi i %1.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Mirë se vini te udjisja e %1</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Mirë se vini te instaluesi Calamares për %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Mirë se vini te instaluesi Calamares për %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Mirë se vini te instaluesi i %1.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Mirë se vini te instaluesi i %1</h1> @@ -1224,37 +1229,37 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. FillGlobalStorageJob - + Set partition information Caktoni të dhëna pjese - + Install %1 on <strong>new</strong> %2 system partition. Instaloje %1 në pjesë sistemi <strong>të re</strong> %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Rregullo pjesë të <strong>re</strong> %2 me pikë montimi <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Instaloje %2 te pjesa e sistemit %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Rregullo pjesë %3 <strong>%1</strong> me pikë montimi <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Instalo ngarkues nisjesh në <strong>%1</strong>. - + Setting up mount points. Po rregullohen pika montimesh. @@ -1272,32 +1277,32 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. &Rinise tani - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Kaq qe.</h1><br/>%1 u rregullua në kompjuterin tuaj.<br/>Tani mundeni të filloni të përdorni sistemin tuaj të ri. - + <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 setup program.</p></body></html> <html><head/><body><p>Kur i vihet shenjë kësaj kutie, sistemi juaj do të riniset menjëherë, kur klikoni mbi <span style=" font-style:italic;">U bë</span> ose mbyllni programin e rregullimit.</p></body></html> - + <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>Kaq qe.</h1><br/>%1 është instaluar në kompjuterin tuaj.<br/>Tani mundeni ta rinisni me sistemin tuaj të ri, ose të vazhdoni përdorimin e mjedisit %2 Live. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Kur i vihet shenjë kësaj kutie, sistemi juaj do të riniset menjëherë, kur klikoni mbi <span style=" font-style:italic;">U bë</span> ose mbyllni instaluesin.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Rregullimi Dështoi</h1><br/>%1 s’u rregullua në kompjuterin tuaj.<br/>Mesazhi i gabimit qe: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalimi Dështoi</h1><br/>%1 s’u instalua në kompjuterin tuaj.<br/>Mesazhi i gabimit qe: %2. @@ -1305,27 +1310,27 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. FinishedViewStep - + Finish Përfundim - + Setup Complete Rregullim i Plotësuar - + Installation Complete Instalimi u Plotësua - + The setup of %1 is complete. Rregullimi i %1 u plotësua. - + The installation of %1 is complete. Instalimi i %1 u plotësua. @@ -1356,72 +1361,72 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. GeneralRequirements - + has at least %1 GiB available drive space ka të paktën %1 GiB hapësirë të përdorshme - + There is not enough drive space. At least %1 GiB is required. S’ka hapësirë të mjaftueshme. Lypset të paktën %1 GiB. - + has at least %1 GiB working memory ka të paktën %1 GiB kujtesë të përdorshme - + The system does not have enough working memory. At least %1 GiB is required. Sistemi s’ka kujtesë të mjaftueshme për të punuar. Lypsen të paktën %1 GiB. - + is plugged in to a power source është në prizë - + The system is not plugged in to a power source. Sistemi s'është i lidhur me ndonjë burim rryme. - + is connected to the Internet është lidhur në Internet - + The system is not connected to the Internet. Sistemi s’është i lidhur në Internet. - + is running the installer as an administrator (root) po e xhiron instaluesin si një përgjegjës (rrënjë) - + The setup program is not running with administrator rights. Programi i rregullimit nuk po xhirohen me të drejta përgjegjësi. - + The installer is not running with administrator rights. Instaluesi s’po xhirohet me të drejta përgjegjësi. - + has a screen large enough to show the whole installer ka një ekran të mjaftueshëm për të shfaqur krejt instaluesin - + The screen is too small to display the setup program. Ekrani është shumë i vogël për të shfaqur programin e rregullimit. - + The screen is too small to display the installer. Ekrani është shumë i vogël për shfaqjen e instaluesit. @@ -1769,6 +1774,16 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. S’është caktuar pikë montimi rrënjë për MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Ju lutemi, përzgjidhni në hartë vendin tuaj të parapëlqyer, që kështu instaluesi të mund të sugjerojë për ju vendoren dhe rregullime zone kohore. Rregullimet e sugjeruara mund të përimtoni më poshtë. Kërkoni në hartë duke tërhequr, për lëvizje, dhe duke përdorur butonat +/- për zmadhim/zvogëlim, ose përdorni rrëshqitje me miun, për zmadhim/zvogëlim. + + NetInstallViewStep @@ -1907,6 +1922,19 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Caktoni Identifikues partie OEM si <code>%1</code>. + + Offline + + + Timezone: %1 + Zonë kohore: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Për të qenë në gjendje të përzgjidhni një zonë kohore, sigurohuni se jeni i lidhur në internet. Riniseni instaluesin pas lidhjes. Gjuhën dhe Vendoren tuaj mund t’i përimtoni te rregullimet më poshtë. + + PWQ @@ -2494,107 +2522,107 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Pjesë - + Install %1 <strong>alongside</strong> another operating system. Instalojeni %1 <strong>në krah</strong> të një tjetër sistemi operativ. - + <strong>Erase</strong> disk and install %1. <strong>Fshije</strong> diskun dhe instalo %1. - + <strong>Replace</strong> a partition with %1. <strong>Zëvendësojeni</strong> një pjesë me %1. - + <strong>Manual</strong> partitioning. Pjesëtim <strong>dorazi</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instaloje %1 <strong>në krah</strong> të një tjetri sistemi operativ në diskun <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Fshije</strong> diskun <strong>%2</strong> (%3) dhe instalo %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Zëvendëso</strong> një pjesë te disku <strong>%2</strong> (%3) me %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Pjesëtim <strong>dorazi</strong> në diskun <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disku <strong>%1</strong> (%2) - + Current: E tanishmja: - + After: Më Pas: - + No EFI system partition configured S’ka të formësuar pjesë sistemi EFI - + 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>%3</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. Një pjesë EFI sistemi është e nevojshme për nisjen e %1.<br/><br/>Që të formësoni një pjesë EFI sistemi, kthehuni mbrapsht dhe përzgjidhni ose krijoni një sistem kartelash FAT32 me parametrin <strong>%3</strong> të aktivizuar dhe me pikë montimi <strong>%2</strong>.<br/><br/>Mund të vazhdoni pa ujdisur një pjesë EFI sistemi, por nisja nën sistemi juaj mund të dështojë. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. Një pjesë EFI sistemi është e nevojshme për nisjen e %1.<br/><br/>Qe formësuar një pikë montimi <strong>%2</strong>, por parametri <strong>%3</strong> për të s’është ujdisur.<br/>Për të ujdisur parametrin, kthehuni mbrapsht dhe përpunoni pjesën.<br/><br/>Mund të vazhdoni pa ujdisur një pjesë EFI sistemi, por nisja nën sistemin tuaj mund të dështojë. - + EFI system partition flag not set S’i është vënë parametër pjese EFI sistemi - + Option to use GPT on BIOS Mundësi për përdorim GTP-je në BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Një tabelë pjesësh GPT është mundësia më e mirë për krejt sistemet. Ky instalues mbulon gjithashtu një ujdisje të tillë edhe për sisteme BIOS.<br/><br/>Që të formësoni një tabelë pjesësh GPT në BIOS, (nëse s’është bërë ende) kthehuni dhe ujdiseni tabelën e pjesëve si GPT, më pas krijoni një ndarje të paformatuar 8 MB me shenjën <strong>bios_grub</strong> të aktivizuar.<br/><br/>Një pjesë e paformatuar 8 MB është e nevojshme për të nisur %1 në një sistem BIOS me GPT. - + Boot partition not encrypted Pjesë nisjesh e pafshehtëzuar - + 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. Tok me pjesën e fshehtëzuar <em>root</em> qe rregulluar edhe një pjesë <em>boot</em> veçmas, por pjesa <em>boot</em> s’është e fshehtëzuar.<br/><br/>Ka preokupime mbi sigurinë e këtij lloj rregullimi, ngaqë kartela të rëndësishme sistemi mbahen në një pjesë të pafshehtëzuar.<br/>Mund të vazhdoni, nëse doni, por shkyçja e sistemit të kartelave do të ndodhë më vonë, gjatë nisjes së sistemit.<br/>Që të fshehtëzoni pjesën <em>boot</em>, kthehuni mbrapsht dhe rikrijojeni, duke përzgjedhur te skena e krijimit të pjesës <strong>Fshehtëzoje</strong>. - + has at least one disk device available. ka të paktën një pajisje disku për përdorim. - + There are no partitions to install on. S’ka pjesë ku të instalohet. @@ -2660,14 +2688,14 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. ProcessResult - + There was no output from the command. S’pati përfundim nga urdhri. - + Output: @@ -2676,52 +2704,52 @@ Përfundim: - + External command crashed. Urdhri i jashtëm u vithis. - + Command <i>%1</i> crashed. Urdhri <i>%1</i> u vithis. - + External command failed to start. Dështoi nisja e urdhrit të jashtëm. - + Command <i>%1</i> failed to start. Dështoi nisja e urdhrit <i>%1</i>. - + Internal error when starting command. Gabim i brendshëm kur niset urdhri. - + Bad parameters for process job call. Parametra të gabuar për thirrje akti procesi. - + External command failed to finish. S’u arrit të përfundohej urdhër i jashtëm. - + Command <i>%1</i> failed to finish in %2 seconds. Urdhri <i>%1</i> s’arriti të përfundohej në %2 sekonda. - + External command finished with errors. Urdhri i jashtë përfundoi me gabime. - + Command <i>%1</i> finished with exit code %2. Urdhri <i>%1</i> përfundoi me kod daljeje %2. @@ -2729,32 +2757,27 @@ Përfundim: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Kontrolli i domosdoshmërive për modulin <i>%1</i> u plotësua. - - - + unknown e panjohur - + extended extended - + unformatted e paformatuar - + swap swap @@ -2808,6 +2831,16 @@ Përfundim: Hapësirë e papjesëtuar ose tabelë e panjohur pjesësh + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Ky kompjuter s’plotëson disa nga domosdoshmëritë e rekomanduara për ujdisjen e %1.<br/> + Ujdisja mund të vazhdohet, por disa veçori mund të jenë të çaktivizuara.</p> + + RemoveUserJob @@ -2843,73 +2876,90 @@ Përfundim: Formular - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Përzgjidhni ku të instalohet %1.<br/><font color=\"red\">Kujdes: </font>kjo do të sjellë fshirjen e krejt kartelave në pjesën e përzgjedhur. - + The selected item does not appear to be a valid partition. Objekti i përzgjedhur s’duket se është pjesë e vlefshme. - + %1 cannot be installed on empty space. Please select an existing partition. %1 s’mund të instalohet në hapësirë të zbrazët. Ju lutemi, përzgjidhni një pjesë ekzistuese. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 s’mund të instalohet në një pjesë të llojit “extended”. Ju lutemi, përzgjidhni një pjesë parësore ose logjike ekzistuese. - + %1 cannot be installed on this partition. %1 s’mund të instalohet në këtë pjesë. - + Data partition (%1) Pjesë të dhënash (%1) - + Unknown system partition (%1) Pjesë sistemi e panjohur (%1) - + %1 system partition (%2) Pjesë sistemi %1 (%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>%4</strong><br/><br/>Ndarja %1 është shumë e vogël për %2. Ju lutemi, përzgjidhni një pjesë me kapacitet të paktën %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>%2</strong><br/><br/>Në këtë sistem s’gjendet dot ndonjë pjesë sistemi EFI. Ju lutemi, që të rregulloni %1, kthehuni mbrapsht dhe përdorni procesin e pjesëtimit dorazi. - - - + + + <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 do të instalohet në %2.<br/><font color=\"red\">Kujdes: </font>krejt të dhënat në pjesën %2 do të humbin. - + The EFI system partition at %1 will be used for starting %2. Për nisjen e %2 do të përdoret pjesa EFI e sistemit te %1. - + EFI system partition: Pjesë Sistemi EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Ky kompjuter nuk plotëson domosdoshmëritë minimum për instalimin e %1.<br/> + Instalimi s’mund të vazhdojë.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Ky kompjuter s’plotëson disa nga domosdoshmëritë e rekomanduara për ujdisjen e %1.<br/> + Ujdisja mund të vazhdohet, por disa veçori mund të jenë të çaktivizuara.</p> + + ResizeFSJob @@ -3032,12 +3082,12 @@ Përfundim: ResultsListDialog - + For best results, please ensure that this computer: Për përfundime më të mira, ju lutemi, garantoni që ky kompjuter: - + System requirements Sistem i domosdoshëm @@ -3045,27 +3095,27 @@ Përfundim: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Ky kompjuter s’i plotëson kërkesat minimum për rregullimin e %1.<br/>Rregullimi s’mund të vazhdojë. <a href=\"#details\">Hollësi…</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Ky kompjuter s’i plotëson kërkesat minimum për instalimin e %1.<br/>Instalimi s’mund të vazhdojë. <a href=\"#details\">Hollësi…</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Ky kompjuter s’i plotëson disa nga domosdoshmëritë e rekomanduara për rregullimin e %1.<br/>Rregullimi mund të vazhdojë, por disa veçori mund të përfundojnë të çaktivizuara. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Ky kompjuter s’i plotëson disa nga domosdoshmëritë e rekomanduara për instalimin e %1.<br/>Instalimi mund të vazhdojë, por disa veçori mund të përfundojnë të çaktivizuara. - + This program will ask you some questions and set up %2 on your computer. Ky program do t’ju bëjë disa pyetje dhe do të rregullojë %2 në kompjuterin tuaj. @@ -3348,51 +3398,80 @@ Përfundim: TrackingInstallJob - + Installation feedback Përshtypje mbi instalimin - + Sending installation feedback. Po dërgohen përshtypjet mbi instalimin. - + Internal error in install-tracking. Gabim i brendshëm në shquarjen e instalimit. - + HTTP request timed out. Kërkesës HTTP i mbaroi koha. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + Përshtypje nga përdorues të KDE-së + + + + Configuring KDE user feedback. + Formësim përshtypjesh nga përdorues të KDE-së. + + + + + Error in KDE user feedback configuration. + Gabim në formësimin e përshtypjeve nga përdorues të KDE-së. + - + + Could not configure KDE user feedback correctly, script error %1. + Përshtypjet nga përdorues të KDE-së s’u formësuan dot saktë, gabim programthi %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + S’u formësuan dot saktë përshtypjet nga përdorues të KDE-së, gabim Calamares %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Të dhëna nga makina - + Configuring machine feedback. Po formësohet moduli Të dhëna nga makina. - - + + Error in machine feedback configuration. Gabim në formësimin e modulit Të dhëna nga makina. - + Could not configure machine feedback correctly, script error %1. S’u formësua dot si duhet moduli Të dhëna nga makina, gabim programthi %1. - + Could not configure machine feedback correctly, Calamares error %1. S’u formësua dot si duhet moduli Të dhëna nga makina, gabim Calamares %1. @@ -3411,8 +3490,8 @@ Përfundim: - <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>Duke përzgjedhur këtë, <span style=" font-weight:600;">s’do të dërgoni fare të dhëna</span> rreth instalimit tuaj.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Klikoni këtu që të mos dërgohet <span style=" font-weight:600;">fare informacion</span> mbi instalimin tuaj.</p></body></html> @@ -3420,30 +3499,30 @@ Përfundim: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Për më tepër të dhëna rreth përshtypjeve të përdoruesit, klikoni këtu</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. - Instalimi i gjurmimit e ndihmon %1 të shohë se sa përdorues ka, në çfarë hardware-i e instalojnë %1 dhe (përmes dy mundësive të fundit më poshtë), të marrë të dhëna të vazhdueshme rre aplikacioneve të parapëlqyera. Që të shihni se ç’dërgohet, ju lutemi, klikoni ikonën e ndihmës në krah të çdo fushe. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + Gjurmimi e ndihmon %1 të shoë se sa shpesh është instaluar, në çfarë hardware-i është instaluar dhe cilët aplikacione janë përdorur. Që të shihni se ç’do të dërgohet, ju lutemi, klikoni mbi ikonën e nidhmës në krah të secilës fushë. - - 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. - Duke përzgjedhur këtë, do të dërgoni të dhëna mbi instalimin dhe hardware-in tuaj. Këto të dhëna do të <b>dërgohen vetëm një herë</b>, pasi të përfundojë instalimi. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Duke përzgjedhur këtë, do të dërgoni informacion rreth instalimit dhe hardware-it tuaj. Ky informacion do të dërgohet vetëm <b>një herë</b>, pasi të përfundojë instalimi. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Duke përzgjedhur këtë, do të dërgoni <b>periodikisht</b> te %1 të dhëna mbi instalimin, hardware-in dhe aplikacionet tuaja. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Duke përzgjedhur këtë, do të dërgoni periodikisht te %1 informacion rreth instalimit, hardware-it dhe aplikacioneve të <b>makinës</b> tuaj. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Duke përzgjedhur këtë, do të dërgoni <b>rregullisht</b> te %1 të dhëna mbi instalimin, hardware-in, aplikacionet dhe rregullsitë tuaja në përdorim. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Duke përzgjedhur këtë, do të dërgoni rregullisht te %1 informacion rreth instalimit tuaj si <b>përdorues</b>, hardware-it, aplikacioneve dhe rregullsive në përdorimin e aplikacioneve. TrackingViewStep - + Feedback Përshtypje @@ -3629,42 +3708,42 @@ Përfundim: Shënime &versioni - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Mirë se vini te programi i rregullimit Calamares për %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Mirë se vini te rregullimi i %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Mirë se vini te instaluesi Calamares për %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Mirë se vini te instaluesi i %1.</h1> - + %1 support Asistencë %1 - + About %1 setup Mbi rregullimin e %1 - + About %1 installer Rreth instaluesit %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>për %3</strong><br/><br/>Të drejta kopjimi 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Të drejta kopjimi 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Falënderime për <a href="https://calamares.io/team/">ekipin e Calamares</a> dhe <a href="https://www.transifex.com/calamares/calamares/">ekipin e përkthyesve të Calamares</a>.<br/><br/>Zhvillimi i <a href="https://calamares.io/">Calamares</a> sponsorizohet nga <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3672,7 +3751,7 @@ Përfundim: WelcomeQmlViewStep - + Welcome Mirë se vini @@ -3680,7 +3759,7 @@ Përfundim: WelcomeViewStep - + Welcome Mirë se vini @@ -3720,6 +3799,28 @@ Përfundim: Mbrapsht + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Gjuhë</h1> </br> + Vlera për vendoren e sistemit prek gjuhën dhe shkronjat e përdorura për disa elementë të ndërfaqes rresh urdhrash të përdoruesit. Vlera e tanishme është <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Vendore</h1> </br> + Vlera për vendoren e sistemit prek gjuhën dhe shkronjat e përdorura për disa elementë të ndërfaqes rresh urdhrash të përdoruesit. Vlera e tanishme është <strong>%1</strong>. + + + + Back + Mbrapsht + + keyboardq @@ -3765,6 +3866,24 @@ Përfundim: Testoni tastierën tuaj + + localeq + + + System language set to %1 + Si gjuhë sistemi është caktuar %1 + + + + Numbers and dates locale set to %1 + Si vendore për numra dhe data është caktuar %1 + + + + Change + Ndryshojeni + + notesqml @@ -3838,27 +3957,27 @@ Përfundim: <p>Ky program do t’ju bëjë disa pyetje dhe do të ujdisë %1 në kompjuterin tuaj.</p> - + About Mbi - + Support Asistencë - + Known issues Probleme të njohura - + Release notes Shënime hedhjeje në qarkullim - + Donate Dhuroni diff --git a/lang/calamares_sr.ts b/lang/calamares_sr.ts index 2e4ef0fbc..269a69010 100644 --- a/lang/calamares_sr.ts +++ b/lang/calamares_sr.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Инсталирај @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Завршено @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 Извршавам команду %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Извршавам %1 операцију. - + Bad working directory path Лоша путања радног директоријума - + Working directory %1 for python job %2 is not readable. Радни директоријум %1 за питонов посао %2 није читљив. - + Bad main script file Лош фајл главне скрипте - + Main script file %1 for python job %2 is not readable. Фајл главне скрипте %1 за питонов посао %2 није читљив. - + Boost.Python error in job "%1". Boost.Python грешка у послу „%1“. @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -237,7 +242,7 @@ - + (%n second(s)) @@ -246,7 +251,7 @@ - + System-requirements checking is complete. @@ -275,13 +280,13 @@ - + &Yes - + &No @@ -316,108 +321,108 @@ - + Continue with setup? Наставити са подешавањем? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now &Инсталирај сада - + Go &back Иди &назад - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &Следеће - + &Back &Назад - + &Done - + &Cancel &Откажи - + Cancel setup? - + Cancel installation? Отказати инсталацију? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Да ли стварно желите да прекинете текући процес инсталације? @@ -427,22 +432,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Непознат тип изузетка - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -459,32 +464,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back &Назад - + &Next &Следеће - + &Cancel &Откажи - + %1 Setup Program - + %1 Installer %1 инсталер @@ -681,18 +686,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -745,48 +750,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1224,37 +1229,37 @@ The installer will quit and all changes will be lost. 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. @@ -1272,32 +1277,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1305,27 +1310,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Заврши - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1356,72 +1361,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1769,6 +1774,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2660,65 +2688,65 @@ The installer will quit and all changes will be lost. 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. @@ -2726,32 +2754,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown непознато - + extended проширена - + unformatted неформатирана - + swap @@ -2805,6 +2828,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2840,73 +2872,88 @@ Output: Форма - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3029,12 +3076,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: За најбоље резултате обезбедите да овај рачунар: - + System requirements Системски захтеви @@ -3042,27 +3089,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3345,51 +3392,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3408,7 +3484,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3417,30 +3493,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3626,42 +3702,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support %1 подршка - + About %1 setup - + About %1 installer О %1 инсталатеру - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3669,7 +3745,7 @@ Output: WelcomeQmlViewStep - + Welcome Добродошли @@ -3677,7 +3753,7 @@ Output: WelcomeViewStep - + Welcome Добродошли @@ -3706,6 +3782,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3751,6 +3847,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3802,27 +3916,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_sr@latin.ts b/lang/calamares_sr@latin.ts index 1cb61f93e..e1077b0f0 100644 --- a/lang/calamares_sr@latin.ts +++ b/lang/calamares_sr@latin.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install Instaliraj @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Gotovo @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path Neispravna putanja do radne datoteke - + Working directory %1 for python job %2 is not readable. Nemoguće pročitati radnu datoteku %1 za funkciju %2 u Python-u. - + Bad main script file Neispravan glavna datoteka za skriptu - + Main script file %1 for python job %2 is not readable. Glavna datoteka za skriptu %1 za Python funkciju %2 se ne može pročitati. - + Boost.Python error in job "%1". Boost.Python greška u funkciji %1 @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -237,7 +242,7 @@ - + (%n second(s)) @@ -246,7 +251,7 @@ - + System-requirements checking is complete. @@ -275,13 +280,13 @@ - + &Yes - + &No @@ -316,108 +321,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &Dalje - + &Back &Nazad - + &Done - + &Cancel &Prekini - + Cancel setup? - + Cancel installation? Prekini instalaciju? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Da li stvarno želite prekinuti trenutni proces instalacije? @@ -427,22 +432,22 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CalamaresPython::Helper - + Unknown exception type Nepoznat tip izuzetka - + unparseable Python error unparseable Python error - + unparseable Python traceback unparseable Python traceback - + Unfetchable Python error. Unfetchable Python error. @@ -459,32 +464,32 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CalamaresWindow - + Show debug information - + &Back &Nazad - + &Next &Dalje - + &Cancel &Prekini - + %1 Setup Program - + %1 Installer %1 Instaler @@ -681,18 +686,18 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -745,48 +750,48 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1224,37 +1229,37 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. 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. @@ -1272,32 +1277,32 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1305,27 +1310,27 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. FinishedViewStep - + Finish Završi - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1356,72 +1361,72 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB is required. - + is plugged in to a power source je priključen na izvor struje - + The system is not plugged in to a power source. - + is connected to the Internet ima vezu sa internetom - + The system is not connected to the Internet. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1769,6 +1774,16 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1907,6 +1922,19 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2494,107 +2522,107 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. Particije - + 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: Poslije: - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2660,65 +2688,65 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. 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. Pogrešni parametri kod poziva funkcije u procesu. - + 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. @@ -2726,32 +2754,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2805,6 +2828,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2840,73 +2872,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3029,12 +3076,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Za najbolje rezultate, uvjetite se da li ovaj računar: - + System requirements @@ -3042,27 +3089,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3345,51 +3392,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3408,7 +3484,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3417,30 +3493,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3626,42 +3702,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3669,7 +3745,7 @@ Output: WelcomeQmlViewStep - + Welcome Dobrodošli @@ -3677,7 +3753,7 @@ Output: WelcomeViewStep - + Welcome Dobrodošli @@ -3706,6 +3782,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3751,6 +3847,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3802,27 +3916,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index 82238ca09..408f67634 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Inställningar - + Install Installera @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Uppgiften misslyckades (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Klar @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Exempel jobb (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Kör kommandot '%1'. på målsystem. - + Run command '%1'. Kör kommandot '%1'. - + Running command %1 %2 Kör kommando %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Kör %1-operation - + Bad working directory path Arbetskatalogens sökväg är ogiltig - + Working directory %1 for python job %2 is not readable. Arbetskatalog %1 för pythonuppgift %2 är inte läsbar. - + Bad main script file Ogiltig huvudskriptfil - + Main script file %1 for python job %2 is not readable. Huvudskriptfil %1 för pythonuppgift %2 är inte läsbar. - + Boost.Python error in job "%1". Boost.Python-fel i uppgift "%'1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Kontroll av krav för modul <i>%1</i> är färdig. + - + Waiting for %n module(s). Väntar på %n modul(er). @@ -236,7 +241,7 @@ - + (%n second(s)) (%n sekund(er)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Kontroll av systemkrav är färdig @@ -273,13 +278,13 @@ - + &Yes &Ja - + &No &Nej @@ -314,108 +319,108 @@ <br/>Följande moduler kunde inte hämtas: - + Continue with setup? Fortsätt med installation? - + Continue with installation? Vill du fortsätta med installationen? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1-installeraren är på väg att göra ändringar på disk för att installera %2.<br/><strong>Du kommer inte att kunna ångra dessa ändringar.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1-installeraren är på väg att göra ändringar för att installera %2.<br/><strong>Du kommer inte att kunna ångra dessa ändringar.</strong> - + &Set up now &Installera nu - + &Install now &Installera nu - + Go &back Gå &bakåt - + &Set up &Installera - + &Install &Installera - + Setup is complete. Close the setup program. Installationen är klar. Du kan avsluta installationsprogrammet. - + The installation is complete. Close the installer. Installationen är klar. Du kan avsluta installationshanteraren. - + Cancel setup without changing the system. Avbryt inställningarna utan att förändra systemet. - + Cancel installation without changing the system. Avbryt installationen utan att förändra systemet. - + &Next &Nästa - + &Back &Bakåt - + &Done &Klar - + &Cancel Avbryt - + Cancel setup? Avbryt inställningarna? - + Cancel installation? Avbryt installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Vill du verkligen avbryta den nuvarande uppstartsprocessen? Uppstartsprogrammet kommer avsluta och alla ändringar kommer förloras. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Är du säker på att du vill avsluta installationen i förtid? @@ -425,22 +430,22 @@ Alla ändringar kommer att gå förlorade. CalamaresPython::Helper - + Unknown exception type Okänd undantagstyp - + unparseable Python error Otolkbart Pythonfel - + unparseable Python traceback Otolkbar Python-traceback - + Unfetchable Python error. Ohämtbart Pythonfel @@ -458,32 +463,32 @@ Alla ändringar kommer att gå förlorade. CalamaresWindow - + Show debug information Visa avlusningsinformation - + &Back &Bakåt - + &Next &Nästa - + &Cancel &Avsluta - + %1 Setup Program %1 Installationsprogram - + %1 Installer %1-installationsprogram @@ -680,18 +685,18 @@ Alla ändringar kommer att gå förlorade. CommandList - - + + Could not run command. Kunde inte köra kommandot. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Kommandot körs på värden och behöver känna till sökvägen till root, men rootMountPoint är inte definierat. - + The command needs to know the user's name, but no username is defined. Kommandot behöver veta användarnamnet, men inget användarnamn är definerat. @@ -744,49 +749,49 @@ Alla ändringar kommer att gå förlorade. Nätverksinstallation. (Inaktiverad: Kan inte hämta paketlistor, kontrollera nätverksanslutningen) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Datorn uppfyller inte minimikraven för inställning av %1.<br/>Inga inställningar kan inte göras. <a href="#details">Detaljer...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Denna dator uppfyller inte minimikraven för att installera %1.<br/>Installationen kan inte fortsätta. <a href="#details">Detaljer...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Några av kraven för inställning av %1 uppfylls inte av datorn.<br/>Inställningarna kan ändå göras men vissa funktioner kommer kanske inte att kunna användas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Denna dator uppfyller inte alla rekommenderade krav för att installera %1.<br/>Installationen kan fortsätta, men alla alternativ och funktioner kanske inte kan användas. - + This program will ask you some questions and set up %2 on your computer. Detta program kommer att ställa dig några frågor och installera %2 på din dator. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Välkommen till Calamares installationsprogrammet för %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>Välkommen till %1 installation.</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Välkommen till installationsprogrammet Calamares för %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>Välkommen till %1-installeraren.</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1223,37 +1228,37 @@ Alla ändringar kommer att gå förlorade. FillGlobalStorageJob - + Set partition information Ange partitionsinformation - + Install %1 on <strong>new</strong> %2 system partition. Installera %1 på <strong>ny</strong> %2 system partition. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Skapa <strong> ny </strong> %2 partition med monteringspunkt <strong> %1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Installera %2 på %3 system partition <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Skapa %3 partition <strong>%1</strong> med monteringspunkt <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Installera uppstartshanterare på <strong>%1</strong>. - + Setting up mount points. Ställer in monteringspunkter. @@ -1271,32 +1276,32 @@ Alla ändringar kommer att gå förlorade. Sta&rta om nu - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Allt klart.</h1><br/>%1 har installerats på din dator.<br/>Du kan nu börja använda ditt nya system. - + <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 setup program.</p></body></html> <html><head/><body><p>När denna ruta är ikryssad kommer systemet starta om omedelbart när du klickar på <span style="font-style:italic;">Klar</span> eller stänger installationsprogrammet.</p></body></html> - + <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>Klappat och klart.</h1><br/>%1 har installerats på din dator.<br/>Du kan nu starta om till ditt nya system, eller fortsätta att använda %2 i liveläge. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>När denna ruta är ikryssad kommer systemet starta om omedelbart när du klickar på <span style="font-style:italic;">Klar</span> eller stänger installationsprogrammet.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Installationen misslyckades</h1> <br/>%1 har inte blivit installerad på din dator. <br/>Felmeddelandet var: %2 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installationen misslyckades</h1> <br/>%1 har inte blivit installerad på din dator. <br/>Felmeddelandet var: %2 @@ -1304,27 +1309,27 @@ Alla ändringar kommer att gå förlorade. FinishedViewStep - + Finish Slutför - + Setup Complete Inställningarna är klara - + Installation Complete Installationen är klar - + The setup of %1 is complete. Inställningarna för %1 är klara. - + The installation of %1 is complete. Installationen av %1 är klar. @@ -1355,72 +1360,72 @@ Alla ändringar kommer att gå förlorade. GeneralRequirements - + has at least %1 GiB available drive space har minst %1 GiB tillgängligt på hårddisken - + There is not enough drive space. At least %1 GiB is required. Det finns inte tillräckligt med hårddiskutrymme. Minst %1 GiB krävs. - + has at least %1 GiB working memory har minst %1 GiB arbetsminne - + The system does not have enough working memory. At least %1 GiB is required. Systemet har inte tillräckligt med fungerande minne. Minst %1 GiB krävs. - + is plugged in to a power source är ansluten till en strömkälla - + The system is not plugged in to a power source. Systemet är inte anslutet till någon strömkälla. - + is connected to the Internet är ansluten till internet - + The system is not connected to the Internet. Systemet är inte anslutet till internet. - + is running the installer as an administrator (root) körs installationsprogammet med administratörsrättigheter (root) - + The setup program is not running with administrator rights. Installationsprogammet körs inte med administratörsrättigheter. - + The installer is not running with administrator rights. Installationsprogammet körs inte med administratörsrättigheter. - + has a screen large enough to show the whole installer har en tillräckligt stor skärm för att visa hela installationsprogrammet - + The screen is too small to display the setup program. Skärmen är för liten för att visa installationsprogrammet. - + The screen is too small to display the installer. Skärmen är för liten för att visa installationshanteraren. @@ -1768,6 +1773,16 @@ Alla ändringar kommer att gå förlorade. Ingen root monteringspunkt är satt för MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1906,6 +1921,19 @@ Alla ändringar kommer att gå förlorade. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2493,107 +2521,107 @@ Alla ändringar kommer att gå förlorade. Partitioner - + Install %1 <strong>alongside</strong> another operating system. Installera %1 <strong>bredvid</strong> ett annat operativsystem. - + <strong>Erase</strong> disk and install %1. <strong>Rensa</strong> disken och installera %1. - + <strong>Replace</strong> a partition with %1. <strong>Ersätt</strong> en partition med %1. - + <strong>Manual</strong> partitioning. <strong>Manuell</strong> partitionering. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installera %1 <strong>bredvid</strong> ett annat operativsystem på disken <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Rensa</strong> disken <strong>%2</strong> (%3) och installera %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Ersätt</strong> en partition på disken <strong>%2</strong> (%3) med %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuell</strong> partitionering på disken <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Nuvarande: - + After: Efter: - + No EFI system partition configured Ingen EFI system partition konfigurerad - + 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>%3</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. En EFI-systempartition krävs för att starta %1. <br/><br/> För att konfigurera en EFI-systempartition, gå tillbaka och välj eller skapa ett FAT32-filsystem med <strong>%3</strong>-flaggan satt och monteringspunkt <strong>%2</strong>. <br/><br/>Du kan fortsätta utan att ställa in en EFI-systempartition, men ditt system kanske misslyckas med att starta. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. En EFI-systempartition krävs för att starta %1. <br/><br/>En partition är konfigurerad med monteringspunkt <strong>%2</strong>, men dess <strong>%3</strong>-flagga är inte satt.<br/>För att sätta flaggan, gå tillbaka och redigera partitionen.<br/><br/>Du kan fortsätta utan att sätta flaggan, men ditt system kanske misslyckas med att starta - + EFI system partition flag not set EFI system partitionsflagga inte satt - + Option to use GPT on BIOS Alternativ för att använda GPT på BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. En GPT-partitionstabell är det bästa alternativet för alla system. Detta installationsprogram stödjer det för system med BIOS också.<br/><br/>För att konfigurera en GPT-partitionstabell på BIOS (om det inte redan är gjort), gå tillbaka och sätt partitionstabell till GPT, skapa sedan en oformaterad partition på 8MB med <strong>bios_grub</strong>-flaggan satt.<br/><br/>En oformaterad partition på 8MB är nödvändig för att starta %1 på ett BIOS-system med GPT. - + Boot partition not encrypted Boot partition inte krypterad - + 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. En separat uppstartspartition skapades tillsammans med den krypterade rootpartitionen, men uppstartspartitionen är inte krypterad.<br/><br/>Det finns säkerhetsproblem med den här inställningen, eftersom viktiga systemfiler sparas på en okrypterad partition.<br/>Du kan fortsätta om du vill, men upplåsning av filsystemet kommer hända senare under uppstart av systemet.<br/>För att kryptera uppstartspartitionen, gå tillbaka och återskapa den, och välj <strong>Kryptera</strong> i fönstret när du skapar partitionen. - + has at least one disk device available. har åtminstone en diskenhet tillgänglig. - + There are no partitions to install on. Det finns inga partitioner att installera på. @@ -2659,14 +2687,14 @@ Alla ändringar kommer att gå förlorade. ProcessResult - + There was no output from the command. Det kom ingen utdata från kommandot. - + Output: @@ -2675,52 +2703,52 @@ Utdata: - + External command crashed. Externt kommando kraschade. - + Command <i>%1</i> crashed. Kommando <i>%1</i> kraschade. - + External command failed to start. Externt kommando misslyckades med att starta - + Command <i>%1</i> failed to start. Kommando <i>%1</i> misslyckades med att starta.  - + Internal error when starting command. Internt fel under kommandostart. - + Bad parameters for process job call. Ogiltiga parametrar för processens uppgiftsanrop. - + External command failed to finish. Fel inträffade när externt kommando kördes. - + Command <i>%1</i> failed to finish in %2 seconds. Kommando <i>%1</i> misslyckades att slutföras på %2 sekunder. - + External command finished with errors. Externt kommando kördes färdigt med fel. - + Command <i>%1</i> finished with exit code %2. Kommando <i>%1</i>avslutades under körning med avslutningskod %2. @@ -2728,32 +2756,27 @@ Utdata: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Kontroll av krav för modul <i>%1</i> är färdig. - - - + unknown okänd - + extended utökad - + unformatted oformaterad - + swap swap @@ -2807,6 +2830,15 @@ Utdata: Opartitionerat utrymme eller okänd partitionstabell + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2842,73 +2874,88 @@ Utdata: Formulär - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Välj var du vill installera %1.<br/><font color="red">Varning: </font>detta kommer att radera alla filer på den valda partitionen. - + The selected item does not appear to be a valid partition. Det valda alternativet verkar inte vara en giltig partition. - + %1 cannot be installed on empty space. Please select an existing partition. %1 kan inte installeras i tomt utrymme. Välj en existerande partition. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 kan inte installeras på en utökad partition. Välj en existerande primär eller logisk partition. - + %1 cannot be installed on this partition. %1 kan inte installeras på den här partitionen. - + Data partition (%1) Datapartition (%1) - + Unknown system partition (%1) Okänd systempartition (%1) - + %1 system partition (%2) Systempartition för %1 (%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>%4</strong><br/><br/>Partitionen %1 är för liten för %2. Välj en partition med minst storleken %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>%2</strong><br/><br/>Kan inte hitta en EFI-systempartition någonstans på detta system. Var god gå tillbaka och använd manuell partitionering för att installera %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. <strong>%3</strong><br/><br/>%1 kommer att installeras på %2.<br/><font color="red">Varning: </font>all data på partition %2 kommer att gå förlorad. - + The EFI system partition at %1 will be used for starting %2. EFI-systempartitionen %1 kommer att användas för att starta %2. - + EFI system partition: EFI-systempartition: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3031,12 +3078,12 @@ Utdata: ResultsListDialog - + For best results, please ensure that this computer: För bästa resultat, vänligen se till att datorn: - + System requirements Systemkrav @@ -3044,27 +3091,27 @@ Utdata: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Datorn uppfyller inte minimikraven för inställning av %1.<br/>Inga inställningar kan inte göras. <a href="#details">Detaljer...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Denna dator uppfyller inte minimikraven för att installera %1.<br/>Installationen kan inte fortsätta. <a href="#details">Detaljer...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Några av kraven för inställning av %1 uppfylls inte av datorn.<br/>Inställningarna kan ändå göras men vissa funktioner kommer kanske inte att kunna användas. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Denna dator uppfyller inte alla rekommenderade krav för att installera %1.<br/>Installationen kan fortsätta, men alla alternativ och funktioner kanske inte kan användas. - + This program will ask you some questions and set up %2 on your computer. Detta program kommer att ställa dig några frågor och installera %2 på din dator. @@ -3347,51 +3394,80 @@ Utdata: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. HTTP-begäran tog för lång tid. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob - + Machine feedback Maskin feedback - + Configuring machine feedback. Konfigurerar maskin feedback - - + + Error in machine feedback configuration. - + Could not configure machine feedback correctly, script error %1. Kunde inte konfigurera maskin feedback korrekt, script fel %1. - + Could not configure machine feedback correctly, Calamares error %1. Kunde inte konfigurera maskin feedback korrekt, Calamares fel %1. @@ -3410,8 +3486,8 @@ Utdata: - <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>Genom att välja detta, kommer du inte skicka <span style=" font-weight:600;">någon information alls</span> om din installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3419,30 +3495,30 @@ Utdata: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - Genom att välja detta, kommer du skicka information om din installation och hårdvara. Denna information kommer <b>enbart skickas en gång</b> efter att installationen slutförts. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback Feedback @@ -3628,42 +3704,42 @@ Utdata: Versionsinformation, &R - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Välkommen till Calamares installationsprogrammet för %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Välkommen till %1 installation.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Välkommen till installationsprogrammet Calamares för %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Välkommen till %1-installeraren.</h1> - + %1 support %1-support - + About %1 setup Om inställningarna för %1 - + About %1 installer Om %1-installationsprogrammet - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Tack till <a href="https://calamares.io/team/">Calamares-teamet</a> och <a href="https://www.transifex.com/calamares/calamares/">Calamares översättar-team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> utveckling sponsras av <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3671,7 +3747,7 @@ Utdata: WelcomeQmlViewStep - + Welcome Välkommen @@ -3679,7 +3755,7 @@ Utdata: WelcomeViewStep - + Welcome Välkommen @@ -3719,6 +3795,26 @@ Utdata: Bakåt + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + Bakåt + + keyboardq @@ -3764,6 +3860,24 @@ Utdata: Testa ditt tangentbord + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3837,27 +3951,27 @@ Utdata: <p>Detta program kommer ställa några frågor och installera %1 på din dator.</p> - + About Om - + Support Support - + Known issues Kända problem - + Release notes Versionsinformation - + Donate Donera diff --git a/lang/calamares_th.ts b/lang/calamares_th.ts index 11e6aa6e8..5cd67740a 100644 --- a/lang/calamares_th.ts +++ b/lang/calamares_th.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install ติดตั้ง @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done เสร็จสิ้น @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 กำลังเรียกใช้คำสั่ง %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. การปฏิบัติการ %1 กำลังทำงาน - + Bad working directory path เส้นทางไดเรคทอรีที่ใช้ทำงานไม่ถูกต้อง - + Working directory %1 for python job %2 is not readable. ไม่สามารถอ่านไดเรคทอรีที่ใช้ทำงาน %1 สำหรับ python %2 ได้ - + Bad main script file ไฟล์สคริปต์หลักไม่ถูกต้อง - + Main script file %1 for python job %2 is not readable. ไม่สามารถอ่านไฟล์สคริปต์หลัก %1 สำหรับ python %2 ได้ - + Boost.Python error in job "%1". Boost.Python ผิดพลาดที่งาน "%1". @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). - + (%n second(s)) - + System-requirements checking is complete. @@ -271,13 +276,13 @@ - + &Yes - + &No @@ -312,108 +317,108 @@ - + Continue with setup? ดำเนินการติดตั้งต่อหรือไม่? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> ตัวติดตั้ง %1 กำลังพยายามที่จะทำการเปลี่ยนแปลงในดิสก์ของคุณเพื่อติดตั้ง %2<br/><strong>คุณจะไม่สามารถยกเลิกการเปลี่ยนแปลงเหล่านี้ได้</strong> - + &Set up now - + &Install now &ติดตั้งตอนนี้ - + Go &back กลั&บไป - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next &N ถัดไป - + &Back &B ย้อนกลับ - + &Done - + &Cancel &C ยกเลิก - + Cancel setup? - + Cancel installation? ยกเลิกการติดตั้ง? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. คุณต้องการยกเลิกกระบวนการติดตั้งที่กำลังดำเนินการอยู่หรือไม่? @@ -423,22 +428,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type ข้อผิดพลาดไม่ทราบประเภท - + unparseable Python error ข้อผิดพลาด unparseable Python - + unparseable Python traceback ประวัติย้อนหลัง unparseable Python - + Unfetchable Python error. ข้อผิดพลาด Unfetchable Python @@ -455,32 +460,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information แสดงข้อมูลการดีบั๊ก - + &Back &B ย้อนกลับ - + &Next &N ถัดไป - + &Cancel &C ยกเลิก - + %1 Setup Program - + %1 Installer ตัวติดตั้ง %1 @@ -677,18 +682,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -741,49 +746,49 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> ขณะที่กำลังติดตั้ง ตัวติดตั้งฟ้องว่า คอมพิวเตอร์นี้มีความต้องการไม่เพียงพอที่จะติดตั้ง %1.<br/>ไม่สามารถทำการติดตั้งต่อไปได้ <a href="#details">รายละเอียด...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. คอมพิวเตอร์มีความต้องการไม่เพียงพอที่จะติดตั้ง %1<br/>สามารถทำการติดตั้งต่อไปได้ แต่ฟีเจอร์บางอย่างจะถูกปิดไว้ - + This program will ask you some questions and set up %2 on your computer. โปรแกรมนี้จะถามคุณบางอย่าง เพื่อติดตั้ง %2 ไว้ในคอมพิวเตอร์ของคุณ - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>ยินดีต้อนรับสู่ตัวติดตั้ง Calamares สำหรับ %1</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>ยินดีต้อนรับสู่ตัวติดตั้ง %1</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1220,37 +1225,37 @@ The installer will quit and all changes will be lost. 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. @@ -1268,32 +1273,32 @@ The installer will quit and all changes will be lost. &R เริ่มต้นใหม่ทันที - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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>เสร็จสิ้น</h1><br/>%1 ติดตั้งบนคอมพิวเตอร์ของคุณเรียบร้อย<br/>คุณสามารถเริ่มทำงานเพื่อเข้าระบบใหม่ของคุณ หรือดำเนินการใช้ %2 Live environment ต่อไป - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>การติดตั้งไม่สำเร็จ</h1><br/>%1 ไม่ได้ถูกติดตั้งลงบนคอมพิวเตอร์ของคุณ<br/>ข้อความข้อผิดพลาดคือ: %2 @@ -1301,27 +1306,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish สิ้นสุด - + Setup Complete - + Installation Complete การติดตั้งเสร็จสิ้น - + The setup of %1 is complete. - + The installation of %1 is complete. การติดตั้ง %1 เสร็จสิ้น @@ -1352,72 +1357,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. ระบบไม่ได้เชื่อมต่อกับอินเทอร์เน็ต - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1765,6 +1770,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1903,6 +1918,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2490,107 +2518,107 @@ The installer will quit and all changes will be lost. พาร์ทิชัน - + Install %1 <strong>alongside</strong> another operating system. ติดตั้ง %1 <strong>ควบคู่</strong>กับระบบปฏิบัติการเดิม - + <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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2656,65 +2684,65 @@ The installer will quit and all changes will be lost. 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. @@ -2722,32 +2750,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2801,6 +2824,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2836,73 +2868,88 @@ Output: ฟอร์ม - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. เลือกที่ที่จะติดตั้ง %1<br/><font color="red">คำเตือน: </font>ตัวเลือกนี้จะลบไฟล์ทั้งหมดบนพาร์ทิชันที่เลือก - + The selected item does not appear to be a valid partition. ไอเทมที่เลือกไม่ใช่พาร์ทิชันที่ถูกต้อง - + %1 cannot be installed on empty space. Please select an existing partition. ไม่สามารถติดตั้ง %1 บนพื้นที่ว่าง กรุณาเลือกพาร์ทิชันที่มี - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. ไม่สามารถติดตั้ง %1 บนพาร์ทิชัน extended กรุณาเลือกพาร์ทิชันหลักหรือพาร์ทิชันโลจิคัลที่มีอยู่ - + %1 cannot be installed on this partition. ไม่สามารถติดตั้ง %1 บนพาร์ทิชันนี้ - + Data partition (%1) พาร์ทิชันข้อมูล (%1) - + Unknown system partition (%1) พาร์ทิชันระบบที่ไม่รู้จัก (%1) - + %1 system partition (%2) %1 พาร์ทิชันระบบ (%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 ที่ %1 จะถูกใช้เพื่อเริ่มต้น %2 - + EFI system partition: พาร์ทิชันสำหรับระบบ EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3025,12 +3072,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: สำหรับผลลัพธ์ที่ดีขึ้น โปรดตรวจสอบให้แน่ใจว่าคอมพิวเตอร์เครื่องนี้: - + System requirements ความต้องการของระบบ @@ -3038,27 +3085,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> ขณะที่กำลังติดตั้ง ตัวติดตั้งฟ้องว่า คอมพิวเตอร์นี้มีความต้องการไม่เพียงพอที่จะติดตั้ง %1.<br/>ไม่สามารถทำการติดตั้งต่อไปได้ <a href="#details">รายละเอียด...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. คอมพิวเตอร์มีความต้องการไม่เพียงพอที่จะติดตั้ง %1<br/>สามารถทำการติดตั้งต่อไปได้ แต่ฟีเจอร์บางอย่างจะถูกปิดไว้ - + This program will ask you some questions and set up %2 on your computer. โปรแกรมนี้จะถามคุณบางอย่าง เพื่อติดตั้ง %2 ไว้ในคอมพิวเตอร์ของคุณ @@ -3341,51 +3388,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob - + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3404,7 +3480,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3413,30 +3489,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3622,42 +3698,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>ยินดีต้อนรับสู่ตัวติดตั้ง Calamares สำหรับ %1</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>ยินดีต้อนรับสู่ตัวติดตั้ง %1</h1> - + %1 support - + About %1 setup - + About %1 installer เกี่ยวกับตัวติดตั้ง %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3665,7 +3741,7 @@ Output: WelcomeQmlViewStep - + Welcome ยินดีต้อนรับ @@ -3673,7 +3749,7 @@ Output: WelcomeViewStep - + Welcome ยินดีต้อนรับ @@ -3702,6 +3778,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3747,6 +3843,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3798,27 +3912,27 @@ Output: - + About เกี่ยวกับ - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_tr_TR.ts b/lang/calamares_tr_TR.ts index ddf21253d..20203fd02 100644 --- a/lang/calamares_tr_TR.ts +++ b/lang/calamares_tr_TR.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Kur - + Install Sistem Kuruluyor @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) İş hatası (%1) - + Programmed job failure was explicitly requested. Programlanmış iş arızası açıkça istendi. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Sistem kurulumu tamamlandı, kurulum aracından çıkabilirsiniz. @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Örnek iş (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Hedef sistemde '%1' komutunu çalıştırın. - + Run command '%1'. '%1' komutunu çalıştırın. - + Running command %1 %2 %1 Komutu çalışıyor %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. %1 işlemleri yapılıyor. - + Bad working directory path Dizin yolu kötü çalışıyor - + Working directory %1 for python job %2 is not readable. %2 python işleri için %1 dizinleme çalışırken okunamadı. - + Bad main script file Sorunlu betik dosyası - + Main script file %1 for python job %2 is not readable. %2 python işleri için %1 sorunlu betik okunamadı. - + Boost.Python error in job "%1". Boost.Python iş hatası "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + <i>%1</i> modülü için gerekenler tamamlandı. + - + Waiting for %n module(s). %n modülü bekleniyor. @@ -236,7 +241,7 @@ - + (%n second(s)) (%n saniye(ler)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. Sistem gereksinimleri kontrolü tamamlandı. @@ -273,13 +278,13 @@ - + &Yes &Evet - + &No &Hayır @@ -314,109 +319,109 @@ <br/>Aşağıdaki modüller yüklenemedi: - + Continue with setup? Kuruluma devam et? - + Continue with installation? Kurulum devam etsin mi? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 sistem kurulum uygulaması,%2 ayarlamak için diskinizde değişiklik yapmak üzere. <br/><strong>Bu değişiklikleri geri alamayacaksınız.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 sistem yükleyici %2 yüklemek için diskinizde değişiklik yapacak.<br/><strong>Bu değişiklikleri geri almak mümkün olmayacak.</strong> - + &Set up now &Şimdi kur - + &Install now &Şimdi yükle - + Go &back Geri &git - + &Set up &Kur - + &Install &Yükle - + Setup is complete. Close the setup program. Kurulum tamamlandı. Kurulum programını kapatın. - + The installation is complete. Close the installer. Yükleme işi tamamlandı. Sistem yükleyiciyi kapatın. - + Cancel setup without changing the system. Sistemi değiştirmeden kurulumu iptal edin. - + Cancel installation without changing the system. Sistemi değiştirmeden kurulumu iptal edin. - + &Next &Sonraki - + &Back &Geri - + &Done &Tamam - + &Cancel &Vazgeç - + Cancel setup? Kurulum iptal edilsin mi? - + Cancel installation? Yüklemeyi iptal et? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Mevcut kurulum işlemini gerçekten iptal etmek istiyor musunuz? Kurulum uygulaması sonlandırılacak ve tüm değişiklikler kaybedilecek. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Yükleme işlemini gerçekten iptal etmek istiyor musunuz? @@ -426,22 +431,22 @@ Yükleyiciden çıkınca tüm değişiklikler kaybedilecek. CalamaresPython::Helper - + Unknown exception type Bilinmeyen Özel Durum Tipi - + unparseable Python error Python hata ayıklaması - + unparseable Python traceback Python geri çekme ayıklaması - + Unfetchable Python error. Okunamayan Python hatası. @@ -459,32 +464,32 @@ Yükleyiciden çıkınca tüm değişiklikler kaybedilecek. CalamaresWindow - + Show debug information Hata ayıklama bilgisini göster - + &Back &Geri - + &Next &Sonraki - + &Cancel &Vazgeç - + %1 Setup Program %1 Kurulum Uygulaması - + %1 Installer %1 Yükleniyor @@ -682,18 +687,18 @@ Yükleyiciden çıkınca tüm değişiklikler kaybedilecek. CommandList - - + + Could not run command. Komut çalıştırılamadı. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Komut, ana bilgisayar ortamında çalışır ve kök yolunu bilmesi gerekir, ancak kökMontajNoktası tanımlanmamıştır. - + The command needs to know the user's name, but no username is defined. Komutun kullanıcının adını bilmesi gerekir, ancak kullanıcı adı tanımlanmamıştır. @@ -746,51 +751,51 @@ Yükleyiciden çıkınca tüm değişiklikler kaybedilecek. Ağ Üzerinden Kurulum. (Devre Dışı: Paket listeleri alınamıyor, ağ bağlantısını kontrol ediniz) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Bu bilgisayar %1 kurulumu için minimum gereksinimleri karşılamıyor.<br/>Kurulum devam etmeyecek. <a href="#details">Detaylar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Bu bilgisayara %1 yüklemek için asgari gereksinimler karşılanamadı. Kurulum devam edemiyor. <a href="#detaylar">Detaylar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Bu bilgisayar %1 kurulumu için önerilen gereksinimlerin bazılarına uymuyor. Kurulum devam edebilirsiniz ancak bazı özellikler devre dışı bırakılabilir. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Bu bilgisayara %1 yüklemek için önerilen gereksinimlerin bazıları karşılanamadı.<br/> Kurulum devam edebilir fakat bazı özellikler devre dışı kalabilir. - + This program will ask you some questions and set up %2 on your computer. Bu program size bazı sorular soracak ve bilgisayarınıza %2 kuracak. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1 için Calamares sistem kurulum uygulamasına hoş geldiniz.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>%1 için Calamares kurulum programına hoş geldiniz</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>%1 Kurulumuna Hoşgeldiniz.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>%1 kurulumuna hoşgeldiniz</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1 Calamares Sistem Yükleyici .</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>%1 Calamares Sistem Yükleyiciye Hoşgeldiniz</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>%1 Sistem Yükleyiciye Hoşgeldiniz.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>%1 Sistem Yükleyiciye Hoşgeldiniz</h1> @@ -1227,37 +1232,37 @@ Kurulum devam edebilir fakat bazı özellikler devre dışı kalabilir. FillGlobalStorageJob - + Set partition information Bölüm bilgilendirmesini ayarla - + Install %1 on <strong>new</strong> %2 system partition. %2 <strong>yeni</strong> sistem diskine %1 yükle. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. %2 <strong>yeni</strong> disk bölümünü <strong>%1</strong> ile ayarlayıp bağla. - + Install %2 on %3 system partition <strong>%1</strong>. %3 <strong>%1</strong> sistem diskine %2 yükle. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. %3 diskine<strong>%1</strong> ile <strong>%2</strong> bağlama noktası ayarla. - + Install boot loader on <strong>%1</strong>. <strong>%1</strong> üzerine sistem ön yükleyiciyi kur. - + Setting up mount points. Bağlama noktalarını ayarla. @@ -1275,32 +1280,32 @@ Kurulum devam edebilir fakat bazı özellikler devre dışı kalabilir.&Şimdi yeniden başlat - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Kurulum Tamamlandı.</h1><br/>%1 bilgisayarınıza kuruldu.<br/>Şimdi yeni kurduğunuz işletim sistemini kullanabilirsiniz. - + <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 setup program.</p></body></html> <html><head/><body><p>Bu kutucuk işaretlenerek <span style="font-style:italic;">Tamam</span> butonu tıklandığında ya da kurulum uygulaması kapatıldığında bilgisayarınız yeniden başlatılacaktır.</p></body></html> - + <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>Kurulum işlemleri tamamlandı.</h1><br/>%1 bilgisayarınıza yüklendi<br/>Yeni kurduğunuz sistemi kullanmak için yeniden başlatabilir veya %2 Çalışan sistem ile devam edebilirsiniz. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Bu kutucuk işaretlenerek <span style="font-style:italic;">Tamam</span> butonu tıklandığında ya da sistem yükleyici kapatıldığında bilgisayarınız yeniden başlatılacaktır.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Kurulum Başarısız</h1><br/>%1 bilgisayarınıza kurulamadı.<br/>Hata mesajı: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Yükleme Başarısız</h1><br/>%1 bilgisayarınıza yüklenemedi.<br/>Hata mesajı çıktısı: %2. @@ -1308,27 +1313,27 @@ Kurulum devam edebilir fakat bazı özellikler devre dışı kalabilir. FinishedViewStep - + Finish Kurulum Tamam - + Setup Complete Kurulum Tamanlandı - + Installation Complete Kurulum Tamamlandı - + The setup of %1 is complete. %1 kurulumu tamamlandı. - + The installation of %1 is complete. Kurulum %1 oranında tamamlandı. @@ -1359,73 +1364,73 @@ Kurulum devam edebilir fakat bazı özellikler devre dışı kalabilir. GeneralRequirements - + has at least %1 GiB available drive space En az %1 GB disk sürücü alanı var - + There is not enough drive space. At least %1 GiB is required. Yeterli disk sürücü alanı mevcut değil. En az %1 GB disk alanı gereklidir. - + has at least %1 GiB working memory En az %1 GB bellek var - + The system does not have enough working memory. At least %1 GiB is required. Yeterli ram bellek gereksinimi karşılanamıyor. En az %1 GB ram bellek gereklidir. - + is plugged in to a power source Bir güç kaynağına takılı olduğundan... - + The system is not plugged in to a power source. Sistem güç kaynağına bağlı değil. - + is connected to the Internet İnternete bağlı olduğundan... - + The system is not connected to the Internet. Sistem internete bağlı değil. - + is running the installer as an administrator (root) yükleyiciyi yönetici (kök) olarak çalıştırıyor - + The setup program is not running with administrator rights. Kurulum uygulaması yönetici haklarıyla çalışmıyor. - + The installer is not running with administrator rights. Sistem yükleyici yönetici haklarına sahip olmadan çalışmıyor. - + has a screen large enough to show the whole installer yükleyicinin tamamını gösterecek kadar büyük bir ekrana sahip - + The screen is too small to display the setup program. Kurulum uygulamasını görüntülemek için ekran çok küçük. - + The screen is too small to display the installer. Ekran, sistem yükleyiciyi görüntülemek için çok küçük. @@ -1773,6 +1778,18 @@ Sistem güç kaynağına bağlı değil. MachineId için kök bağlama noktası ayarlanmadı. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Yükleyicinin yerel ayarı önerebilmesi için lütfen haritada tercih ettiğiniz konumu seçin + ve saat dilimi ayarları. Aşağıdaki önerilen ayarlarda ince ayar yapabilirsiniz. Haritada sürükleyerek arama yapın + yakınlaştırmak / uzaklaştırmak için +/- düğmelerini kullanın veya yakınlaştırma için fare kaydırmayı kullanın. + + NetInstallViewStep @@ -1911,6 +1928,19 @@ Sistem güç kaynağına bağlı değil. OEM Toplu Tanımlayıcıyı <code>%1</code>'e Ayarlayın. + + Offline + + + Timezone: %1 + Zaman dilimi: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Bir saat dilimi seçebilmek için İnternet'e bağlı olduğunuzdan emin olun. Bağladıktan sonra yükleyiciyi yeniden başlatın. Dil ve Yerel ayarlara aşağıda ince ayar yapabilirsiniz. + + PWQ @@ -2498,108 +2528,108 @@ Sistem güç kaynağına bağlı değil. Disk Bölümleme - + Install %1 <strong>alongside</strong> another operating system. Diğer işletim sisteminin <strong>yanına</strong> %1 yükle. - + <strong>Erase</strong> disk and install %1. Diski <strong>sil</strong> ve %1 yükle. - + <strong>Replace</strong> a partition with %1. %1 ile disk bölümünün üzerine <strong>yaz</strong>. - + <strong>Manual</strong> partitioning. <strong>Manuel</strong> bölümleme. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). <strong>%2</strong> (%3) diskindeki diğer işletim sisteminin <strong>yanına</strong> %1 yükle. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>%2</strong> (%3) diski <strong>sil</strong> ve %1 yükle. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>%2</strong> (%3) disk bölümünün %1 ile <strong>üzerine yaz</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>%1</strong> (%2) disk bölümünü <strong>manuel</strong> bölümle. - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Geçerli: - + After: Sonra: - + No EFI system partition configured EFI sistem bölümü yapılandırılmamış - + 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>%3</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. %1 başlatmak için bir EFI sistem disk bölümü gereklidir.<br/><br/>Bir EFI sistem disk bölümü yapılandırmak için geri dönün ve <strong>%3</strong> bayrağı etkin ve <strong>%2</strong>bağlama noktası ile bir FAT32 dosya sistemi seçin veya oluşturun.<br/><br/>Bir EFI sistem disk bölümü kurmadan devam edebilirsiniz, ancak sisteminiz başlatılamayabilir. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. %1 başlatmak için bir EFI sistem disk bölümü gereklidir.<br/><br/>Bir disk bölümü bağlama noktası <strong>%2</strong> olarak yapılandırıldı fakat <strong>%3</strong>bayrağı ayarlanmadı.<br/>Bayrağı ayarlamak için, geri dönün ve disk bölümü düzenleyin.<br/><br/>Sen bayrağı ayarlamadan devam edebilirsin fakat işletim sistemi başlatılamayabilir. - + EFI system partition flag not set EFI sistem bölümü bayrağı ayarlanmadı - + Option to use GPT on BIOS BIOS'ta GPT kullanma seçeneği - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT disk bölümü tablosu tüm sistemler için en iyi seçenektir. Bu yükleyici klasik BIOS sistemler için de böyle bir kurulumu destekler. <br/><br/>Klasik BIOS sistemlerde disk bölümü tablosu GPT tipinde yapılandırmak için (daha önce yapılmadıysa) geri gidin ve disk bölümü tablosu GPT olarak ayarlayın ve ardından <strong>bios_grub</strong> bayrağı ile etiketlenmiş 8 MB biçimlendirilmemiş bir disk bölümü oluşturun.<br/> <br/>GPT disk yapısı ile kurulan klasik BIOS sistemi %1 başlatmak için biçimlendirilmemiş 8 MB bir disk bölümü gereklidir. - + Boot partition not encrypted Önyükleme yani boot diski şifrelenmedi - + 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. Ayrı bir önyükleme yani boot disk bölümü, şifrenmiş bir kök bölüm ile birlikte ayarlandı, fakat önyükleme bölümü şifrelenmedi.<br/><br/>Bu tip kurulumun güvenlik endişeleri vardır, çünkü önemli sistem dosyaları şifrelenmemiş bir bölümde saklanır.<br/>İsterseniz kuruluma devam edebilirsiniz, fakat dosya sistemi kilidi daha sonra sistem başlatılırken açılacak.<br/> Önyükleme bölümünü şifrelemek için geri dönün ve bölüm oluşturma penceresinde <strong>Şifreleme</strong>seçeneği ile yeniden oluşturun. - + has at least one disk device available. Mevcut en az bir disk aygıtı var. - + There are no partitions to install on. Kurulacak disk bölümü yok. @@ -2665,14 +2695,14 @@ Sistem güç kaynağına bağlı değil. ProcessResult - + There was no output from the command. Komut çıktısı yok. - + Output: @@ -2681,52 +2711,52 @@ Output: - + External command crashed. Harici komut çöktü. - + Command <i>%1</i> crashed. Komut <i>%1</i> çöktü. - + External command failed to start. Harici komut başlatılamadı. - + Command <i>%1</i> failed to start. Komut <i>%1</i> başlatılamadı. - + Internal error when starting command. Komut başlatılırken dahili hata. - + Bad parameters for process job call. Çalışma adımları başarısız oldu. - + External command failed to finish. Harici komut başarısız oldu. - + Command <i>%1</i> failed to finish in %2 seconds. Komut <i>%1</i> %2 saniyede başarısız oldu. - + External command finished with errors. Harici komut hatalarla bitti. - + Command <i>%1</i> finished with exit code %2. Komut <i>%1</i> %2 çıkış kodu ile tamamlandı @@ -2734,32 +2764,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - <i>%1</i> modülü için gerekenler tamamlandı. - - - + unknown bilinmeyen - + extended uzatılmış - + unformatted biçimlenmemiş - + swap Swap-Takas @@ -2813,6 +2838,16 @@ Output: Bölümlenmemiş alan veya bilinmeyen bölüm tablosu + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Bu bilgisayar %1 kurmak için önerilen gereksinimlerin bazılarını karşılamıyor.<br/> + Kurulum devam edebilir, ancak bazı özellikler devre dışı kalabilir.</p> + + RemoveUserJob @@ -2848,73 +2883,90 @@ Output: Biçim - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. %1 kurulacak diski seçin.<br/><font color="red">Uyarı: </font>Bu işlem seçili disk üzerindeki tüm dosyaları silecek. - + The selected item does not appear to be a valid partition. Seçili nesne, geçerli bir disk bölümü olarak görünmüyor. - + %1 cannot be installed on empty space. Please select an existing partition. %1 tanımlanmamış boş bir alana kurulamaz. Lütfen geçerli bir disk bölümü seçin. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 uzatılmış bir disk bölümüne kurulamaz. Geçerli bir, birincil disk ya da mantıksal disk bölümü seçiniz. - + %1 cannot be installed on this partition. %1 bu disk bölümüne yüklenemedi. - + Data partition (%1) Veri diski (%1) - + Unknown system partition (%1) Bilinmeyen sistem bölümü (%1) - + %1 system partition (%2) %1 sistem bölümü (%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>%4</strong><br/><br/>disk bölümü %2 için %1 daha küçük. Lütfen, en az %3 GB kapasiteli bir disk bölümü seçiniz. - + <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>%2</strong><br/><br/>Bu sistemde EFI disk bölümü bulamadı. Lütfen geri dönün ve %1 kurmak için gelişmiş kurulum seçeneğini kullanın. - - - + + + <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/>%2 üzerine %1 kuracak.<br/><font color="red">Uyarı: </font>%2 diskindeki tüm veriler kaybedilecek. - + The EFI system partition at %1 will be used for starting %2. %1 EFI sistem bölümü %2 başlatmak için kullanılacaktır. - + EFI system partition: EFI sistem bölümü: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Bu bilgisayar %1 yüklemek için asgari sistem gereksinimleri karşılamıyor.<br/> + Kurulum devam edemiyor.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Bu bilgisayar %1 kurmak için önerilen gereksinimlerin bazılarını karşılamıyor.<br/> + Kurulum devam edebilir, ancak bazı özellikler devre dışı kalabilir.</p> + + ResizeFSJob @@ -3037,12 +3089,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: En iyi sonucu elde etmek için bilgisayarınızın aşağıdaki gereksinimleri karşıladığından emin olunuz: - + System requirements Sistem gereksinimleri @@ -3050,29 +3102,29 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Bu bilgisayar %1 kurulumu için minimum gereksinimleri karşılamıyor.<br/>Kurulum devam etmeyecek. <a href="#details">Detaylar...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Bu bilgisayara %1 yüklemek için minimum gereksinimler karşılanamadı. Kurulum devam edemiyor. <a href="#detaylar">Detaylar...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Bu bilgisayar %1 kurulumu için önerilen gereksinimlerin bazılarına uymuyor. Kurulum devam edebilirsiniz ancak bazı özellikler devre dışı bırakılabilir. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Bu bilgisayara %1 yüklemek için önerilen gereksinimlerin bazıları karşılanamadı.<br/> Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. - + This program will ask you some questions and set up %2 on your computer. Bu program size bazı sorular soracak ve bilgisayarınıza %2 kuracak. @@ -3355,51 +3407,80 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. TrackingInstallJob - + Installation feedback Kurulum geribildirimi - + Sending installation feedback. Kurulum geribildirimi gönderiliyor. - + Internal error in install-tracking. Kurulum izlemede dahili hata. - + HTTP request timed out. HTTP isteği zaman aşımına uğradı. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + KDE kullanıcı geri bildirimi + + + + Configuring KDE user feedback. + KDE kullanıcı geri bildirimleri yapılandırılıyor. + + + + + Error in KDE user feedback configuration. + KDE kullanıcı geri bildirimi yapılandırmasında hata. + - + + Could not configure KDE user feedback correctly, script error %1. + KDE kullanıcı geri bildirimi doğru yapılandırılamadı, komut dosyası hatası %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + KDE kullanıcı geri bildirimi doğru şekilde yapılandırılamadı, %1 Calamares hatası. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Makine geri bildirimi - + Configuring machine feedback. Makine geribildirimini yapılandırma. - - + + Error in machine feedback configuration. Makine geri bildirim yapılandırma hatası var. - + Could not configure machine feedback correctly, script error %1. Makine geribildirimi doğru yapılandırılamadı, betik hatası %1. - + Could not configure machine feedback correctly, Calamares error %1. Makine geribildirimini doğru bir şekilde yapılandıramadı, Calamares hata %1. @@ -3418,8 +3499,8 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. - <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>Bunu seçerseniz <span style=" font-weight:600;">kurulum hakkında</span> hiçbir bilgi gönderemezsiniz.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Buraya tıklayın <span style=" font-weight:600;">hiçbir bilgi göndermemek için</span> kurulan sisteminiz hakkında.</p></body></html> @@ -3427,30 +3508,30 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.<html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Kullanıcı geri bildirimi hakkında daha fazla bilgi için burayı tıklayın</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. - Yükleme takibi, sahip oldukları kaç kullanıcının, hangi donanımın %1'e kurulduğunu ve (son iki seçenekle birlikte) tercih edilen uygulamalar hakkında sürekli bilgi sahibi olmasını sağlamak için %1'e yardımcı olur. Ne gönderileceğini görmek için, lütfen her alanın yanındaki yardım simgesini tıklayın. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + İzleme, %1 ne sıklıkla yüklendiğini, hangi donanıma kurulduğunu ve hangi uygulamaların kullanıldığını görmesine yardımcı olur. Nelerin gönderileceğini görmek için lütfen her bir alanın yanındaki yardım simgesini tıklayın. - - 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. - Bunu seçerseniz kurulum ve donanımınız hakkında bilgi gönderirsiniz. Bu bilgi, <b>kurulum tamamlandıktan sonra</b> yalnızca bir kez gönderilecektir. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Bunu seçerek kurulumunuz ve donanımınız hakkında bilgi göndereceksiniz. Bu bilgiler, kurulum bittikten sonra <b> yalnızca bir kez </b> gönderilecektir. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Bunu seçerek <b>kurulum, donanım ve uygulamalarınızla ilgili bilgileri</b> düzenli olarak %1'e gönderirsiniz. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Bunu seçerek, periyodik olarak %1'e <b> makine </b> kurulum, donanım ve uygulamalarınız hakkında bilgi gönderirsiniz. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Bunu seçerek <b>kurulum, donanım ve uygulamalarınızla ilgili bilgileri </b> düzenli olarak %1 adresine gönderirsiniz. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Bunu seçerek, <b> kullanıcı </b> kurulumunuz, donanımınız, uygulamalarınız ve uygulama kullanım alışkanlıklarınız hakkında düzenli olarak %1'e bilgi gönderirsiniz. TrackingViewStep - + Feedback Geribildirim @@ -3636,42 +3717,42 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.&Sürüm notları - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>%1 için Calamares sistem kurulum uygulamasına hoş geldiniz.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>%1 Kurulumuna Hoşgeldiniz.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>%1 Calamares Sistem Yükleyici .</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>%1 Sistem Yükleyiciye Hoşgeldiniz.</h1> - + %1 support %1 destek - + About %1 setup %1 kurulum hakkında - + About %1 installer %1 sistem yükleyici hakkında - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Telif Hakkı 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Telif Hakkı 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Teşekkrürler <a href="https://calamares.io/team/">Calamares takımı</a> ve <a href="https://www.transifex.com/calamares/calamares/">Calamares çeviri ekibi</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> gelişim sponsoru <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Özgür Yazılım @@ -3679,7 +3760,7 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. WelcomeQmlViewStep - + Welcome Hoşgeldiniz @@ -3687,7 +3768,7 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. WelcomeViewStep - + Welcome Hoşgeldiniz @@ -3728,6 +3809,28 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Geri + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Dil</h1> </br> + Sistem yerel ayarı, bazı komut satırı kullanıcı arabirimi öğelerinin dilini ve karakter kümesini etkiler. Geçerli ayar <strong>%1</strong>'dir + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Yerel</h1> </br> +Sistem yerel ayarı, bazı komut satırı kullanıcı arabirimi öğelerinin dilini ve karakter kümesini etkiler. Geçerli ayar <strong>%1</strong>. + + + + Back + Geri + + keyboardq @@ -3773,6 +3876,24 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Klavyeni test et + + localeq + + + System language set to %1 + Sistem dili %1 olarak ayarlandı + + + + Numbers and dates locale set to %1 + Sayılar ve tarih yerel ayarı %1 olarak ayarlandı + + + + Change + Değiştir + + notesqml @@ -3846,27 +3967,27 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. - + About Hakkında - + Support Destek - + Known issues Bilinen sorunlar - + Release notes Sürüm notları - + Donate Bağış diff --git a/lang/calamares_uk.ts b/lang/calamares_uk.ts index 4cc1441c0..d5c4fb97a 100644 --- a/lang/calamares_uk.ts +++ b/lang/calamares_uk.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up Налаштувати - + Install Встановити @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) Не вдалося виконати завдання (%1) - + Programmed job failure was explicitly requested. Невдача в запрограмованому завданні була чітко задана. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done Готово @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) Приклад завдання (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. Виконати команду «%1» у системі призначення. - + Run command '%1'. Виконати команду «%1». - + Running command %1 %2 Виконуємо команду %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. Запуск операції %1. - + Bad working directory path Неправильний шлях робочого каталогу - + Working directory %1 for python job %2 is not readable. Неможливо прочитати робочу директорію %1 для завдання python %2. - + Bad main script file Неправильний файл головного сценарію - + Main script file %1 for python job %2 is not readable. Неможливо прочитати файл головного сценарію %1 для завдання python %2. - + Boost.Python error in job "%1". Помилка Boost.Python у завданні "%1". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Перевірку виконання вимог щодо модуля <i>%1</i> завершено. + - + Waiting for %n module(s). Очікування %n модулю. @@ -238,7 +243,7 @@ - + (%n second(s)) (%n секунда) @@ -248,7 +253,7 @@ - + System-requirements checking is complete. Перевірка системних вимог завершена. @@ -277,13 +282,13 @@ - + &Yes &Так - + &No &Ні @@ -318,109 +323,109 @@ <br/>Не вдалося завантажити наступні модулі: - + Continue with setup? Продовжити встановлення? - + Continue with installation? Продовжити встановлення? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> Програма налаштування %1 збирається внести зміни до вашого диска, щоб налаштувати %2. <br/><strong> Ви не зможете скасувати ці зміни.</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Засіб встановлення %1 має намір внести зміни до розподілу вашого диска, щоб встановити %2.<br/><strong>Ці зміни неможливо буде скасувати.</strong> - + &Set up now &Налаштувати зараз - + &Install now &Встановити зараз - + Go &back Перейти &назад - + &Set up &Налаштувати - + &Install &Встановити - + Setup is complete. Close the setup program. Встановлення виконано. Закрити програму встановлення. - + The installation is complete. Close the installer. Встановлення виконано. Завершити роботу засобу встановлення. - + Cancel setup without changing the system. Скасувати налаштування без зміни системи. - + Cancel installation without changing the system. Скасувати встановлення без зміни системи. - + &Next &Вперед - + &Back &Назад - + &Done &Закінчити - + &Cancel &Скасувати - + Cancel setup? Скасувати налаштування? - + Cancel installation? Скасувати встановлення? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. Ви насправді бажаєте скасувати поточну процедуру налаштовування? Роботу програми для налаштовування буде завершено, а усі зміни буде втрачено. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Чи ви насправді бажаєте скасувати процес встановлення? @@ -430,22 +435,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type Невідомий тип виключної ситуації - + unparseable Python error нерозбірлива помилка Python - + unparseable Python traceback нерозбірливе відстеження помилки Python - + Unfetchable Python error. Помилка Python, інформацію про яку неможливо отримати. @@ -463,32 +468,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information Показати діагностичну інформацію - + &Back &Назад - + &Next &Вперед - + &Cancel &Скасувати - + %1 Setup Program Програма для налаштовування %1 - + %1 Installer Засіб встановлення %1 @@ -685,18 +690,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. Не вдалося виконати команду. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. Програма запускається у середовищі основної системи і потребує даних щодо кореневої теки, але не визначено rootMountPoint. - + The command needs to know the user's name, but no username is defined. Команді потрібні дані щодо імені користувача, але ім'я користувача не визначено. @@ -749,49 +754,49 @@ The installer will quit and all changes will be lost. Встановлення через мережу. (Вимкнено: Неможливо отримати список пакетів, перевірте ваше підключення до мережі) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Цей комп'ютер не задовольняє мінімальні вимоги для налаштовування %1.<br/>Налаштовування неможливо продовжити. <a href="#details">Докладніше...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Цей комп'ютер не задовольняє мінімальні вимоги для встановлення %1.<br/>Встановлення неможливо продовжити. <a href="#details">Докладніше...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Цей комп'ютер не задовольняє рекомендовані вимоги щодо налаштовування %1. Встановлення можна продовжити, але деякі можливості можуть виявитися недоступними. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Цей комп'ютер не задовольняє рекомендовані вимоги для встановлення %1.<br/>Встановлення можна продовжити, але деякі можливості можуть виявитися недоступними. - + This program will ask you some questions and set up %2 on your computer. Ця програма поставить кілька питань та встановить %2 на ваш комп'ютер. - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>Вітаємо у програмі налаштовування Calamares для %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Вітаємо у програмі налаштовування Calamares для %1</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>Вітаємо у програмі для налаштовування %1.</h1> + + <h1>Welcome to %1 setup</h1> + <h1>Вітаємо у програмі для налаштовування %1</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Ласкаво просимо до засобу встановлення Calamares для %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Ласкаво просимо до засобу встановлення Calamares для %1</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>Ласкаво просимо до засобу встановлення %1.</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>Ласкаво просимо до засобу встановлення %1</h1> @@ -1228,37 +1233,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information Ввести інформацію про розділ - + Install %1 on <strong>new</strong> %2 system partition. Встановити %1 на <strong>новий</strong> системний розділ %2. - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. Налаштувати <strong>новий</strong> розділ %2 з точкою підключення <strong>%1</strong>. - + Install %2 on %3 system partition <strong>%1</strong>. Встановити %2 на системний розділ %3 <strong>%1</strong>. - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. Налаштувати розділ %3 <strong>%1</strong> з точкою підключення <strong>%2</strong>. - + Install boot loader on <strong>%1</strong>. Встановити завантажувач на <strong>%1</strong>. - + Setting up mount points. Налаштування точок підключення. @@ -1276,32 +1281,32 @@ The installer will quit and all changes will be lost. &Перезавантажити зараз - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>Виконано.</h1><br/>На вашому комп'ютері було налаштовано %1.<br/>Можете починати користуватися вашою новою системою. - + <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 setup program.</p></body></html> <html><head/><body><p>Якщо позначено цей пункт, вашу систему буде негайно перезапущено після натискання кнопки <span style="font-style:italic;">Закінчити</span> або закриття вікна програми для налаштовування.</p></body></html> - + <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>Все зроблено.</h1><br/>%1 встановлено на ваш комп'ютер.<br/>Ви можете перезавантажитися до вашої нової системи або продовжити використання Live-середовища %2. - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>Якщо позначено цей пункт, вашу систему буде негайно перезапущено після натискання кнопки <span style="font-style:italic;">Закінчити</span> або закриття вікна засобу встановлення.</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>Не вдалося налаштувати</h1><br/>%1 не було налаштовано на вашому комп'ютері.<br/>Повідомлення про помилку: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Встановлення зазнало невдачі</h1><br/>%1 не було встановлено на Ваш комп'ютер.<br/>Повідомлення про помилку: %2. @@ -1309,27 +1314,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish Завершити - + Setup Complete Налаштовування завершено - + Installation Complete Встановлення завершено - + The setup of %1 is complete. Налаштовування %1 завершено. - + The installation of %1 is complete. Встановлення %1 завершено. @@ -1360,72 +1365,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space містить принаймні %1 ГіБ місця на диску - + There is not enough drive space. At least %1 GiB is required. На диску недостатньо місця. Потрібно принаймні %1 ГіБ. - + has at least %1 GiB working memory має принаймні %1 ГіБ робочої пам'яті - + The system does not have enough working memory. At least %1 GiB is required. У системі немає достатнього об'єму робочої пам'яті. Потрібно принаймні %1 ГіБ. - + 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. Система не з'єднана з мережею Інтернет. - + is running the installer as an administrator (root) виконує засіб встановлення від імені адміністратора (root) - + The setup program is not running with administrator rights. Програму для налаштовування запущено не від імені адміністратора. - + The installer is not running with administrator rights. Засіб встановлення запущено без прав адміністратора. - + has a screen large enough to show the whole installer має достатньо великий для усього вікна засобу встановлення екран - + The screen is too small to display the setup program. Екран є замалим для показу вікна засобу налаштовування. - + The screen is too small to display the installer. Екран замалий для показу вікна засобу встановлення. @@ -1545,7 +1550,7 @@ The installer will quit and all changes will be lost. 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>. - Налаштування системної локалі впливає на мову та набір символів для деяких елементів інтерфейсу командного рядку.<br/>Наразі встановлено <strong>%1</strong>. + Налаштування системної локалі впливає на мову та набір символів для деяких елементів інтерфейсу командного рядка.<br/>Зараз встановлено <strong>%1</strong>. @@ -1773,6 +1778,18 @@ The installer will quit and all changes will be lost. Не встановлено точки монтування кореневої файлової системи для MachineId. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + Будь ласка, виберіть бажане місце на мапі, щоб засіб встановлення запропонував вам + параметри локалі і часового поясу. Нижче ви можете скоригувати запропоновані параметри. Пошук на мапі можна виконати перетягуванням + для пересування позиції та використанням кнопок +/- для збільшення або зменшення масштабу, а також гортанням коліщатка для зміни масштабу. + + NetInstallViewStep @@ -1911,6 +1928,19 @@ The installer will quit and all changes will be lost. Встановити пакетний ідентифікатор OEM у значення <code>%1</code>. + + Offline + + + Timezone: %1 + Часовий пояс: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + Щоб мати змогу вибрати часовий пояс, переконайтеся, що комп'ютер з'єднано із інтернетом. Перезапустіть засіб встановлення після встановлення з'єднання із мережею. Ви можете скоригувати параметри мови та локалі нижче. + + PWQ @@ -2499,107 +2529,107 @@ The installer will quit and all changes will be lost. Розділи - + Install %1 <strong>alongside</strong> another operating system. Встановити %1 <strong>поруч</strong> з іншою операційною системою. - + <strong>Erase</strong> disk and install %1. <strong>Очистити</strong> диск та встановити %1. - + <strong>Replace</strong> a partition with %1. <strong>Замінити</strong> розділ на %1. - + <strong>Manual</strong> partitioning. Розподіл диска <strong>вручну</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Встановити %1 <strong>поруч</strong> з іншою операційною системою на диск <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Очистити</strong> диск <strong>%2</strong> (%3) та встановити %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Замінити</strong> розділ на диску <strong>%2</strong> (%3) на %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Розподіл диска <strong>%1</strong> (%2) <strong>вручну</strong>. - + Disk <strong>%1</strong> (%2) Диск <strong>%1</strong> (%2) - + Current: Зараз: - + After: Після: - + No EFI system partition configured Не налаштовано жодного системного розділу EFI - + 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>%3</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. Щоб запустити %1, потрібен системний розділ EFI.<br/><br/>Щоб налаштувати системний розділ EFI, поверніться і виберіть або створіть файлову систему FAT32 з увімкненим параметром <strong>%3</strong> та точкою монтування <strong>%2</strong>.<br/><br/>Ви можете продовжити, не налаштовуючи системний розділ EFI, але тоді у вашої системи можуть виникнути проблеми із запуском. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. Для запуску %1 потрібен системний розділ EFI.<br/><br/>Розділ налаштовано з точкою підключення <strong>%2</strong>, але опція <strong>%3</strong> не встановлено.<br/>Щоб встановити опцію, поверніться та відредагуйте розділ.<br/><br/>Ви можете продовжити не налаштовуючи цю опцію, але ваша система може не запускатись. - + EFI system partition flag not set Опцію системного розділу EFI не встановлено - + Option to use GPT on BIOS Варіант із використанням GPT на BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. Таблиця розділів GPT є найкращим варіантом для усіх систем. У цьому засобі встановлення передбачено підтримку відповідних налаштувань і для систем BIOS.<br/><br/>Щоб скористатися таблицею розділів GPT у системі з BIOS, (якщо цього ще не було зроблено) поверніться назад і встановіть для таблиці розділів значення GPT, далі створіть неформатований розділ розміром 8 МБ з увімкненим прапорцем <strong>bios_grub</strong>.<br/><br/>Неформатований розділ розміром 8 МБ потрібен для запуску %1 на системі з BIOS за допомогою GPT. - + 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. Було налаштовано окремий завантажувальний розділ поряд із зашифрованим кореневим розділом, але завантажувальний розділ незашифрований.<br/><br/>Існують проблеми з безпекою такого типу, оскільки важливі системні файли зберігаються на незашифрованому розділі.<br/>Ви можете продовжувати, якщо бажаєте, але розблокування файлової системи відбудеться пізніше під час запуску системи.<br/>Щоб зашифрувати завантажувальний розділ, поверніться і створіть його знов, обравши <strong>Зашифрувати</strong> у вікні створення розділів. - + has at least one disk device available. має принаймні один доступний дисковий пристрій. - + There are no partitions to install on. Немає розділів для встановлення. @@ -2665,14 +2695,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. У результаті виконання команди не отримано виведених даних. - + Output: @@ -2681,52 +2711,52 @@ Output: - + External command crashed. Виконання зовнішньої команди завершилося помилкою. - + Command <i>%1</i> crashed. Аварійне завершення виконання команди <i>%1</i>. - + External command failed to start. Не вдалося виконати зовнішню команду. - + Command <i>%1</i> failed to start. Не вдалося виконати команду <i>%1</i>. - + 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. Не вдалося завершити виконання команди <i>%1</i> за %2 секунд. - + External command finished with errors. Виконання зовнішньої команди завершено із помилками. - + Command <i>%1</i> finished with exit code %2. Виконання команди <i>%1</i> завершено повідомленням із кодом виходу %2. @@ -2734,32 +2764,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - Перевірку виконання вимог щодо модуля <i>%1</i> завершено. - - - + unknown невідома - + extended розширений - + unformatted не форматовано - + swap резервна пам'ять @@ -2813,6 +2838,16 @@ Output: Нерозподілений простір або невідома таблиця розділів + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Цей комп'ютер не задовольняє рекомендовані вимоги щодо налаштовування %1.<br/> +Встановлення можна продовжити, але деякі можливості можуть виявитися недоступними.</p> + + RemoveUserJob @@ -2848,73 +2883,90 @@ Output: Форма - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. Виберіть місце встановлення %1.<br/><font color="red">Увага:</font> у результаті виконання цієї дії усі файли на вибраному розділі буде витерто. - + The selected item does not appear to be a valid partition. Вибраний елемент не є дійсним розділом. - + %1 cannot be installed on empty space. Please select an existing partition. %1 не можна встановити на порожній простір. Будь ласка, оберіть дійсний розділ. - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 не можна встановити на розширений розділ. Будь ласка, оберіть дійсний первинний або логічний розділ. - + %1 cannot be installed on this partition. %1 не можна встановити на цей розділ. - + Data partition (%1) Розділ з даними (%1) - + Unknown system partition (%1) Невідомий системний розділ (%1) - + %1 system partition (%2) Системний розділ %1 (%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>%4</strong><br/><br/>Розділ %1 замалий для %2. Будь ласка оберіть розділ розміром хоча б %3 Гб. - + <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>%2</strong><br/><br/>Системний розділ EFI у цій системі не знайдено. Для встановлення %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. <strong>%3</strong><br/><br/>%1 буде встановлено на %2.<br/><font color="red">Увага: </font>всі дані на розділі %2 буде загублено. - + The EFI system partition at %1 will be used for starting %2. Системний розділ EFI на %1 буде використано для запуску %2. - + EFI system partition: Системний розділ EFI: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>Цей комп'ютер не задовольняє мінімальні вимоги до встановлення %1.<br/> +Неможливо продовжувати процес встановлення.</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>Цей комп'ютер не задовольняє рекомендовані вимоги щодо налаштовування %1.<br/> +Встановлення можна продовжити, але деякі можливості можуть виявитися недоступними.</p> + + ResizeFSJob @@ -3037,12 +3089,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: Щоб отримати найкращий результат, будь ласка, переконайтеся, що цей комп'ютер: - + System requirements Вимоги до системи @@ -3050,27 +3102,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> Цей комп'ютер не задовольняє мінімальні вимоги для налаштовування %1.<br/>Налаштовування неможливо продовжити. <a href="#details">Докладніше...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Цей комп'ютер не задовольняє мінімальні вимоги для встановлення %1.<br/>Встановлення неможливо продовжити. <a href="#details">Докладніше...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. Цей комп'ютер не задовольняє рекомендовані вимоги щодо налаштовування %1. Встановлення можна продовжити, але деякі можливості можуть виявитися недоступними. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. Цей комп'ютер не задовольняє рекомендовані вимоги для встановлення %1.<br/>Встановлення можна продовжити, але деякі можливості можуть виявитися недоступними. - + This program will ask you some questions and set up %2 on your computer. Ця програма поставить кілька питань та встановить %2 на ваш комп'ютер. @@ -3353,51 +3405,80 @@ Output: TrackingInstallJob - + Installation feedback Відгуки щодо встановлення - + Sending installation feedback. Надсилання відгуків щодо встановлення. - + Internal error in install-tracking. Внутрішня помилка під час стеження за встановленням. - + HTTP request timed out. Перевищено час очікування на обробку запиту HTTP. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + Зворотних зв'язок для користувачів KDE + + + + Configuring KDE user feedback. + Налаштовування зворотного зв'язку для користувачів KDE. + + + + + Error in KDE user feedback configuration. + Помилка у налаштуваннях зворотного зв'язку користувачів KDE. + - + + Could not configure KDE user feedback correctly, script error %1. + Не вдалося налаштувати належним чином зворотний зв'язок для користувачів KDE. Помилка скрипту %1. + + + + Could not configure KDE user feedback correctly, Calamares error %1. + Не вдалося налаштувати належним чином зворотний зв'язок для користувачів KDE. Помилка Calamares %1. + + + + TrackingMachineUpdateManagerJob + + Machine feedback Дані щодо комп'ютера - + Configuring machine feedback. Налаштовування надсилання даних щодо комп'ютера. - - + + Error in machine feedback configuration. Помилка у налаштуваннях надсилання даних щодо комп'ютера. - + Could not configure machine feedback correctly, script error %1. Не вдалося налаштувати надсилання даних щодо комп'ютера належним чином. Помилка скрипту: %1. - + Could not configure machine feedback correctly, Calamares error %1. Не вдалося налаштувати надсилання даних щодо комп'ютера належним чином. Помилка у Calamares: %1. @@ -3416,8 +3497,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Якщо буде позначено цей пункт, програма <span style=" font-weight:600;">не надсилатиме ніяких даних</span> щодо встановленої системи.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Натисніть тут, щоб не надсилати <span style=" font-weight:600;">взагалі ніяких даних</span> щодо вашого встановлення.</p></body></html> @@ -3425,30 +3506,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Натисніть, щоб дізнатися більше про відгуки користувачів</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. - Стеження за встановленням допоможе визначити %1 кількість користувачів, параметри обладнання, на якому встановлюють %1 і (якщо позначено останні два пункти нижче) неперервно отримувати дані щодо програм, які використовуються у системі. Щоб ознайомитися із даними, які буде надіслано, натисніть піктограму довідки, розташовану поряд із кожним із варіантів. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + Стеження допоможе %1 визначити частоту встановлення, параметри обладнання для встановлення та перелік використовуваних програм. Щоб переглянути дані, які буде надіслано, будь ласка, натисніть піктограму довідки, яку розташовано поряд із кожним пунктом. - - 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. - Якщо буде позначено цей пункт, програма надішле дані щодо встановленої системи та обладнання. Ці дані буде <b>надіслано лише один раз</b> після завершення встановлення. + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + Якщо буде позначено цей пункт, програма надішле дані щодо встановленої системи та обладнання. Ці дані буде надіслано <b>лише один раз</b> після завершення встановлення. - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Якщо позначити цей пункт, програма <b>періодично</b> надсилатиме дані щодо встановленої вами системи, обладнання і програм до %1. + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + Якщо позначити цей пункт, програма періодично надсилатиме дані щодо <b>встановленої вами системи загалом</b>, обладнання і програм до %1. - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Якщо позначити цей пункт, програма <b>регулярно</b> надсилатиме дані щодо встановленої вами системи, обладнання, програм та користування системою до %1. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + Якщо позначити цей пункт, програма регулярно надсилатиме дані щодо встановленої вами системи користувача, обладнання, програм та користування системою до %1. TrackingViewStep - + Feedback Відгуки @@ -3634,42 +3715,42 @@ Output: При&мітки до випуску - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>Вітаємо у програмі налаштовування Calamares для %1.</h1> - + <h1>Welcome to %1 setup.</h1> <h1>Вітаємо у програмі для налаштовування %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>Ласкаво просимо до засобу встановлення Calamares для %1.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Ласкаво просимо до засобу встановлення %1.</h1> - + %1 support Підтримка %1 - + About %1 setup Про засіб налаштовування %1 - + About %1 installer Про засіб встановлення %1 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>для %3</strong><br/><br/>© Teo Mrnjavac &lt;teo@kde.org&gt;, 2014–2017<br/>© Adriaan de Groot &lt;groot@kde.org&gt;, 2017–2020<br/>Дякуємо <a href="https://calamares.io/team/">команді розробників Calamares</a> та <a href="https://www.transifex.com/calamares/calamares/">команді перекладачів Calamares</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> розроблено за фінансової підтримки <br/><a href="http://www.blue-systems.com/">Blue Systems</a> — Liberating Software. @@ -3677,7 +3758,7 @@ Output: WelcomeQmlViewStep - + Welcome Вітаємо @@ -3685,7 +3766,7 @@ Output: WelcomeViewStep - + Welcome Вітаємо @@ -3724,6 +3805,28 @@ Output: Назад + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Мови</h1></br> +Налаштування системної локалі впливає на мову та набір символів для деяких елементів інтерфейсу командного рядка. Зараз встановлено значення локалі <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Локалі</h1></br> +Налаштування системної локалі впливає на мову та набір символів для деяких елементів інтерфейсу командного рядка. Зараз встановлено значення локалі <strong>%1</strong>. + + + + Back + Назад + + keyboardq @@ -3769,6 +3872,24 @@ Output: Перевірте вашу клавіатуру + + localeq + + + System language set to %1 + Мову %1 встановлено як мову системи + + + + Numbers and dates locale set to %1 + %1 встановлено як локаль чисел та дат. + + + + Change + Змінити + + notesqml @@ -3842,27 +3963,27 @@ Output: <p>Ця програма задасть вам декілька питань і налаштує %1 для роботи на вашому комп'ютері.</p> - + About Про програму - + Support Підтримка - + Known issues Відомі вади - + Release notes Нотатки щодо випуску - + Donate Підтримати фінансово diff --git a/lang/calamares_ur.ts b/lang/calamares_ur.ts index 7eaf9283d..89485037c 100644 --- a/lang/calamares_ur.ts +++ b/lang/calamares_ur.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,8 +227,13 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). @@ -236,7 +241,7 @@ - + (%n second(s)) @@ -244,7 +249,7 @@ - + System-requirements checking is complete. @@ -273,13 +278,13 @@ - + &Yes - + &No @@ -314,108 +319,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -456,32 +461,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -678,18 +683,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -742,48 +747,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1221,37 +1226,37 @@ The installer will quit and all changes will be lost. 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. @@ -1269,32 +1274,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1302,27 +1307,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1353,72 +1358,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1766,6 +1771,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1904,6 +1919,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2491,107 +2519,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2657,65 +2685,65 @@ The installer will quit and all changes will be lost. 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. @@ -2723,32 +2751,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2802,6 +2825,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2837,73 +2869,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3026,12 +3073,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3039,27 +3086,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3342,51 +3389,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3405,7 +3481,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3414,30 +3490,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3623,42 +3699,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3666,7 +3742,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3674,7 +3750,7 @@ Output: WelcomeViewStep - + Welcome @@ -3703,6 +3779,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3748,6 +3844,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3799,27 +3913,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_uz.ts b/lang/calamares_uz.ts index aa65f2134..11dec16dd 100644 --- a/lang/calamares_uz.ts +++ b/lang/calamares_uz.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up - + Install @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) - + Programmed job failure was explicitly requested. @@ -143,7 +143,7 @@ Calamares::JobThread - + Done @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. - + Run command '%1'. - + Running command %1 %2 @@ -177,32 +177,32 @@ 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". @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + - + Waiting for %n module(s). - + (%n second(s)) - + System-requirements checking is complete. @@ -271,13 +276,13 @@ - + &Yes - + &No @@ -312,108 +317,108 @@ - + Continue with setup? - + Continue with installation? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> - + 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> - + &Set up now - + &Install now - + Go &back - + &Set up - + &Install - + Setup is complete. Close the setup program. - + The installation is complete. Close the installer. - + Cancel setup without changing the system. - + Cancel installation without changing the system. - + &Next - + &Back - + &Done - + &Cancel - + Cancel setup? - + Cancel installation? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. @@ -422,22 +427,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type - + unparseable Python error - + unparseable Python traceback - + Unfetchable Python error. @@ -454,32 +459,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information - + &Back - + &Next - + &Cancel - + %1 Setup Program - + %1 Installer @@ -676,18 +681,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - + The command needs to know the user's name, but no username is defined. @@ -740,48 +745,48 @@ The installer will quit and all changes will be lost. - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. - - <h1>Welcome to the Calamares setup program for %1.</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> - - <h1>Welcome to %1 setup.</h1> + + <h1>Welcome to %1 setup</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> + + <h1>Welcome to the Calamares installer for %1</h1> - - <h1>Welcome to the %1 installer.</h1> + + <h1>Welcome to the %1 installer</h1> @@ -1219,37 +1224,37 @@ The installer will quit and all changes will be lost. 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. @@ -1267,32 +1272,32 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <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 setup program.</p></body></html> - + <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. - + <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> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1300,27 +1305,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish - + Setup Complete - + Installation Complete - + The setup of %1 is complete. - + The installation of %1 is complete. @@ -1351,72 +1356,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space - + There is not enough drive space. At least %1 GiB is required. - + has at least %1 GiB working memory - + The system does not have enough working memory. At least %1 GiB 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. - + is running the installer as an administrator (root) - + The setup program is not running with administrator rights. - + The installer is not running with administrator rights. - + has a screen large enough to show the whole installer - + The screen is too small to display the setup program. - + The screen is too small to display the installer. @@ -1764,6 +1769,16 @@ The installer will quit and all changes will be lost. + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1902,6 +1917,19 @@ The installer will quit and all changes will be lost. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2489,107 +2517,107 @@ The installer will quit and all changes will be lost. - + 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>%3</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. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. - + EFI system partition flag not set - + Option to use GPT on BIOS - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + 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. - + has at least one disk device available. - + There are no partitions to install on. @@ -2655,65 +2683,65 @@ The installer will quit and all changes will be lost. 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. @@ -2721,32 +2749,27 @@ Output: QObject - + %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - - - - + unknown - + extended - + unformatted - + swap @@ -2800,6 +2823,15 @@ Output: + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2835,73 +2867,88 @@ Output: - + 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: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3024,12 +3071,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: - + System requirements @@ -3037,27 +3084,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This program will ask you some questions and set up %2 on your computer. @@ -3340,51 +3387,80 @@ Output: TrackingInstallJob - + Installation feedback - + Sending installation feedback. - + Internal error in install-tracking. - + HTTP request timed out. - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + 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. @@ -3403,7 +3479,7 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> @@ -3412,30 +3488,30 @@ Output: - - 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. + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 send information about your installation and hardware. This information will only be sent <b>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 periodically send information about your <b>machine</b> 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. + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. TrackingViewStep - + Feedback @@ -3621,42 +3697,42 @@ Output: - + <h1>Welcome to the Calamares setup program for %1.</h1> - + <h1>Welcome to %1 setup.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the %1 installer.</h1> - + %1 support - + About %1 setup - + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. @@ -3664,7 +3740,7 @@ Output: WelcomeQmlViewStep - + Welcome @@ -3672,7 +3748,7 @@ Output: WelcomeViewStep - + Welcome @@ -3701,6 +3777,26 @@ Output: + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + keyboardq @@ -3746,6 +3842,24 @@ Output: + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3797,27 +3911,27 @@ Output: - + About - + Support - + Known issues - + Release notes - + Donate diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts index 7467aa120..943cbfe9e 100644 --- a/lang/calamares_zh_CN.ts +++ b/lang/calamares_zh_CN.ts @@ -118,12 +118,12 @@ Calamares::ExecutionViewStep - + Set up 建立 - + Install 安装 @@ -131,12 +131,12 @@ Calamares::FailJob - + Job failed (%1) 任务失败(%1) - + Programmed job failure was explicitly requested. 出现明确抛出的任务执行失败。 @@ -144,7 +144,7 @@ Calamares::JobThread - + Done 完成 @@ -152,7 +152,7 @@ Calamares::NamedJob - + Example job (%1) 示例任务 (%1) @@ -160,17 +160,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. 在目标系统上执行 '%1'。 - + Run command '%1'. 运行命令 '%1'. - + Running command %1 %2 正在运行命令 %1 %2 @@ -178,32 +178,32 @@ Calamares::PythonJob - + Running %1 operation. 正在运行 %1 个操作。 - + Bad working directory path 错误的工作目录路径 - + Working directory %1 for python job %2 is not readable. 用于 python 任务 %2 的工作目录 %1 不可读。 - + Bad main script file 错误的主脚本文件 - + Main script file %1 for python job %2 is not readable. 用于 python 任务 %2 的主脚本文件 %1 不可读。 - + Boost.Python error in job "%1". 任务“%1”出现 Boost.Python 错误。 @@ -228,22 +228,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + 模块<i>%1</i>的需求检查已完成。 + - + Waiting for %n module(s). 等待 %n 模块。 - + (%n second(s)) (%n 秒) - + System-requirements checking is complete. 已经完成系统需求检查。 @@ -272,13 +277,13 @@ - + &Yes &是 - + &No &否 @@ -313,109 +318,109 @@ <br/>无法加载以下模块: - + Continue with setup? 要继续安装吗? - + Continue with installation? 继续安装? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> 为了安装%2, %1 安装程序即将对磁盘进行更改。<br/><strong>这些更改无法撤销。</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 安装程序将在您的磁盘上做出变更以安装 %2。<br/><strong>您将无法复原这些变更。</strong> - + &Set up now 现在安装(&S) - + &Install now 现在安装 (&I) - + Go &back 返回 (&B) - + &Set up 安装(&S) - + &Install 安装(&I) - + Setup is complete. Close the setup program. 安装完成。关闭安装程序。 - + The installation is complete. Close the installer. 安装已完成。请关闭安装程序。 - + Cancel setup without changing the system. 取消安装,保持系统不变。 - + Cancel installation without changing the system. 取消安装,并不做任何更改。 - + &Next 下一步(&N) - + &Back 后退(&B) - + &Done &完成 - + &Cancel 取消(&C) - + Cancel setup? 取消安装? - + Cancel installation? 取消安装? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. 确定要取消当前安装吗? 安装程序将会退出,所有修改都会丢失。 - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 确定要取消当前的安装吗? @@ -425,22 +430,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type 未知异常类型 - + unparseable Python error 无法解析的 Python 错误 - + unparseable Python traceback 无法解析的 Python 回溯 - + Unfetchable Python error. 无法获取的 Python 错误。 @@ -458,32 +463,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information 显示调试信息 - + &Back 后退(&B) - + &Next 下一步(&N) - + &Cancel 取消(&C) - + %1 Setup Program %1 安装程序 - + %1 Installer %1 安装程序 @@ -680,18 +685,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. 无法运行命令 - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. 该命令在主机环境中运行,且需要知道根路径,但没有定义root挂载点。 - + The command needs to know the user's name, but no username is defined. 命令行需要知道用户的名字,但用户名没有被设置 @@ -744,51 +749,51 @@ The installer will quit and all changes will be lost. 网络安装。(已禁用:无法获取软件包列表,请检查网络连接) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 此计算机不满足安装 %1 的某些推荐配置。 安装可以继续,但是一些特性可能被禁用。 - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 此电脑未满足安装 %1 的最低需求。<br/>安装无法继续。<a href="#details">详细信息...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 此计算机不满足安装 %1 的某些推荐配置。 安装可以继续,但是一些特性可能被禁用。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 此电脑未满足一些安装 %1 的推荐需求。<br/>可以继续安装,但一些功能可能会被停用。 - + This program will ask you some questions and set up %2 on your computer. 本程序将会问您一些问题并在您的电脑上安装及设置 %2 。 - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>欢迎使用 %1 的 Calamares 安装程序。</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + - - <h1>Welcome to %1 setup.</h1> - <h1>欢迎使用 %1 安装程序。</h1> + + <h1>Welcome to %1 setup</h1> + - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>欢迎使用 Calamares 安装程序 - %1。</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + - - <h1>Welcome to the %1 installer.</h1> - <h1>欢迎使用 %1 安装程序。</h1> + + <h1>Welcome to the %1 installer</h1> + @@ -1226,37 +1231,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information 设置分区信息 - + Install %1 on <strong>new</strong> %2 system partition. 在 <strong>新的</strong>系统分区 %2 上安装 %1。 - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. 设置 <strong>新的</strong> 含挂载点 <strong>%1</strong> 的 %2 分区。 - + Install %2 on %3 system partition <strong>%1</strong>. 在 %3 系统割区 <strong>%1</strong> 上安装 %2。 - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. 为分区 %3 <strong>%1</strong> 设置挂载点 <strong>%2</strong>。 - + Install boot loader on <strong>%1</strong>. 在 <strong>%1</strong>上安装引导程序。 - + Setting up mount points. 正在设置挂载点。 @@ -1274,32 +1279,32 @@ The installer will quit and all changes will be lost. 现在重启(&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>安装成功!</h1><br/>%1 已安装在您的电脑上了。<br/>您现在可以重新启动到新系统。 - + <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 setup program.</p></body></html> <html><head/><body><p>当选中此项时,系统会在您关闭安装器或点击 <span style=" font-style:italic;">完成</span> 按钮时立即重启</p></body></html> - + <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>安装成功!</h1><br/>%1 已安装在您的电脑上了。<br/>您现在可以重新启动到新系统,或是继续使用 %2 Live 环境。 - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>当选中此项时,系统会在您关闭安装器或点击 <span style=" font-style:italic;">完成</span> 按钮时立即重启</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>安装失败</h1><br/>%1 未在你的电脑上安装。<br/>错误信息:%2。 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>安装失败</h1><br/>%1 未在你的电脑上安装。<br/>错误信息:%2。 @@ -1307,27 +1312,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish 结束 - + Setup Complete 安装完成 - + Installation Complete 安装完成 - + The setup of %1 is complete. %1 安装完成。 - + The installation of %1 is complete. %1 的安装操作已完成。 @@ -1358,72 +1363,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space 有至少 %1 GB 可用磁盘空间 - + There is not enough drive space. At least %1 GiB is required. 没有足够的磁盘空间。至少需要 %1 GB。 - + has at least %1 GiB working memory 至少 %1 GB 可用内存 - + The system does not have enough working memory. At least %1 GiB is required. 系统没有足够的内存。至少需要 %1 GB。 - + 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. 系统未连接到互联网。 - + is running the installer as an administrator (root) 正以管理员(root)权限运行安装器 - + The setup program is not running with administrator rights. 安装器未以管理员权限运行 - + The installer is not running with administrator rights. 安装器未以管理员权限运行 - + has a screen large enough to show the whole installer 有一个足够大的屏幕来显示整个安装器 - + The screen is too small to display the setup program. 屏幕太小无法显示安装程序。 - + The screen is too small to display the installer. 屏幕不能完整显示安装器。 @@ -1771,6 +1776,16 @@ The installer will quit and all changes will be lost. MachineId未配置根挂载点/ + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + NetInstallViewStep @@ -1909,6 +1924,19 @@ The installer will quit and all changes will be lost. 设置OEM批量标识为 <code>%1</code>. + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + PWQ @@ -2496,107 +2524,107 @@ The installer will quit and all changes will be lost. 分区 - + Install %1 <strong>alongside</strong> another operating system. 将 %1 安装在其他操作系统<strong>旁边</strong>。 - + <strong>Erase</strong> disk and install %1. <strong>抹除</strong>磁盘并安装 %1。 - + <strong>Replace</strong> a partition with %1. 以 %1 <strong>替代</strong>一个分区。 - + <strong>Manual</strong> partitioning. <strong>手动</strong>分区 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 将 %1 安装在磁盘 <strong>%2</strong> (%3) 上的另一个操作系统<strong>旁边</strong>。 - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>抹除</strong> 磁盘 <strong>%2</strong> (%3) 并且安装 %1。 - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. 以 %1 <strong>替代</strong> 一个在磁盘 <strong>%2</strong> (%3) 上的分区。 - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). 在磁盘 <strong>%1</strong> (%2) 上<strong>手动</strong>分区。 - + Disk <strong>%1</strong> (%2) 磁盘 <strong>%1</strong> (%2) - + Current: 当前: - + After: 之后: - + No EFI system partition configured 未配置 EFI 系统分区 - + 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>%3</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 系统分区才能启动 %1 。<br/><br/>要配置 EFI 系统分区,后退一步,然后创建或选中一个 FAT32 分区并为之设置 <strong>%3</strong> 标记及挂载点 <strong>%2</strong>。<br/><br/>你可以不创建 EFI 系统分区并继续安装,但是你的系统可能无法启动。 - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. 必须有 EFI 系统分区才能启动 %1 。<br/><br/>已有挂载点为 <strong>%2</strong> 的分区,但是未设置 <strong>%3</strong> 标记。<br/>要设置此标记,后退并编辑分区。<br/><br/>你可以不创建 EFI 系统分区并继续安装,但是你的系统可能无法启动。 - + EFI system partition flag not set 未设置 EFI 系统分区标记 - + Option to use GPT on BIOS 在 BIOS 上使用 GPT - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT 分区表对于所有系统来说都是最佳选项。本安装程序支持在 BIOS 模式下设置 GPT 分区表。<br/><br/>要在 BIOS 模式下配置 GPT 分区表,(若你尚未配置好)返回并设置分区表为 GPT,然后创建一个 8MB 的、未经格式化的、启用<strong>bios_grub</strong> 标记的分区。<br/><br/>一个未格式化的 8MB 的分区对于在 BIOS 模式下使用 GPT 启动 %1 来说是非常有必要的。 - + 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. 您尝试用单独的引导分区配合已加密的根分区使用,但引导分区未加密。<br/><br/>这种配置方式可能存在安全隐患,因为重要的系统文件存储在了未加密的分区上。<br/>您可以继续保持此配置,但是系统解密将在系统启动时而不是引导时进行。<br/>要加密引导分区,请返回上一步并重新创建此分区,并在分区创建窗口选中 <strong>加密</strong> 选项。 - + has at least one disk device available. 有至少一个可用的磁盘设备。 - + There are no partitions to install on. 无可用于安装的分区。 @@ -2662,14 +2690,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. 命令没有输出。 - + Output: @@ -2678,52 +2706,52 @@ Output: - + External command crashed. 外部命令已崩溃。 - + Command <i>%1</i> crashed. 命令 <i>%1</i> 已崩溃。 - + External command failed to start. 无法启动外部命令。 - + Command <i>%1</i> failed to start. 无法启动命令 <i>%1</i>。 - + 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. 命令 <i>%1</i> 未能在 %2 秒内完成。 - + External command finished with errors. 外部命令已完成,但出现了错误。 - + Command <i>%1</i> finished with exit code %2. 命令 <i>%1</i> 以退出代码 %2 完成。 @@ -2731,32 +2759,27 @@ Output: QObject - + %1 (%2) %1(%2) - - Requirements checking for module <i>%1</i> is complete. - 模块<i>%1</i>的需求检查已完成。 - - - + unknown 未知 - + extended 扩展分区 - + unformatted 未格式化 - + swap 临时存储空间 @@ -2810,6 +2833,15 @@ Output: 尚未分区的空间或分区表未知 + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + RemoveUserJob @@ -2845,73 +2877,88 @@ Output: 表单 - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. <b>选择要安装 %1 的地方。</b><br/><font color="red">警告:</font>这将会删除所有已选取的分区上的文件。 - + The selected item does not appear to be a valid partition. 选中项似乎不是有效分区。 - + %1 cannot be installed on empty space. Please select an existing partition. 无法在空白空间中安装 %1。请选取一个存在的分区。 - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. 无法在拓展分区上安装 %1。请选取一个存在的主要或逻辑分区。 - + %1 cannot be installed on this partition. 无法安装 %1 到此分区。 - + Data partition (%1) 数据分区 (%1) - + Unknown system partition (%1) 未知系统分区 (%1) - + %1 system partition (%2) %1 系统分区 (%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>%4</strong><br/><br/>分区 %1 对 %2 来说太小了。请选取一个容量至少有 %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>%2</strong><br/><br/>在此系统上找不到任何 EFI 系统分区。请后退到上一步并使用手动分区配置 %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. <strong>%3</strong><br/><br/>即将安装 %1 到 %2 上。<br/><font color="red">警告: </font>分区 %2 上的所有数据都将丢失。 - + The EFI system partition at %1 will be used for starting %2. 将使用 %1 处的 EFI 系统分区启动 %2。 - + EFI system partition: EFI 系统分区: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + ResizeFSJob @@ -3034,12 +3081,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: 为了更好的体验,请确保这台电脑: - + System requirements 系统需求 @@ -3047,29 +3094,29 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 此计算机不满足安装 %1 的某些推荐配置。 安装可以继续,但是一些特性可能被禁用。 - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 此电脑未满足安装 %1 的最低需求。<br/>安装无法继续。<a href="#details">详细信息...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 此计算机不满足安装 %1 的某些推荐配置。 安装可以继续,但是一些特性可能被禁用。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 此电脑未满足一些安装 %1 的推荐需求。<br/>可以继续安装,但一些功能可能会被停用。 - + This program will ask you some questions and set up %2 on your computer. 本程序将会问您一些问题并在您的电脑上安装及设置 %2 。 @@ -3352,51 +3399,80 @@ Output: TrackingInstallJob - + Installation feedback 安装反馈 - + Sending installation feedback. 发送安装反馈。 - + Internal error in install-tracking. 在 install-tracking 步骤发生内部错误。 - + HTTP request timed out. HTTP 请求超时。 - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + - + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + Machine feedback 机器反馈 - + Configuring machine feedback. 正在配置机器反馈。 - - + + Error in machine feedback configuration. 机器反馈配置中存在错误。 - + Could not configure machine feedback correctly, script error %1. 无法正确配置机器反馈,脚本错误代码 %1。 - + Could not configure machine feedback correctly, Calamares error %1. 无法正确配置机器反馈,Calamares 错误代码 %1。 @@ -3415,8 +3491,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>选中此项时,不会发送关于安装的 <span style=" font-weight:600;">no information at all</span>。</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + @@ -3424,30 +3500,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">点击此处以获取关于用户反馈的详细信息</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. - 安装跟踪可帮助 %1 获取关于用户数量,安装 %1 的硬件(选中下方最后两项)及长期以来受欢迎应用程序的信息。请点按每项旁的帮助图标以查看即将被发送的信息。 + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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. - 选中此项时,安装器将发送关于安装过程和硬件的信息。该信息只会在安装结束后 <b>发送一次</b>。 + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - 选中此项时,安装器将给 %1 <b>定时</b> 发送关于安装进程,硬件及应用程序的信息。 + + By selecting this you will periodically send information about your <b>machine</b> 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. - 选中此项时,安装器和系统将给 %1 <b>定时</b> 发送关于安装进程,硬件,应用程序及使用规律的信息。 + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + TrackingViewStep - + Feedback 反馈 @@ -3633,42 +3709,42 @@ Output: 发行注记(&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>欢迎使用 %1 的 Calamares 安装程序。</h1> - + <h1>Welcome to %1 setup.</h1> <h1>欢迎使用 %1 安装程序。</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>欢迎使用 Calamares 安装程序 - %1。</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>欢迎使用 %1 安装程序。</h1> - + %1 support %1 的支持信息 - + About %1 setup 关于 %1 安装程序 - + About %1 installer 关于 %1 安装程序 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>致谢 <a href="https://calamares.io/team/">Calamares开发团队和<a href="https://www.transifex.com/calamares/calamares/">Calamares 翻译团队</a>。<br/><br/><a href="https://calamares.io/">Calamares</a> 开发赞助来自 <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3676,7 +3752,7 @@ Output: WelcomeQmlViewStep - + Welcome 欢迎 @@ -3684,7 +3760,7 @@ Output: WelcomeViewStep - + Welcome 欢迎 @@ -3724,6 +3800,26 @@ Output: 后退 + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + 后退 + + keyboardq @@ -3769,6 +3865,24 @@ Output: 测试您的键盘 + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + notesqml @@ -3843,27 +3957,27 @@ Output: <p>这个程序将询问您一些问题并在您的计算机上安装 %1。</p> - + About 关于 - + Support 支持 - + Known issues 已知问题 - + Release notes 发行说明 - + Donate 捐赠 diff --git a/lang/calamares_zh_TW.ts b/lang/calamares_zh_TW.ts index 51f244389..337431a0b 100644 --- a/lang/calamares_zh_TW.ts +++ b/lang/calamares_zh_TW.ts @@ -117,12 +117,12 @@ Calamares::ExecutionViewStep - + Set up 設定 - + Install 安裝 @@ -130,12 +130,12 @@ Calamares::FailJob - + Job failed (%1) 排程失敗 (%1) - + Programmed job failure was explicitly requested. 明確要求程式化排程失敗。 @@ -143,7 +143,7 @@ Calamares::JobThread - + Done 完成 @@ -151,7 +151,7 @@ Calamares::NamedJob - + Example job (%1) 範例排程 (%1) @@ -159,17 +159,17 @@ Calamares::ProcessJob - + Run command '%1' in target system. 在目標系統中執行指令「%1」。 - + Run command '%1'. 執行指令「%1」。 - + Running command %1 %2 正在執行命令 %1 %2 @@ -177,32 +177,32 @@ Calamares::PythonJob - + Running %1 operation. 正在執行 %1 操作。 - + Bad working directory path 不良的工作目錄路徑 - + Working directory %1 for python job %2 is not readable. Python 行程 %2 作用中的目錄 %1 不具讀取權限。 - + Bad main script file 錯誤的主要腳本檔 - + Main script file %1 for python job %2 is not readable. Python 行程 %2 的主要腳本檔 %1 無法讀取。 - + Boost.Python error in job "%1". 行程 %1 中 Boost.Python 錯誤。 @@ -227,22 +227,27 @@ Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + 模組 <i>%1</i> 需求檢查完成。 + - + Waiting for %n module(s). 正在等待 %n 個模組。 - + (%n second(s)) (%n 秒) - + System-requirements checking is complete. 系統需求檢查完成。 @@ -271,13 +276,13 @@ - + &Yes 是(&Y) - + &No 否(&N) @@ -312,109 +317,109 @@ <br/>以下的模組無法載入: - + Continue with setup? 繼續安裝? - + Continue with installation? 繼續安裝? - + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> %1 設定程式將在您的磁碟上做出變更以設定 %2。<br/><strong>您將無法復原這些變更。</strong> - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 安裝程式將在您的磁碟上做出變更以安裝 %2。<br/><strong>您將無法復原這些變更。</strong> - + &Set up now 馬上進行設定 (&S) - + &Install now 現在安裝 (&I) - + Go &back 上一步 (&B) - + &Set up 設定 (&S) - + &Install 安裝(&I) - + Setup is complete. Close the setup program. 設定完成。關閉設定程式。 - + The installation is complete. Close the installer. 安裝完成。關閉安裝程式。 - + Cancel setup without changing the system. 取消安裝,不更改系統。 - + Cancel installation without changing the system. 不變更系統並取消安裝。 - + &Next 下一步 (&N) - + &Back 返回 (&B) - + &Done 完成(&D) - + &Cancel 取消(&C) - + Cancel setup? 取消設定? - + Cancel installation? 取消安裝? - + Do you really want to cancel the current setup process? The setup program will quit and all changes will be lost. 真的想要取消目前的設定程序嗎? 設定程式將會結束,所有變更都將會遺失。 - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 您真的想要取消目前的安裝程序嗎? @@ -424,22 +429,22 @@ The installer will quit and all changes will be lost. CalamaresPython::Helper - + Unknown exception type 未知的例外型別 - + unparseable Python error 無法解析的 Python 錯誤 - + unparseable Python traceback 無法解析的 Python 回溯紀錄 - + Unfetchable Python error. 無法讀取的 Python 錯誤。 @@ -457,32 +462,32 @@ The installer will quit and all changes will be lost. CalamaresWindow - + Show debug information 顯示除錯資訊 - + &Back 返回 (&B) - + &Next 下一步 (&N) - + &Cancel 取消(&C) - + %1 Setup Program %1 設定程式 - + %1 Installer %1 安裝程式 @@ -679,18 +684,18 @@ The installer will quit and all changes will be lost. CommandList - - + + Could not run command. 無法執行指令。 - + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. 指令執行於主機環境中,且需要知道根路徑,但根掛載點未定義。 - + The command needs to know the user's name, but no username is defined. 指令需要知道使用者名稱,但是使用者名稱未定義。 @@ -743,49 +748,49 @@ The installer will quit and all changes will be lost. 網路安裝。(已停用:無法擷取軟體包清單,請檢查您的網路連線) - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 此電腦未滿足安裝 %1 的最低配備。<br/>設定無法繼續。<a href="#details">詳細資訊...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 此電腦未滿足安裝 %1 的最低配備。<br/>安裝無法繼續。<a href="#details">詳細資訊...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 此電腦未滿足一些安裝 %1 的推薦需求。<br/>設定可以繼續,但部份功能可能會被停用。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 此電腦未滿足一些安裝 %1 的推薦需求。<br/>安裝可以繼續,但部份功能可能會被停用。 - + This program will ask you some questions and set up %2 on your computer. 本程式會問您一些問題,然後在您的電腦安裝及設定 %2。 - - <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>歡迎使用 %1 的 Calamares 安裝程式。</h1> + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>歡迎使用 %1 的 Calamares 安裝程式</h1> - - <h1>Welcome to %1 setup.</h1> - <h1>歡迎使用 %1 安裝程式。</h1> + + <h1>Welcome to %1 setup</h1> + <h1>歡迎使用 %1 安裝程式</h1> - - <h1>Welcome to the Calamares installer for %1.</h1> - <h1>歡迎使用 %1 的 Calamares 安裝程式。</h1> + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>歡迎使用 %1 的 Calamares 安裝程式</h1> - - <h1>Welcome to the %1 installer.</h1> - <h1>歡迎使用 %1 安裝程式。</h1> + + <h1>Welcome to the %1 installer</h1> + <h1>歡迎使用 %1 安裝程式</h1> @@ -1222,37 +1227,37 @@ The installer will quit and all changes will be lost. FillGlobalStorageJob - + Set partition information 設定分割區資訊 - + Install %1 on <strong>new</strong> %2 system partition. 在 <strong>新的</strong>系統分割區 %2 上安裝 %1。 - + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. 設定 <strong>新的</strong> 不含掛載點 <strong>%1</strong> 的 %2 分割區。 - + Install %2 on %3 system partition <strong>%1</strong>. 在 %3 系統分割區 <strong>%1</strong> 上安裝 %2。 - + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. 為分割區 %3 <strong>%1</strong> 設定掛載點 <strong>%2</strong>。 - + Install boot loader on <strong>%1</strong>. 安裝開機載入器於 <strong>%1</strong>。 - + Setting up mount points. 正在設定掛載點。 @@ -1270,32 +1275,32 @@ The installer will quit and all changes will be lost. 現在重新啟動 (&R) - + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. <h1>都完成了。</h1><br/>%1 已經在您的電腦上設定好了。<br/>您現在可能會想要開始使用您的新系統。 - + <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 setup program.</p></body></html> <html><head/><body><p>當這個勾選框被選取時,您的系統將會在按下<span style="font-style:italic;">完成</span>或關閉設定程式時立刻重新啟動。</p></body></html> - + <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>都完成了。</h1><br/>%1 已經安裝在您的電腦上了。<br/>您現在可能會想要重新啟動到您的新系統中,或是繼續使用 %2 Live 環境。 - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> <html><head/><body><p>當這個勾選框被選取時,您的系統將會在按下<span style="font-style:italic;">完成</span>或關閉安裝程式時立刻重新啟動。</p></body></html> - + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. <h1>設定失敗</h1><br/>%1 並未在您的電腦設定好。<br/>錯誤訊息為:%2。 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>安裝失敗</h1><br/>%1 並未安裝到您的電腦上。<br/>錯誤訊息為:%2。 @@ -1303,27 +1308,27 @@ The installer will quit and all changes will be lost. FinishedViewStep - + Finish 完成 - + Setup Complete 設定完成 - + Installation Complete 安裝完成 - + The setup of %1 is complete. %1 的設定完成。 - + The installation of %1 is complete. %1 的安裝已完成。 @@ -1354,72 +1359,72 @@ The installer will quit and all changes will be lost. GeneralRequirements - + has at least %1 GiB available drive space 有至少 %1 GiB 的可用磁碟空間 - + There is not enough drive space. At least %1 GiB is required. 沒有足夠的磁碟空間。至少需要 %1 GiB。 - + has at least %1 GiB working memory 有至少 %1 GiB 的可用記憶體 - + The system does not have enough working memory. At least %1 GiB is required. 系統沒有足夠的記憶體。至少需要 %1 GiB。 - + 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. 系統未連上網際網路 - + is running the installer as an administrator (root) 以管理員 (root) 權限執行安裝程式 - + The setup program is not running with administrator rights. 設定程式並未以管理員權限執行。 - + The installer is not running with administrator rights. 安裝程式並未以管理員權限執行。 - + has a screen large enough to show the whole installer 螢幕夠大,可以顯示整個安裝程式 - + The screen is too small to display the setup program. 螢幕太小了,沒辦法顯示設定程式。 - + The screen is too small to display the installer. 螢幕太小了,沒辦法顯示安裝程式。 @@ -1767,6 +1772,18 @@ The installer will quit and all changes will be lost. 未為 MachineId 設定根掛載點。 + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + 請在地圖上選取您的偏好位置,這樣安裝程式就可以為您建議 + 語系與時區。您可以在下面微調建議的設定。透過拖曳來移動地圖, + 並使用 +/- 按鈕來縮放,或是使用滑鼠滾輪來縮放。 + + NetInstallViewStep @@ -1905,6 +1922,19 @@ The installer will quit and all changes will be lost. 設定 OEM 批次識別符號為 <code>%1</code>。 + + Offline + + + Timezone: %1 + 時區:%1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + 要選取時居,請確保您已連線到網際網路。並在連線後重新啟動安裝程式。您可以在下面微調語言與語系設定。 + + PWQ @@ -2492,107 +2522,107 @@ The installer will quit and all changes will be lost. 分割區 - + Install %1 <strong>alongside</strong> another operating system. 將 %1 安裝在其他作業系統<strong>旁邊</strong>。 - + <strong>Erase</strong> disk and install %1. <strong>抹除</strong>磁碟並安裝 %1。 - + <strong>Replace</strong> a partition with %1. 以 %1 <strong>取代</strong>一個分割區。 - + <strong>Manual</strong> partitioning. <strong>手動</strong>分割 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 將 %1 安裝在磁碟 <strong>%2</strong> (%3) 上的另一個作業系統<strong>旁邊</strong>。 - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>抹除</strong> 磁碟 <strong>%2</strong> (%3) 並且安裝 %1。 - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. 以 %1 <strong>取代</strong> 一個在磁碟 <strong>%2</strong> (%3) 上的分割區。 - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). 在磁碟 <strong>%1</strong> (%2) 上<strong>手動</strong>分割。 - + Disk <strong>%1</strong> (%2) 磁碟 <strong>%1</strong> (%2) - + Current: 目前: - + After: 之後: - + No EFI system partition configured 未設定 EFI 系統分割區 - + 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>%3</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 系統分割區以啟動 %1。<br/><br/>要設定 EFI 系統分割區,回到上一步並選取或建立一個包含啟用 <strong>%3</strong> 旗標以及掛載點位於 <strong>%2</strong> 的 FAT32 檔案系統。<br/><br/>您也可以不設定 EFI 系統分割區並繼續,但是您的系統可能會無法啟動。 - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. 需要 EFI 系統分割區以啟動 %1。<br/><br/>有一個分割區的掛載點設定為 <strong>%2</strong>,但未設定 <strong>%3</strong> 旗標。<br/>要設定此旗標,回到上一步並編輯分割區。<br/><br/>您也可以不設定旗標並繼續,但您的系統可能會無法啟動。 - + EFI system partition flag not set 未設定 EFI 系統分割區旗標 - + Option to use GPT on BIOS 在 BIOS 上使用 GPT 的選項 - + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. GPT 分割表對所有系統都是最佳選項。此安裝程式同時也支援 BIOS 系統。<br/><br/>要在 BIOS 上設定 GPT 分割表,(如果還沒有完成的話)請回上一步並將分割表設定為 GPT,然後建立 8 MB 的未格式化分割區,並啟用 <strong>bios_grub</strong> 旗標。<br/>要在 BIOS 系統上使用 GPT 分割區啟動 %1 則必須使用未格式化的 8MB 分割區。 - + 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. 設定了單獨的開機分割區以及加密的根分割區,但是開機分割區並不會被加密。<br/><br/>這種設定可能會造成安全問題,因為重要的系統檔案是放在未加密的分割區中。<br/>您也可以繼續,但是檔案系統的解鎖會在系統啟動後才發生。<br/>要加密開機分割區,回到上一頁並重新建立它,並在分割區建立視窗選取<strong>加密</strong>。 - + has at least one disk device available. 有至少一個可用的磁碟裝置。 - + There are no partitions to install on. 沒有可用於安裝的分割區。 @@ -2658,14 +2688,14 @@ The installer will quit and all changes will be lost. ProcessResult - + There was no output from the command. 指令沒有輸出。 - + Output: @@ -2674,52 +2704,52 @@ Output: - + External command crashed. 外部指令當機。 - + Command <i>%1</i> crashed. 指令 <i>%1</i> 已當機。 - + External command failed to start. 外部指令啟動失敗。 - + Command <i>%1</i> failed to start. 指令 <i>%1</i> 啟動失敗。 - + 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. 指令 <i>%1</i> 在結束 %2 秒內失敗。 - + External command finished with errors. 外部指令結束時發生錯誤。 - + Command <i>%1</i> finished with exit code %2. 指令 <i>%1</i> 結束時有錯誤碼 %2。 @@ -2727,32 +2757,27 @@ Output: QObject - + %1 (%2) %1 (%2) - - Requirements checking for module <i>%1</i> is complete. - 模組 <i>%1</i> 需求檢查完成。 - - - + unknown 未知 - + extended 延伸分割區 - + unformatted 未格式化 - + swap swap @@ -2806,6 +2831,16 @@ Output: 尚未分割的空間或是不明的分割表 + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>此電腦未滿足部份安裝 %1 的建議系統需求。<br/> + 可以繼續安裝,但某些功能可能會被停用。</p> + + RemoveUserJob @@ -2841,73 +2876,90 @@ Output: 表單 - + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. 選取要在哪裡安裝 %1。<br/><font color="red">警告:</font>這將會刪除所有在選定分割區中的檔案。 - + The selected item does not appear to be a valid partition. 選定的項目似乎不是一個有效的分割區。 - + %1 cannot be installed on empty space. Please select an existing partition. %1 無法在空白的空間中安裝。請選取一個存在的分割區。 - + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. %1 無法在延伸分割區上安裝。請選取一個存在的主要或邏輯分割區。 - + %1 cannot be installed on this partition. %1 無法在此分割區上安裝。 - + Data partition (%1) 資料分割區 (%1) - + Unknown system partition (%1) 不明的系統分割區 (%1) - + %1 system partition (%2) %1 系統分割區 (%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>%4</strong><br/><br/>分割區 %1 對 %2 來說太小了。請選取一個容量至少有 %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>%2</strong><br/><br/>在這個系統找不到 EFI 系統分割區。請回到上一步並使用手動分割以設定 %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. <strong>%3</strong><br/><br/>%1 將會安裝在 %2。<br/><font color="red">警告:</font>所有在分割區 %2 的資料都會消失。 - + The EFI system partition at %1 will be used for starting %2. 在 %1 的 EFI 系統分割區將會在開始 %2 時使用。 - + EFI system partition: EFI 系統分割區: + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + <p>此電腦未滿足安裝 %1 的最低系統需求。<br/> + 無法繼˙續安裝。</p> + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + <p>此電腦未滿足部份安裝 %1 的建議系統需求。<br/> + 可以繼續安裝,但某些功能可能會被停用。</p> + + ResizeFSJob @@ -3030,12 +3082,12 @@ Output: ResultsListDialog - + For best results, please ensure that this computer: 為了得到最佳的結果,請確保此電腦: - + System requirements 系統需求 @@ -3043,27 +3095,27 @@ Output: ResultsListWidget - + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> 此電腦未滿足安裝 %1 的最低配備。<br/>設定無法繼續。<a href="#details">詳細資訊...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> 此電腦未滿足安裝 %1 的最低配備。<br/>安裝無法繼續。<a href="#details">詳細資訊...</a> - + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. 此電腦未滿足一些安裝 %1 的推薦需求。<br/>設定可以繼續,但部份功能可能會被停用。 - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. 此電腦未滿足一些安裝 %1 的推薦需求。<br/>安裝可以繼續,但部份功能可能會被停用。 - + This program will ask you some questions and set up %2 on your computer. 本程式會問您一些問題,然後在您的電腦安裝及設定 %2。 @@ -3346,51 +3398,80 @@ Output: TrackingInstallJob - + Installation feedback 安裝回饋 - + Sending installation feedback. 傳送安裝回饋 - + Internal error in install-tracking. 在安裝追蹤裡的內部錯誤。 - + HTTP request timed out. HTTP 請求逾時。 - TrackingMachineNeonJob + TrackingKUserFeedbackJob + + + KDE user feedback + KDE 使用者回饋 + + + + Configuring KDE user feedback. + 設定 KDE 使用者回饋。 + + + + + Error in KDE user feedback configuration. + KDE 使用者回饋設定錯誤。 + - + + Could not configure KDE user feedback correctly, script error %1. + 無法正確設定 KDE 使用者回饋,指令稿錯誤 %1。 + + + + Could not configure KDE user feedback correctly, Calamares error %1. + 無法正確設定 KDE 使用者回饋,Calamares 錯誤 %1。 + + + + TrackingMachineUpdateManagerJob + + Machine feedback 機器回饋 - + Configuring machine feedback. 設定機器回饋。 - - + + Error in machine feedback configuration. 在機器回饋設定中的錯誤。 - + Could not configure machine feedback correctly, script error %1. 無法正確設定機器回饋,指令稿錯誤 %1。 - + Could not configure machine feedback correctly, Calamares error %1. 無法正確設定機器回饋,Calamares 錯誤 %1。 @@ -3409,8 +3490,8 @@ Output: - <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>選取這個,您不會傳送 <span style=" font-weight:600;">任何關於</span> 您安裝的資訊。</p></body></html> + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + <html><head/><body><p>點擊此處<span style=" font-weight:600;">不會傳送任何</span>關於您安裝的資訊。</p></body></html> @@ -3418,30 +3499,30 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">點選這裡來取得更多關於使用者回饋的資訊</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. - 安裝追蹤協助 %1 看見他們有多少使用者,用什麼硬體安裝 %1 ,以及(下面的最後兩個選項)取得持續性的資訊,如偏好的應用程式等。要檢視傳送了哪些東西,請點選在每個區域旁邊的說明按鈕。 + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + 追蹤可以協助 %1 檢視其安裝頻率、安裝在什麼硬體上以及使用了哪些應用程式。要檢視會傳送哪些資訊,請點擊每個區域旁的說明按鈕。 - - 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. - 選取這個後,您將會傳送關於您的安裝與硬體的資訊。這個資訊將<b>只會傳送一次</b>,且在安裝完成後。 + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + 選取這個後,您將會傳送關於您的安裝與硬體的資訊。這個資訊將只會傳送</b>一次</b>,且在安裝完成後。 - - By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - 選取這個後,您將會<b>週期性地</b>傳送關於您的安裝、硬體與應用程式的資訊給 %1。 + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + 選取這個後,您將會週期性地傳送關於您的<b>機器</b>安裝、硬體與應用程式的資訊給 %1。 - - By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - 選取這個後,您將會<b>經常</b>傳送關於您的安裝、硬體、應用程式與使用模式的資訊給 %1。 + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + 選取這個後,您將會經常傳送關於您的<b>使用者</b>安裝、硬體、應用程式與使用模式的資訊給 %1。 TrackingViewStep - + Feedback 回饋 @@ -3627,42 +3708,42 @@ Output: 發行註記(&R) - + <h1>Welcome to the Calamares setup program for %1.</h1> <h1>歡迎使用 %1 的 Calamares 安裝程式。</h1> - + <h1>Welcome to %1 setup.</h1> <h1>歡迎使用 %1 安裝程式。</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> <h1>歡迎使用 %1 的 Calamares 安裝程式。</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>歡迎使用 %1 安裝程式。</h1> - + %1 support %1 支援 - + About %1 setup 關於 %1 安裝程式 - + About %1 installer 關於 %1 安裝程式 - + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. <h1>%1</h1><br/><strong>%2<br/>為 %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>感謝 <a href="https://calamares.io/team/">Calamares 團隊</a>與 <a href="https://www.transifex.com/calamares/calamares/">Calamares 翻譯團隊</a>。<br/><br/><a href="https://calamares.io/">Calamares</a> 開發由 <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software 贊助。 @@ -3670,7 +3751,7 @@ Output: WelcomeQmlViewStep - + Welcome 歡迎 @@ -3678,7 +3759,7 @@ Output: WelcomeViewStep - + Welcome 歡迎 @@ -3718,6 +3799,28 @@ Output: 返回 + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>語言</h1> </br> + 系統語系設定會影響某些命令列使用者介面元素的語言與字元集。目前的設定為 <strong>%1</strong>。 + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>語系</h1> </br> + 系統語系設定會影響某些命令列使用者介面元素的語言與字元集。目前的設定為 <strong>%1</strong>。 + + + + Back + 返回 + + keyboardq @@ -3763,6 +3866,24 @@ Output: 測試您的鍵盤 + + localeq + + + System language set to %1 + 系統語言設定為 %1 + + + + Numbers and dates locale set to %1 + 數字與日期語系設定為 %1 + + + + Change + 變更 + + notesqml @@ -3836,27 +3957,27 @@ Output: <p>本程式將會問您一些問題並在您的電腦上安裝及設定 %1。</p> - + About 關於 - + Support 支援 - + Known issues 已知問題 - + Release notes 發行記事 - + Donate 捐助 From 560095d6f42474de851a0b2b9e2d73ac469bf197 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 22 Jun 2020 17:11:11 -0400 Subject: [PATCH 163/335] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/calamares.desktop b/calamares.desktop index 68b70b3de..c385e3c91 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -21,6 +21,10 @@ Name[as]=চিছটেম ইনস্তল কৰক Icon[as]=কেলামাৰেচ GenericName[as]=চিছটেম ইনস্তলাৰ Comment[as]=কেলামাৰেচ — চিছটেম​ ইনস্তলাৰ +Name[az]=Sistemi Quraşdırmaq +Icon[az]=calamares +GenericName[az]=Sistem Quraşdırıcısı +Comment[az]=Calamares Sistem Quraşdırıcısı Name[be]=Усталяваць сістэму Icon[be]=calamares GenericName[be]=Усталёўшчык сістэмы @@ -134,6 +138,10 @@ Name[nl]=Installeer systeem Icon[nl]=calamares GenericName[nl]=Installatieprogramma Comment[nl]=Calamares — Installatieprogramma +Name[az_AZ]=Sistemi quraşdırmaq +Icon[az_AZ]=calamares +GenericName[az_AZ]=Sistem quraşdırcısı +Comment[az_AZ]=Calamares — Sistem Quraşdırıcısı Name[pl]=Zainstaluj system Icon[pl]=calamares GenericName[pl]=Instalator systemu From ba46a27b0fa561846a3b220c549a8944c90e3af0 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 22 Jun 2020 17:11:11 -0400 Subject: [PATCH 164/335] i18n: [python] Automatic merge of Transifex translations --- lang/python.pot | 153 ++++--- lang/python/ar/LC_MESSAGES/python.po | 357 +++++++-------- lang/python/as/LC_MESSAGES/python.po | 369 ++++++++-------- lang/python/ast/LC_MESSAGES/python.po | 351 +++++++-------- lang/python/az/LC_MESSAGES/python.mo | Bin 384 -> 8262 bytes lang/python/az/LC_MESSAGES/python.po | 414 +++++++++--------- lang/python/az_AZ/LC_MESSAGES/python.mo | Bin 403 -> 8281 bytes lang/python/az_AZ/LC_MESSAGES/python.po | 414 +++++++++--------- lang/python/be/LC_MESSAGES/python.po | 377 ++++++++-------- lang/python/bg/LC_MESSAGES/python.po | 305 ++++++------- lang/python/bn/LC_MESSAGES/python.po | 287 ++++++------ lang/python/ca/LC_MESSAGES/python.po | 375 ++++++++-------- lang/python/ca@valencia/LC_MESSAGES/python.po | 287 ++++++------ lang/python/cs_CZ/LC_MESSAGES/python.po | 379 ++++++++-------- lang/python/da/LC_MESSAGES/python.po | 373 ++++++++-------- lang/python/de/LC_MESSAGES/python.po | 375 ++++++++-------- lang/python/el/LC_MESSAGES/python.po | 291 ++++++------ lang/python/en_GB/LC_MESSAGES/python.po | 305 ++++++------- lang/python/eo/LC_MESSAGES/python.po | 305 ++++++------- lang/python/es/LC_MESSAGES/python.po | 377 ++++++++-------- lang/python/es_MX/LC_MESSAGES/python.po | 327 +++++++------- lang/python/es_PR/LC_MESSAGES/python.po | 287 ++++++------ lang/python/et/LC_MESSAGES/python.po | 327 +++++++------- lang/python/eu/LC_MESSAGES/python.po | 335 +++++++------- lang/python/fa/LC_MESSAGES/python.po | 369 ++++++++-------- lang/python/fi_FI/LC_MESSAGES/python.po | 369 ++++++++-------- lang/python/fr/LC_MESSAGES/python.po | 379 ++++++++-------- lang/python/fr_CH/LC_MESSAGES/python.po | 287 ++++++------ lang/python/gl/LC_MESSAGES/python.po | 335 +++++++------- lang/python/gu/LC_MESSAGES/python.po | 287 ++++++------ lang/python/he/LC_MESSAGES/python.po | 379 ++++++++-------- lang/python/hi/LC_MESSAGES/python.po | 369 ++++++++-------- lang/python/hr/LC_MESSAGES/python.po | 377 ++++++++-------- lang/python/hu/LC_MESSAGES/python.po | 373 ++++++++-------- lang/python/id/LC_MESSAGES/python.po | 333 +++++++------- lang/python/is/LC_MESSAGES/python.po | 297 ++++++------- lang/python/it_IT/LC_MESSAGES/python.po | 377 ++++++++-------- lang/python/ja/LC_MESSAGES/python.po | 363 +++++++-------- lang/python/kk/LC_MESSAGES/python.po | 287 ++++++------ lang/python/kn/LC_MESSAGES/python.po | 287 ++++++------ lang/python/ko/LC_MESSAGES/python.po | 363 +++++++-------- lang/python/lo/LC_MESSAGES/python.po | 283 ++++++------ lang/python/lt/LC_MESSAGES/python.po | 383 ++++++++-------- lang/python/lv/LC_MESSAGES/python.po | 291 ++++++------ lang/python/mk/LC_MESSAGES/python.po | 321 +++++++------- lang/python/ml/LC_MESSAGES/python.po | 293 +++++++------ lang/python/mr/LC_MESSAGES/python.po | 287 ++++++------ lang/python/nb/LC_MESSAGES/python.po | 291 ++++++------ lang/python/ne_NP/LC_MESSAGES/python.po | 287 ++++++------ lang/python/nl/LC_MESSAGES/python.po | 311 ++++++------- lang/python/pl/LC_MESSAGES/python.po | 367 ++++++++-------- lang/python/pt_BR/LC_MESSAGES/python.po | 375 ++++++++-------- lang/python/pt_PT/LC_MESSAGES/python.po | 375 ++++++++-------- lang/python/ro/LC_MESSAGES/python.po | 309 ++++++------- lang/python/ru/LC_MESSAGES/python.po | 347 +++++++-------- lang/python/sk/LC_MESSAGES/python.po | 375 ++++++++-------- lang/python/sl/LC_MESSAGES/python.po | 295 +++++++------ lang/python/sq/LC_MESSAGES/python.po | 373 ++++++++-------- lang/python/sr/LC_MESSAGES/python.po | 317 +++++++------- lang/python/sr@latin/LC_MESSAGES/python.po | 291 ++++++------ lang/python/sv/LC_MESSAGES/python.po | 373 ++++++++-------- lang/python/th/LC_MESSAGES/python.po | 283 ++++++------ lang/python/tr_TR/LC_MESSAGES/python.po | 373 ++++++++-------- lang/python/uk/LC_MESSAGES/python.po | 381 ++++++++-------- lang/python/ur/LC_MESSAGES/python.po | 287 ++++++------ lang/python/uz/LC_MESSAGES/python.po | 283 ++++++------ lang/python/zh_CN/LC_MESSAGES/python.po | 361 +++++++-------- lang/python/zh_TW/LC_MESSAGES/python.po | 361 +++++++-------- 68 files changed, 11163 insertions(+), 10911 deletions(-) diff --git a/lang/python.pot b/lang/python.pot index 893f3d17f..95fc5da04 100644 --- a/lang/python.pot +++ b/lang/python.pot @@ -2,7 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# #, fuzzy msgid "" msgstr "" @@ -12,19 +12,19 @@ msgstr "" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: \n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: src/modules/grubcfg/main.py:37 msgid "Configure GRUB." -msgstr "" +msgstr "Configure GRUB." #: src/modules/mount/main.py:38 msgid "Mounting partitions." -msgstr "" +msgstr "Mounting partitions." #: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 #: src/modules/initcpiocfg/main.py:209 @@ -36,172 +36,179 @@ msgstr "" #: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 #: src/modules/networkcfg/main.py:48 msgid "Configuration Error" -msgstr "" +msgstr "Configuration Error" #: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 #: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 #: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 #: src/modules/fstab/main.py:333 msgid "No partitions are defined for
{!s}
to use." -msgstr "" +msgstr "No partitions are defined for
{!s}
to use." #: src/modules/services-systemd/main.py:35 msgid "Configure systemd services" -msgstr "" +msgstr "Configure systemd services" #: src/modules/services-systemd/main.py:68 #: src/modules/services-openrc/main.py:102 msgid "Cannot modify service" -msgstr "" +msgstr "Cannot modify service" #: src/modules/services-systemd/main.py:69 msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"systemctl {arg!s} call in chroot returned error code {num!s}." #: src/modules/services-systemd/main.py:72 #: src/modules/services-systemd/main.py:76 msgid "Cannot enable systemd service {name!s}." -msgstr "" +msgstr "Cannot enable systemd service {name!s}." #: src/modules/services-systemd/main.py:74 msgid "Cannot enable systemd target {name!s}." -msgstr "" +msgstr "Cannot enable systemd target {name!s}." #: src/modules/services-systemd/main.py:78 msgid "Cannot disable systemd target {name!s}." -msgstr "" +msgstr "Cannot disable systemd target {name!s}." #: src/modules/services-systemd/main.py:80 msgid "Cannot mask systemd unit {name!s}." -msgstr "" +msgstr "Cannot mask systemd unit {name!s}." #: src/modules/services-systemd/main.py:82 msgid "" -"Unknown systemd commands {command!s} and {suffix!s} for unit {name!s}." +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." #: src/modules/umount/main.py:40 msgid "Unmount file systems." -msgstr "" +msgstr "Unmount file systems." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." -msgstr "" +msgstr "Filling up filesystems." #: src/modules/unpackfs/main.py:257 msgid "rsync failed with error code {}." -msgstr "" +msgstr "rsync failed with error code {}." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "Unpacking image {}/{}, file {}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "Starting to unpack {}" #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "Failed to unpack image \"{}\"" #: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" -msgstr "" +msgstr "No mount point for root partition" #: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" -msgstr "" +msgstr "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" #: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" -msgstr "" +msgstr "Bad mount point for root partition" #: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "rootMountPoint is \"{}\", which does not exist, doing nothing" #: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 #: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" -msgstr "" +msgstr "Bad unsquash configuration" #: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "" +msgstr "The filesystem for \"{}\" ({}) is not supported by your current kernel" #: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" -msgstr "" +msgstr "The source filesystem \"{}\" does not exist" #: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" #: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "" +msgstr "The destination \"{}\" in the target system is not a directory" #: src/modules/displaymanager/main.py:523 msgid "Cannot write KDM configuration file" -msgstr "" +msgstr "Cannot write KDM configuration file" #: src/modules/displaymanager/main.py:524 msgid "KDM config file {!s} does not exist" -msgstr "" +msgstr "KDM config file {!s} does not exist" #: src/modules/displaymanager/main.py:585 msgid "Cannot write LXDM configuration file" -msgstr "" +msgstr "Cannot write LXDM configuration file" #: src/modules/displaymanager/main.py:586 msgid "LXDM config file {!s} does not exist" -msgstr "" +msgstr "LXDM config file {!s} does not exist" #: src/modules/displaymanager/main.py:669 msgid "Cannot write LightDM configuration file" -msgstr "" +msgstr "Cannot write LightDM configuration file" #: src/modules/displaymanager/main.py:670 msgid "LightDM config file {!s} does not exist" -msgstr "" +msgstr "LightDM config file {!s} does not exist" #: src/modules/displaymanager/main.py:744 msgid "Cannot configure LightDM" -msgstr "" +msgstr "Cannot configure LightDM" #: src/modules/displaymanager/main.py:745 msgid "No LightDM greeter installed." -msgstr "" +msgstr "No LightDM greeter installed." #: src/modules/displaymanager/main.py:776 msgid "Cannot write SLIM configuration file" -msgstr "" +msgstr "Cannot write SLIM configuration file" #: src/modules/displaymanager/main.py:777 msgid "SLIM config file {!s} does not exist" -msgstr "" +msgstr "SLIM config file {!s} does not exist" #: src/modules/displaymanager/main.py:903 msgid "No display managers selected for the displaymanager module." -msgstr "" +msgstr "No display managers selected for the displaymanager module." #: src/modules/displaymanager/main.py:904 msgid "" "The displaymanagers list is empty or undefined in bothglobalstorage and " "displaymanager.conf." msgstr "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." #: src/modules/displaymanager/main.py:986 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "Display manager configuration was incomplete" #: src/modules/initcpiocfg/main.py:37 msgid "Configuring mkinitcpio." -msgstr "" +msgstr "Configuring mkinitcpio." #: src/modules/initcpiocfg/main.py:210 #: src/modules/luksopenswaphookcfg/main.py:100 @@ -209,131 +216,139 @@ msgstr "" #: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 #: src/modules/networkcfg/main.py:49 msgid "No root mount point is given for
{!s}
to use." -msgstr "" +msgstr "No root mount point is given for
{!s}
to use." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." -msgstr "" +msgstr "Configuring encrypted swap." #: src/modules/rawfs/main.py:35 msgid "Installing data." -msgstr "" +msgstr "Installing data." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" -msgstr "" +msgstr "Configure OpenRC services" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "" +msgstr "Cannot add service {name!s} to run-level {level!s}." #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "" +msgstr "Cannot remove service {name!s} from run-level {level!s}." #: src/modules/services-openrc/main.py:70 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." #: src/modules/services-openrc/main.py:103 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" +"rc-update {arg!s} call in chroot returned error code {num!s}." #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "" +msgstr "Target runlevel does not exist" #: src/modules/services-openrc/main.py:111 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "" +msgstr "Target service does not exist" #: src/modules/services-openrc/main.py:120 msgid "" -"The path for service {name!s} is {path!s}, which does not exist." +"The path for service {name!s} is {path!s}, which does not " +"exist." msgstr "" +"The path for service {name!s} is {path!s}, which does not " +"exist." #: src/modules/plymouthcfg/main.py:36 msgid "Configure Plymouth theme" -msgstr "" +msgstr "Configure Plymouth theme" #: src/modules/packages/main.py:59 src/modules/packages/main.py:68 #: src/modules/packages/main.py:78 msgid "Install packages." -msgstr "" +msgstr "Install packages." #: src/modules/packages/main.py:66 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Processing packages (%(count)d / %(total)d)" #: src/modules/packages/main.py:71 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Installing one package." +msgstr[1] "Installing %(num)d packages." #: src/modules/packages/main.py:74 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Removing one package." +msgstr[1] "Removing %(num)d packages." #: src/modules/bootloader/main.py:51 msgid "Install bootloader." -msgstr "" +msgstr "Install bootloader." #: src/modules/hwclock/main.py:35 msgid "Setting hardware clock." -msgstr "" +msgstr "Setting hardware clock." #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." -msgstr "" +msgstr "Creating initramfs with dracut." #: src/modules/dracut/main.py:58 msgid "Failed to run dracut on the target" -msgstr "" +msgstr "Failed to run dracut on the target" #: src/modules/dracut/main.py:59 msgid "The exit code was {}" -msgstr "" +msgstr "The exit code was {}" #: src/modules/initramfscfg/main.py:41 msgid "Configuring initramfs." -msgstr "" +msgstr "Configuring initramfs." #: src/modules/openrcdmcryptcfg/main.py:34 msgid "Configuring OpenRC dmcrypt service." -msgstr "" +msgstr "Configuring OpenRC dmcrypt service." #: src/modules/fstab/main.py:38 msgid "Writing fstab." -msgstr "" +msgstr "Writing fstab." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "Dummy python job." #: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 #: src/modules/dummypython/main.py:103 msgid "Dummy python step {}" -msgstr "" +msgstr "Dummy python step {}" #: src/modules/localecfg/main.py:39 msgid "Configuring locales." -msgstr "" +msgstr "Configuring locales." #: src/modules/networkcfg/main.py:37 msgid "Saving network configuration." -msgstr "" +msgstr "Saving network configuration." diff --git a/lang/python/ar/LC_MESSAGES/python.po b/lang/python/ar/LC_MESSAGES/python.po index 3caf285d9..bea1c8aea 100644 --- a/lang/python/ar/LC_MESSAGES/python.po +++ b/lang/python/ar/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: aboodilankaboot, 2019\n" "Language-Team: Arabic (https://www.transifex.com/calamares/teams/20061/ar/)\n" @@ -22,78 +22,74 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "تثبيت الحزم" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "جاري تحميل الحزم (%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "جاري تركيب الأقسام" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "خطأ في الضبط" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "جاري حفظ الإعدادات" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "تعديل خدمات systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "خطأ في الضبط" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "لا يمكن تعديل الخدمة" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "الغاء تحميل ملف النظام" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "الغاء تحميل ملف النظام" + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "جاري ملئ أنظمة الملفات" @@ -110,117 +106,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "تعديل خدمات systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "فشلت كتابة ملف ضبط KDM." -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "لا يمكن تعديل الخدمة" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "ملف ضبط KDM {!s} غير موجود" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "فشلت كتابة ملف ضبط LXDM." -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "ملف ضبط LXDM {!s} غير موجود" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "فشلت كتابة ملف ضبط LightDM." -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "ملف ضبط LightDM {!s} غير موجود" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "فشل ضبط LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "لم يتم تصيب LightDM" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "عملية بايثون دميه" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "فشلت كتابة ملف ضبط SLIM." -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "عملية دميه خطوه بايثون {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "ملف ضبط SLIM {!s} غير موجود" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "تثبيت محمل الإقلاع" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "جاري تركيب الأقسام" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "إعداد مدير العرض لم يكتمل" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -266,6 +266,50 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "تثبيت الحزم" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "جاري تحميل الحزم (%(count)d/%(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "تثبيت محمل الإقلاع" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "جاري إعداد ساعة الهاردوير" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -278,72 +322,31 @@ msgstr "" msgid "The exit code was {}" msgstr "كود الخروج كان {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "فشلت كتابة ملف ضبط KDM." - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "ملف ضبط KDM {!s} غير موجود" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "فشلت كتابة ملف ضبط LXDM." - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "ملف ضبط LXDM {!s} غير موجود" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "فشلت كتابة ملف ضبط LightDM." - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "ملف ضبط LightDM {!s} غير موجود" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "فشل ضبط LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "لم يتم تصيب LightDM" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "فشلت كتابة ملف ضبط SLIM." - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "ملف ضبط SLIM {!s} غير موجود" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "إعداد مدير العرض لم يكتمل" - -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "عملية بايثون دميه" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "جاري إعداد ساعة الهاردوير" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "عملية دميه خطوه بايثون {}" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "جاري حفظ الإعدادات" diff --git a/lang/python/as/LC_MESSAGES/python.po b/lang/python/as/LC_MESSAGES/python.po index c5f7ee697..c50cfdbfe 100644 --- a/lang/python/as/LC_MESSAGES/python.po +++ b/lang/python/as/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Deep Jyoti Choudhury , 2020\n" "Language-Team: Assamese (https://www.transifex.com/calamares/teams/20061/as/)\n" @@ -21,69 +21,75 @@ msgstr "" "Language: as\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "পেকেজ ইন্স্তল কৰক।" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB কনফিগাৰ কৰক।" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "(%(count)d / %(total)d) পেকেজবোৰ সংশোধন কৰি আছে" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "বিভাজন মাউন্ট্ কৰা।" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installing one package." -msgstr[1] "%(num)d পেকেজবোৰ ইনস্তল হৈ আছে।" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "কনফিগাৰেচন ত্ৰুটি" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removing one package." -msgstr[1] "%(num)d পেকেজবোৰ আতৰোৱা হৈ আছে।" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "
{!s}
ৰ ব্যৱহাৰৰ বাবে কোনো বিভাজনৰ বৰ্ণনা দিয়া হোৱা নাই।" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "নেটৱৰ্ক কন্ফিগাৰ জমা কৰি আছে।" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "systemd সেৱা সমুহ কনফিগাৰ কৰক" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "কনফিগাৰেচন ত্ৰুটি" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "সেৱা সমুহৰ সংশোধন কৰিব নোৱাৰি" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "ব্যৱহাৰৰ বাবে
{!s}
ৰ কোনো মাউন্ট্ পাইন্ট্ দিয়া হোৱা নাই।" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "chrootত systemctl {arg!s}ৰ call ক্ৰুটি কোড {num!s}।" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "ফাইল চিছটেম​বোৰ মাউণ্টৰ পৰা আতৰাওক।" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "systemd সেৱা {name!s} সক্ৰিয় কৰিব নোৱাৰি।" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "mkinitcpio কনফিগাৰ কৰি আছে।" +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "systemd গন্তব্য স্থান {name!s} সক্ৰিয় কৰিব নোৱাৰি।" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "
{!s}
ৰ ব্যৱহাৰৰ বাবে কোনো বিভাজনৰ বৰ্ণনা দিয়া হোৱা নাই।" +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "systemd গন্তব্য স্থান {name!s} নিষ্ক্ৰিয় কৰিব নোৱাৰি।" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt সেৱা কন্ফিগাৰ কৰি আছে।" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "systemd একক {name!s} মাস্ক্ কৰিব নোৱাৰি।" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"একক {name!s}ৰ বাবে {command!s} আৰু {suffix!s} " +"অজ্ঞাত systemd কমাণ্ড্।" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "ফাইল চিছটেম​বোৰ মাউণ্টৰ পৰা আতৰাওক।" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -101,40 +107,40 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "ইমেজ \"{}\" খোলাত ব্যৰ্থ হ'ল" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "ৰুট বিভাজনত কোনো মাউণ্ট পইণ্ট্ নাই" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage ত rootMountPoint key নাই, একো কৰিব পৰা নাযায়" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "মুল বিভাজনৰ বাবে বেয়া মাউন্ট্ পইন্ট্" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint হ'ল \"{}\", যিটো উপস্থিত নাই, একো কৰিব পৰা নাযায়" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "বেয়া unsquash কনফিগাৰেচন" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "\"{}\" ফাইল চিছটেম উপস্থিত নাই" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -142,81 +148,85 @@ msgstr "" "unsquashfs বিচৰাত ব্যৰ্থ হ'ল, নিশ্চিত কৰক যে আপুনি squashfs-tools ইন্স্তল " "কৰিছে" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "লক্ষ্যৰ চিছটেম গন্তব্য স্থান \"{}\" এটা ডিৰেক্টৰী নহয়" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "systemd সেৱা সমুহ কনফিগাৰ কৰক" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "সেৱা সমুহৰ সংশোধন কৰিব নোৱাৰি" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM কনফিগ্ ফাইল {!s} উপস্থিত নাই" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "chrootত systemctl {arg!s}ৰ call ক্ৰুটি কোড {num!s}।" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "systemd সেৱা {name!s} সক্ৰিয় কৰিব নোৱাৰি।" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM কনফিগ্ ফাইল {!s} উপস্থিত নাই" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "systemd গন্তব্য স্থান {name!s} সক্ৰিয় কৰিব নোৱাৰি।" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "systemd গন্তব্য স্থান {name!s} নিষ্ক্ৰিয় কৰিব নোৱাৰি।" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM কনফিগ্ ফাইল {!s} উপস্থিত নাই" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "systemd একক {name!s} মাস্ক্ কৰিব নোৱাৰি।" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM কনফিগাৰ কৰিব নোৱাৰি" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"একক {name!s}ৰ বাবে {command!s} আৰু {suffix!s} " -"অজ্ঞাত systemd কমাণ্ড্।" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "কোনো LightDM স্ৱাগতকৰ্তা ইন্স্তল নাই।" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "ডামী Pythonৰ কায্য" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "ডামী Pythonৰ পদক্ষেপ {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM কনফিগ্ ফাইল {!s} উপস্থিত নাই" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "বুতলোডাৰ ইন্স্তল কৰক।" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "displaymanager মডিউলৰ বাবে কোনো ডিস্প্লে প্ৰবন্ধক নাই।" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "স্থানীয়বোৰ কন্ফিগাৰ কৰি আছে।" +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"bothglobalstorage আৰু displaymanager.confত displaymanagers সুচিখন খালী বা " +"অবৰ্ণিত।" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "বিভাজন মাউন্ট্ কৰা।" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "ডিস্প্লে প্ৰবন্ধক কন্ফিগাৰেচন অসমাপ্ত" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Plymouth theme কন্ফিগাৰ কৰি আছে।​" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio কনফিগাৰ কৰি আছে।" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "ব্যৱহাৰৰ বাবে
{!s}
ৰ কোনো মাউন্ট্ পাইন্ট্ দিয়া হোৱা নাই।" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "এন্ক্ৰিপ্টেড স্ৱেপ কন্ফিগাৰ কৰি আছে।" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "fstab লিখি আছে।" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "ডাটা ইন্স্তল কৰি আছে।" #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -264,6 +274,42 @@ msgid "" "exist." msgstr "{name!s}ৰ বাবে পথ হ'ল {path!s} যিটো উপস্থিত নাই।" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouth theme কন্ফিগাৰ কৰি আছে।​" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "পেকেজ ইন্স্তল কৰক।" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "(%(count)d / %(total)d) পেকেজবোৰ সংশোধন কৰি আছে" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installing one package." +msgstr[1] "%(num)d পেকেজবোৰ ইনস্তল হৈ আছে।" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Removing one package." +msgstr[1] "%(num)d পেকেজবোৰ আতৰোৱা হৈ আছে।" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "বুতলোডাৰ ইন্স্তল কৰক।" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "হাৰ্ডৱেৰৰ ঘড়ী চেত্ কৰি আছে।" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "dracutৰ সৈতে initramfs বনাই আছে।" @@ -276,74 +322,31 @@ msgstr "গন্তব্য স্থানত dracut চলোৱাত ব msgid "The exit code was {}" msgstr "এক্সিড্ কোড্ আছিল {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB কনফিগাৰ কৰক।" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM কনফিগ্ ফাইল {!s} উপস্থিত নাই" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM কনফিগ্ ফাইল {!s} উপস্থিত নাই" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM কনফিগ্ ফাইল {!s} উপস্থিত নাই" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDM কনফিগাৰ কৰিব নোৱাৰি" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "কোনো LightDM স্ৱাগতকৰ্তা ইন্স্তল নাই।" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM কনফিগাৰেচন ফাইলত লিখিব নোৱাৰি" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM কনফিগ্ ফাইল {!s} উপস্থিত নাই" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs কন্ফিগাৰ কৰি আছে।" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "displaymanager মডিউলৰ বাবে কোনো ডিস্প্লে প্ৰবন্ধক নাই।" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt সেৱা কন্ফিগাৰ কৰি আছে।" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"bothglobalstorage আৰু displaymanager.confত displaymanagers সুচিখন খালী বা " -"অবৰ্ণিত।" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab লিখি আছে।" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "ডিস্প্লে প্ৰবন্ধক কন্ফিগাৰেচন অসমাপ্ত" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "ডামী Pythonৰ কায্য" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "initramfs কন্ফিগাৰ কৰি আছে।" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "ডামী Pythonৰ পদক্ষেপ {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "হাৰ্ডৱেৰৰ ঘড়ী চেত্ কৰি আছে।" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "স্থানীয়বোৰ কন্ফিগাৰ কৰি আছে।" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "ডাটা ইন্স্তল কৰি আছে।" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "নেটৱৰ্ক কন্ফিগাৰ জমা কৰি আছে।" diff --git a/lang/python/ast/LC_MESSAGES/python.po b/lang/python/ast/LC_MESSAGES/python.po index 0c213587e..502b9a6ed 100644 --- a/lang/python/ast/LC_MESSAGES/python.po +++ b/lang/python/ast/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: enolp , 2020\n" "Language-Team: Asturian (https://www.transifex.com/calamares/teams/20061/ast/)\n" @@ -21,69 +21,73 @@ msgstr "" "Language: ast\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalación de paquetes." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Procesando paquetes (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalando un paquete." -msgstr[1] "Instalando %(num)d paquetes." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Desaniciando un paquete." -msgstr[1] "Desaniciando %(num)d paquetes." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Nun pue modificase'l serviciu" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmontaxe de sistemes de ficheros." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Configurando mkinitcpio." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configurando'l serviciu dmcrypt d'OpenRC." +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontaxe de sistemes de ficheros." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -101,41 +105,41 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Fallu al desempaquetar la imaxe «{}»" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nun hai un puntu de montaxe pa la partición del raigañu" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "globalstorage nun contién una clave «rootMountPoint». Nun va facese nada" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "El puntu de montaxe ye incorreutu pa la partición del raigañu" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint ye «{}» que nun esiste. Nun va facese nada" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "La configuración d'espardimientu ye incorreuta" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "El sistema de ficheros d'orixe «{}» nun esiste" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -143,79 +147,85 @@ msgstr "" "Fallu al alcontrar unsquashfs, asegúrate que tienes instaláu'l paquete " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "El destín «{}» nel sistema de destín nun ye un direutoriu" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" - -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Nun pue modificase'l serviciu" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Nun pue escribise'l ficheru de configuración de KDM" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Nun esiste'l ficheru de configuración de KDM {!s}" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Nun pue escribise'l ficheru de configuración de LXDM" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Nun esiste'l ficheru de configuración de LXDM {!s}" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Nun pue escribise'l ficheru de configuración de LightDM" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Nun esiste'l ficheru de configuración de LightDM {!s}" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Nun pue configurase LightDM" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Trabayu maniquín en Python." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nun s'instaló nengún saludador de LightDM." -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Pasu maniquín {} en Python" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Nun pue escribise'l ficheru de configuración de SLIM" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalando'l xestor d'arrinque." +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Nun esiste'l ficheru de configuración de SLIM {!s}" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Configurando locales." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Nun s'esbillaron xestores de pantalles pal módulu displaymanager." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" +"La llista displaymanagers ta balera o nun se definió en bothglobalstorage y " +"displaymanager.conf." -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "La configuración del xestor de pantalles nun se completó" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Configurando mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Configurando l'intercambéu cifráu." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Instalando datos." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -261,6 +271,42 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalación de paquetes." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Procesando paquetes (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalando un paquete." +msgstr[1] "Instalando %(num)d paquetes." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Desaniciando un paquete." +msgstr[1] "Desaniciando %(num)d paquetes." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalando'l xestor d'arrinque." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Configurando'l reló de hardware." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -273,74 +319,31 @@ msgstr "Fallu al executar dracut nel destín" msgid "The exit code was {}" msgstr "El códigu de salida foi {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Nun pue escribise'l ficheru de configuración de KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Nun esiste'l ficheru de configuración de KDM {!s}" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Nun pue escribise'l ficheru de configuración de LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Nun esiste'l ficheru de configuración de LXDM {!s}" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Nun pue escribise'l ficheru de configuración de LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Nun esiste'l ficheru de configuración de LightDM {!s}" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Nun pue configurase LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nun s'instaló nengún saludador de LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Nun pue escribise'l ficheru de configuración de SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Nun esiste'l ficheru de configuración de SLIM {!s}" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Nun s'esbillaron xestores de pantalles pal módulu displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Configurando'l serviciu dmcrypt d'OpenRC." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -"La llista displaymanagers ta balera o nun se definió en bothglobalstorage y " -"displaymanager.conf." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "La configuración del xestor de pantalles nun se completó" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Trabayu maniquín en Python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Pasu maniquín {} en Python" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Configurando'l reló de hardware." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Configurando locales." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Instalando datos." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" diff --git a/lang/python/az/LC_MESSAGES/python.mo b/lang/python/az/LC_MESSAGES/python.mo index e7b9aa3c33e09c98ab64184228fe1c71e327e34c..30568e957ea98996d28374e3a255160ae0bb25de 100644 GIT binary patch literal 8262 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 delta 69 zcmX@+(7i{tbSOBpbP|^}egVeylWP8E1$@c{x0RRqk B2qFLg diff --git a/lang/python/az/LC_MESSAGES/python.po b/lang/python/az/LC_MESSAGES/python.po index bcefd836c..8c93c8d96 100644 --- a/lang/python/az/LC_MESSAGES/python.po +++ b/lang/python/az/LC_MESSAGES/python.po @@ -3,13 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +# Translators: +# Xəyyam Qocayev , 2020 +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Last-Translator: Xəyyam Qocayev , 2020\n" "Language-Team: Azerbaijani (https://www.transifex.com/calamares/teams/20061/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,320 +21,340 @@ msgstr "" "Language: az\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB tənzimləmələri" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Disk bölmələri qoşulur." + +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Tənzimləmə xətası" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "
{!s}
istifadə etmək üçün bölmələr təyin edilməyib" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Systemd xidmətini tənzimləmək" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Xidmətdə dəyişiklik etmək mümkün olmadı" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"systemctl {arg!s} chroot çağırışına xəta kodu ilə cavab verdi " +"{num!s}." -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "{name!s} systemd xidməti aktiv edilmədi." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "" +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "{name!s} systemd hədəfi aktiv edilmədi" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "" +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "{name!s} systemd hədfi sönsürülmədi." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "{name!s} systemd vahidi maskalanmır." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +"Naməlum systemd əmrləri {command!s}{suffix!s} " +"{name!s} vahidi üçün." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Fayl sistemini ayırmaq." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." -msgstr "" +msgstr "Fayl sistemlərini doldurmaq." #: src/modules/unpackfs/main.py:257 msgid "rsync failed with error code {}." -msgstr "" +msgstr "rsync uğursuz oldu, xəta kodu: {}." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" msgstr "" +"Tərkibi çıxarılan quraşdırma faylı - image {}/{}, çıxarılan faylların sayı " +"{}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "Tərkiblərini açmağa başladılır {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "\"{}\" quraşdırma faylının tərkibini çıxarmaq alınmadı" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" -msgstr "" +msgstr "Kök bölməsi üçün qoşulma nöqtəsi yoxdur" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" +"globalstorage tərkibində bir \"rootMountPoint\" açarı yoxdur, heç bir " +"əməliyyat getmir" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" -msgstr "" +msgstr "Kök bölməsi üçün xətalı qoşulma nöqtəsi" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "rootMountPoint \"{}\" mövcud deyil, heç bir əməliyyat getmir" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" -msgstr "" +msgstr "Unsquash xətalı tənzimlənməsi" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "" +msgstr "\"{}\" ({}) fayl sistemi sizin nüvəniz tərəfindən dəstəklənmir" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" -msgstr "" +msgstr "\"{}\" mənbə fayl sistemi mövcud deyil" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" +"unsquashfs tapılmadı, squashfs-tools paketinin quraşdırıldığına əmin olun" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "" +msgstr "Hədəf sistemində təyin edilən \"{}\", qovluq deyil" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM tənzimləmə faylı yazıla bilmir" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM tənzimləmə faylı yazıla bilmir" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM tənzimləmə faylı yazıla bilmir" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM tənzimlənə bilmir" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM qarşılama quraşdırılmayıb." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLİM tənzimləmə faylı yazıla bilmir" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLİM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "displaymanager modulu üçün ekran menecerləri seçilməyib." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" +"displaymanagers siyahısı boşdur və ya bothglobalstorage və " +"displaymanager.conf tənzimləmə fayllarında təyin edilməyib." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Ekran meneceri tənzimləmələri başa çatmadı" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio tənzimlənir." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" +"
{!s}
istifadə etmək üçün kök qoşulma nöqtəsi təyin edilməyib." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." -msgstr "" +msgstr "Çifrələnmiş mübadilə sahəsi - swap tənzimlənir." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Quraşdırılma tarixi." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" -msgstr "" +msgstr "OpenRC xidmətlərini tənzimləmək" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "" +msgstr "{name!s} xidməti {level!s} işləmə səviyyəsinə əlavə edilə bilmir." #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "" +msgstr "{name!s} xidməti {level!s} iş səviyyəsindən silinə bilmir." #: src/modules/services-openrc/main.py:70 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" +"{level!s} işləmə səviyyəsindəki {name!s} xidməti üçün naməlum " +"{arg!s} xidmət fəaliyyəti." #: src/modules/services-openrc/main.py:103 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" +"rc-update {arg!s} chroot-da çağırışına {num!s} xəta kodu ilə " +"cavab verildi." #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "" +msgstr "Hədəf işləmə səviyyəsi mövcud deyil" #: src/modules/services-openrc/main.py:111 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" +"{level!s} işləmə səviyyəsi üçün {path!s} yolu mövcud deyil." #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "" +msgstr "Hədəf xidməti mövcud deyil" #: src/modules/services-openrc/main.py:120 msgid "" "The path for service {name!s} is {path!s}, which does not " "exist." -msgstr "" +msgstr "{name!s} üçün {path!s} yolu mövcud deyil." -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouth mövzusu tənzimlənməsi" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Paketləri quraşdırmaq." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "(%(count)d / %(total)d) paketləri işlənir" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Bir paket quraşdırılır." +msgstr[1] "%(num)d paket quraşdırılır." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Bir paket silinir" +msgstr[1] "%(num)d paket silinir." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Önyükləyici qurulur." -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Aparat saatını ayarlamaq." -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "Dracut ilə initramfs yaratmaq." -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "" +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "Hədəfdə dracut başladılmadı" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "Çıxış kodu {} idi" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs tənzimlənir." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt xidməti tənzimlənir." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab yazılır." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python işi." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "{} Dummy python addımı" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Lokallaşma tənzimlənir." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Şəbəkə ayarları saxlanılır." diff --git a/lang/python/az_AZ/LC_MESSAGES/python.mo b/lang/python/az_AZ/LC_MESSAGES/python.mo index 4c1bf9a19a2913f41a37517d2f12ed173aaf1c9a..7ecad241f71e5663e7d04d3dd363cd7ac4419684 100644 GIT binary patch literal 8281 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 delta 69 zcmccVFqzrno)F7a1|VPrVi_P-0b*t#)&XJ=umIvnprj>`2C0F8$@YS2lkW?D1ppee B2yOrX diff --git a/lang/python/az_AZ/LC_MESSAGES/python.po b/lang/python/az_AZ/LC_MESSAGES/python.po index e9a495cf9..ede276cf7 100644 --- a/lang/python/az_AZ/LC_MESSAGES/python.po +++ b/lang/python/az_AZ/LC_MESSAGES/python.po @@ -3,13 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +# Translators: +# Xəyyam Qocayev , 2020 +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Last-Translator: Xəyyam Qocayev , 2020\n" "Language-Team: Azerbaijani (Azerbaijan) (https://www.transifex.com/calamares/teams/20061/az_AZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,320 +21,340 @@ msgstr "" "Language: az_AZ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB tənzimləmələri" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Disk bölmələri qoşulur." + +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Tənzimləmə xətası" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "
{!s}
istifadə etmək üçün bölmələr təyin edilməyib" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Systemd xidmətini tənzimləmək" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Xidmətdə dəyişiklik etmək mümkün olmadı" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"systemctl {arg!s} chroot çağırışına xəta kodu ilə cavab verdi " +"{num!s}." -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "{name!s} systemd xidməti aktiv edilmədi." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "" +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "{name!s} systemd hədəfi aktiv edilmədi" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "" +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "{name!s} systemd hədfi sönsürülmədi." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "{name!s} systemd vahidi maskalanmır." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +"Naməlum systemd əmrləri {command!s}{suffix!s} " +"{name!s} vahidi üçün." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Fayl sistemini ayırmaq." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." -msgstr "" +msgstr "Fayl sistemlərini doldurmaq." #: src/modules/unpackfs/main.py:257 msgid "rsync failed with error code {}." -msgstr "" +msgstr "rsync uğursuz oldu, xəta kodu: {}." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" msgstr "" +"Tərkibi çıxarılan quraşdırma faylı - image {}/{}, çıxarılan faylların sayı " +"{}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "Tərkiblərini açmağa başladılır {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "\"{}\" quraşdırma faylının tərkibini çıxarmaq alınmadı" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" -msgstr "" +msgstr "Kök bölməsi üçün qoşulma nöqtəsi yoxdur" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" +"globalstorage tərkibində bir \"rootMountPoint\" açarı yoxdur, heç bir " +"əməliyyat getmir" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" -msgstr "" +msgstr "Kök bölməsi üçün xətalı qoşulma nöqtəsi" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "rootMountPoint \"{}\" mövcud deyil, heç bir əməliyyat getmir" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" -msgstr "" +msgstr "Unsquash xətalı tənzimlənməsi" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "" +msgstr "\"{}\" ({}) fayl sistemi sizin nüvəniz tərəfindən dəstəklənmir" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" -msgstr "" +msgstr "\"{}\" mənbə fayl sistemi mövcud deyil" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" +"unsquashfs tapılmadı, squashfs-tools paketinin quraşdırıldığına əmin olun" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "" +msgstr "Hədəf sistemində təyin edilən \"{}\", qovluq deyil" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM tənzimləmə faylı yazıla bilmir" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM tənzimləmə faylı yazıla bilmir" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM tənzimləmə faylı yazıla bilmir" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM tənzimlənə bilmir" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM qarşılama quraşdırılmayıb." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLİM tənzimləmə faylı yazıla bilmir" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLİM tənzimləmə faylı {!s} mövcud deyil" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "displaymanager modulu üçün ekran menecerləri seçilməyib." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" +"displaymanagers siyahısı boşdur və ya bothglobalstorage və " +"displaymanager.conf tənzimləmə fayllarında təyin edilməyib." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Ekran meneceri tənzimləmələri başa çatmadı" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio tənzimlənir." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" +"
{!s}
istifadə etmək üçün kök qoşulma nöqtəsi təyin edilməyib." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." -msgstr "" +msgstr "Çifrələnmiş mübadilə sahəsi - swap tənzimlənir." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Quraşdırılma tarixi." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" -msgstr "" +msgstr "OpenRC xidmətlərini tənzimləmək" #: src/modules/services-openrc/main.py:66 msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "" +msgstr "{name!s} xidməti {level!s} işləmə səviyyəsinə əlavə edilə bilmir." #: src/modules/services-openrc/main.py:68 msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "" +msgstr "{name!s} xidməti {level!s} iş səviyyəsindən silinə bilmir." #: src/modules/services-openrc/main.py:70 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" +"{level!s} işləmə səviyyəsindəki {name!s} xidməti üçün naməlum " +"{arg!s} xidmət fəaliyyəti." #: src/modules/services-openrc/main.py:103 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" +"rc-update {arg!s} chroot-da çağırışına {num!s} xəta kodu ilə " +"cavab verildi." #: src/modules/services-openrc/main.py:110 msgid "Target runlevel does not exist" -msgstr "" +msgstr "Hədəf işləmə səviyyəsi mövcud deyil" #: src/modules/services-openrc/main.py:111 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" +"{level!s} işləmə səviyyəsi üçün {path!s} yolu mövcud deyil." #: src/modules/services-openrc/main.py:119 msgid "Target service does not exist" -msgstr "" +msgstr "Hədəf xidməti mövcud deyil" #: src/modules/services-openrc/main.py:120 msgid "" "The path for service {name!s} is {path!s}, which does not " "exist." -msgstr "" +msgstr "{name!s} üçün {path!s} yolu mövcud deyil." -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouth mövzusu tənzimlənməsi" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Paketləri quraşdırmaq." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "(%(count)d / %(total)d) paketləri işlənir" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Bir paket quraşdırılır." +msgstr[1] "%(num)d paket quraşdırılır." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Bir paket silinir" +msgstr[1] "%(num)d paket silinir." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Önyükləyici qurulur." -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Aparat saatını ayarlamaq." -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "Dracut ilə initramfs yaratmaq." -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "" +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "Hədəfdə dracut başladılmadı" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "Çıxış kodu {} idi" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs tənzimlənir." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt xidməti tənzimlənir." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab yazılır." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python işi." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "{} Dummy python addımı" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Lokallaşma tənzimlənir." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Şəbəkə ayarları saxlanılır." diff --git a/lang/python/be/LC_MESSAGES/python.po b/lang/python/be/LC_MESSAGES/python.po index d5423d155..f4c7e65e2 100644 --- a/lang/python/be/LC_MESSAGES/python.po +++ b/lang/python/be/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Zmicer Turok , 2020\n" "Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n" @@ -21,73 +21,75 @@ msgstr "" "Language: be\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Усталяваць пакункі." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Наладзіць GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Апрацоўка пакункаў (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Мантаванне раздзелаў." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Усталёўка аднаго пакунка." -msgstr[1] "Усталёўка %(num)d пакункаў." -msgstr[2] "Усталёўка %(num)d пакункаў." -msgstr[3] "Усталёўка%(num)d пакункаў." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Памылка канфігурацыі" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Выдаленне аднаго пакунка." -msgstr[1] "Выдаленне %(num)d пакункаў." -msgstr[2] "Выдаленне %(num)d пакункаў." -msgstr[3] "Выдаленне %(num)d пакункаў." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Раздзелы для
{!s}
не вызначаныя." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Захаванне сеткавай канфігурацыі." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Наладзіць службы systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Памылка канфігурацыі" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Немагчыма наладзіць службу" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "Каранёвы пункт мантавання для
{!s}
не пададзены." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "systemctl {arg!s} у chroot вярнуў код памылкі {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Адмантаваць файлавыя сістэмы." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Немагчыма ўключыць службу systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Наладка mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Немагчыма ўключыць мэту systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Раздзелы для
{!s}
не вызначаныя." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Немагчыма выключыць мэту systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Наладка OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Немагчыма замаскаваць адзінку systemd {name!s}. " + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Невядомыя systemd загады {command!s} і {suffix!s} " +"для адзінкі {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Адмантаваць файлавыя сістэмы." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -105,40 +107,40 @@ msgstr "Распакоўванне вобраза {}/{}, файл {}/{}" msgid "Starting to unpack {}" msgstr "Запуск распакоўвання {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Не атрымалася распакаваць вобраз \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Для каранёвага раздзела няма пункта мантавання" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage не змяшчае ключа \"rootMountPoint\", нічога не выконваецца" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Хібны пункт мантавання для каранёвага раздзела" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint \"{}\" не існуе, нічога не выконваецца" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Хібная канфігурацыя unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Файлавая сістэма для \"{}\" ({}) не падтрымліваецца вашым бягучым ядром" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Зыходная файлавая сістэма \"{}\" не існуе" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -146,81 +148,85 @@ msgstr "" "Не атрымалася знайсці unsquashfs, праверце ці ўсталяваны ў вас пакунак " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Пункт прызначэння \"{}\" у мэтавай сістэме не з’яўляецца каталогам" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Наладзіць службы systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Немагчыма запісаць файл канфігурацыі KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Немагчыма наладзіць службу" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Файл канфігурацыі KDM {!s} не існуе" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "systemctl {arg!s} у chroot вярнуў код памылкі {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Немагчыма запісаць файл канфігурацыі LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Немагчыма ўключыць службу systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Файл канфігурацыі LXDM {!s} не існуе" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Немагчыма ўключыць мэту systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Немагчыма запісаць файл канфігурацыі LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Немагчыма выключыць мэту systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Файл канфігурацыі LightDM {!s} не існуе" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Немагчыма замаскаваць адзінку systemd {name!s}. " +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Немагчыма наладзіць LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Невядомыя systemd загады {command!s} і {suffix!s} " -"для адзінкі {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM greeter не ўсталяваны." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Задача Dummy python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Немагчыма запісаць файл канфігурацыі SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Крок Dummy python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Файл канфігурацыі SLIM {!s} не існуе" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Усталяваць загрузчык." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "У модулі дысплейных кіраўнікоў нічога не абрана." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Наладка лакаляў." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Спіс дысплейных кіраўнікоў пусты альбо не вызначаны ў bothglobalstorage і " +"displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Мантаванне раздзелаў." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Наладка дысплейнага кіраўніка не завершаная." -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Наладзіць тэму Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Наладка mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "Каранёвы пункт мантавання для
{!s}
не пададзены." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Наладка зашыфраванага swap." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Запіс fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Усталёўка даных." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -268,6 +274,46 @@ msgid "" "exist." msgstr "Шлях {path!s} да службы {level!s} не існуе." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Наладзіць тэму Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Усталяваць пакункі." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Апрацоўка пакункаў (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Усталёўка аднаго пакунка." +msgstr[1] "Усталёўка %(num)d пакункаў." +msgstr[2] "Усталёўка %(num)d пакункаў." +msgstr[3] "Усталёўка%(num)d пакункаў." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Выдаленне аднаго пакунка." +msgstr[1] "Выдаленне %(num)d пакункаў." +msgstr[2] "Выдаленне %(num)d пакункаў." +msgstr[3] "Выдаленне %(num)d пакункаў." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Усталяваць загрузчык." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Наладка апаратнага гадзінніка." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Стварэнне initramfs з dracut." @@ -280,74 +326,31 @@ msgstr "Не атрымалася запусціць dracut у пункце пр msgid "The exit code was {}" msgstr "Код выхаду {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Наладзіць GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Немагчыма запісаць файл канфігурацыі KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Файл канфігурацыі KDM {!s} не існуе" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Немагчыма запісаць файл канфігурацыі LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Файл канфігурацыі LXDM {!s} не існуе" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Немагчыма запісаць файл канфігурацыі LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Файл канфігурацыі LightDM {!s} не існуе" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Немагчыма наладзіць LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "LightDM greeter не ўсталяваны." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Немагчыма запісаць файл канфігурацыі SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Файл канфігурацыі SLIM {!s} не існуе" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Наладка initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "У модулі дысплейных кіраўнікоў нічога не абрана." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Наладка OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Спіс дысплейных кіраўнікоў пусты альбо не вызначаны ў bothglobalstorage і " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Запіс fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Наладка дысплейнага кіраўніка не завершаная." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Задача Dummy python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Наладка initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Крок Dummy python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Наладка апаратнага гадзінніка." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Наладка лакаляў." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Усталёўка даных." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Захаванне сеткавай канфігурацыі." diff --git a/lang/python/bg/LC_MESSAGES/python.po b/lang/python/bg/LC_MESSAGES/python.po index f61bc47f0..b05e10126 100644 --- a/lang/python/bg/LC_MESSAGES/python.po +++ b/lang/python/bg/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Georgi Georgiev , 2020\n" "Language-Team: Bulgarian (https://www.transifex.com/calamares/teams/20061/bg/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Инсталирай пакетите." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Обработване на пакетите (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Инсталиране на един пакет." -msgstr[1] "Инсталиране на %(num)d пакети." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Премахване на един пакет." -msgstr[1] "Премахване на %(num)d пакети." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Демонтирай файловите системи." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Демонтирай файловите системи." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Фиктивна задача на python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Фиктивна стъпка на python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Инсталирай пакетите." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Обработване на пакетите (%(count)d / %(total)d)" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Инсталиране на един пакет." +msgstr[1] "Инсталиране на %(num)d пакети." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Премахване на един пакет." +msgstr[1] "Премахване на %(num)d пакети." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Фиктивна задача на python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Фиктивна стъпка на python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/bn/LC_MESSAGES/python.po b/lang/python/bn/LC_MESSAGES/python.po index c0feed0ec..529799daf 100644 --- a/lang/python/bn/LC_MESSAGES/python.po +++ b/lang/python/bn/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Bengali (https://www.transifex.com/calamares/teams/20061/bn/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: bn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/ca/LC_MESSAGES/python.po b/lang/python/ca/LC_MESSAGES/python.po index 2dc513d6a..4549b1e17 100644 --- a/lang/python/ca/LC_MESSAGES/python.po +++ b/lang/python/ca/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Davidmp , 2020\n" "Language-Team: Catalan (https://www.transifex.com/calamares/teams/20061/ca/)\n" @@ -21,70 +21,77 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instal·la els paquets." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Configura el GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Es processen paquets (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Es munten les particions." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "S'instal·la un paquet." -msgstr[1] "S'instal·len %(num)d paquets." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Error de configuració" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Se suprimeix un paquet." -msgstr[1] "Se suprimeixen %(num)d paquets." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "No s'han definit particions perquè les usi
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Es desa la configuració de la xarxa." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Configura els serveis de systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Error de configuració" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "No es pot modificar el servei." -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"No s'ha proporcionat el punt de muntatge perquè l'usi
{!s}
." +"La crida de systemctl {arg!s} a chroot ha retornat el codi " +"d'error {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmunta els sistemes de fitxers." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "No es pot habilitar el servei de systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Es configura mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "No es pot habilitar la destinació de systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "No s'han definit particions perquè les usi
{!s}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "No es pot inhabilitar la destinació de systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Es configura el sevei OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "No es pot emmascarar la unitat de systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Ordres desconegudes de systemd: {command!s} i " +"{suffix!s}, per a la unitat {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmunta els sistemes de fitxers." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -102,40 +109,40 @@ msgstr "Es desempaqueta la imatge {}/{}, fitxer {}/{}" msgid "Starting to unpack {}" msgstr "Es comença a desempaquetar {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Ha fallat desempaquetar la imatge \"{}\"." -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "No hi ha punt de muntatge per a la partició d'arrel." -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage no conté cap clau de \"rootMountPoint\". No es fa res." -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Punt de muntatge incorrecte per a la partició d'arrel" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "El punt de muntatge d'arrel és \"{}\", que no existeix. No es fa res." -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Configuració incorrecta d'unsquash." -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "El sistema de fitxers per a {} ({}) no és admès pel nucli actual." -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "El sistema de fitxers font \"{}\" no existeix." -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -143,83 +150,87 @@ msgstr "" "Ha fallat trobar unsquashfs, assegureu-vos que tingueu el paquet squashfs-" "tools instal·lat." -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "La destinació \"{}\" al sistema de destinació no és un directori." -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configura els serveis de systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "No es pot escriure el fitxer de configuració del KDM." -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "No es pot modificar el servei." +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "El fitxer de configuració del KDM {!s} no existeix." -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"La crida de systemctl {arg!s} a chroot ha retornat el codi " -"d'error {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "No es pot escriure el fitxer de configuració de l'LXDM." -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "No es pot habilitar el servei de systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "El fitxer de configuració de l'LXDM {!s} no existeix." -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "No es pot habilitar la destinació de systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "No es pot escriure el fitxer de configuració del LightDM." -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "No es pot inhabilitar la destinació de systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "El fitxer de configuració del LightDM {!s} no existeix." -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "No es pot emmascarar la unitat de systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "No es pot configurar el LightDM." -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Ordres desconegudes de systemd: {command!s} i " -"{suffix!s}, per a la unitat {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "No hi ha benvinguda instal·lada per al LightDM." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tasca de python fictícia." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "No es pot escriure el fitxer de configuració de l'SLIM." -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Pas de python fitctici {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "El fitxer de configuració de l'SLIM {!s} no existeix." -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "S'instal·la el carregador d'arrencada." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" +"No hi ha cap gestor de pantalla seleccionat per al mòdul displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Es configuren les llengües." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"La llista de gestors de pantalla és buida o no definida a bothglobalstorage " +"i displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Es munten les particions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "La configuració del gestor de pantalla no era completa." -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configura el tema del Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Es configura mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"No s'ha proporcionat el punt de muntatge perquè l'usi
{!s}
." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Es configura l'intercanvi encriptat." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "S'escriu fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "S'instal·len dades." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -272,6 +283,42 @@ msgid "" msgstr "" "El camí per al servei {name!s} és {path!s}, però no existeix." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Configura el tema del Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instal·la els paquets." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Es processen paquets (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "S'instal·la un paquet." +msgstr[1] "S'instal·len %(num)d paquets." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Se suprimeix un paquet." +msgstr[1] "Se suprimeixen %(num)d paquets." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "S'instal·la el carregador d'arrencada." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "S'estableix el rellotge del maquinari." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Es creen initramfs amb dracut." @@ -284,75 +331,31 @@ msgstr "Ha fallat executar dracut a la destinació." msgid "The exit code was {}" msgstr "El codi de sortida ha estat {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configura el GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "No es pot escriure el fitxer de configuració del KDM." - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "El fitxer de configuració del KDM {!s} no existeix." - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "No es pot escriure el fitxer de configuració de l'LXDM." - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "El fitxer de configuració de l'LXDM {!s} no existeix." - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "No es pot escriure el fitxer de configuració del LightDM." - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "El fitxer de configuració del LightDM {!s} no existeix." - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "No es pot configurar el LightDM." - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "No hi ha benvinguda instal·lada per al LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "No es pot escriure el fitxer de configuració de l'SLIM." - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "El fitxer de configuració de l'SLIM {!s} no existeix." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Es configuren initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" -"No hi ha cap gestor de pantalla seleccionat per al mòdul displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Es configura el sevei OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"La llista de gestors de pantalla és buida o no definida a bothglobalstorage " -"i displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "S'escriu fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "La configuració del gestor de pantalla no era completa." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tasca de python fictícia." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Es configuren initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Pas de python fitctici {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "S'estableix el rellotge del maquinari." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Es configuren les llengües." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "S'instal·len dades." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Es desa la configuració de la xarxa." diff --git a/lang/python/ca@valencia/LC_MESSAGES/python.po b/lang/python/ca@valencia/LC_MESSAGES/python.po index 89cb446b7..e33bba2dd 100644 --- a/lang/python/ca@valencia/LC_MESSAGES/python.po +++ b/lang/python/ca@valencia/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Catalan (Valencian) (https://www.transifex.com/calamares/teams/20061/ca@valencia/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: ca@valencia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/cs_CZ/LC_MESSAGES/python.po b/lang/python/cs_CZ/LC_MESSAGES/python.po index 5c79debcd..e2b0e6596 100644 --- a/lang/python/cs_CZ/LC_MESSAGES/python.po +++ b/lang/python/cs_CZ/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Pavel Borecki , 2020\n" "Language-Team: Czech (Czech Republic) (https://www.transifex.com/calamares/teams/20061/cs_CZ/)\n" @@ -22,73 +22,76 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalovat balíčky." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Nastavování zavaděče GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Zpracovávání balíčků (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Připojování oddílů." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Je instalován jeden balíček." -msgstr[1] "Jsou instalovány %(num)d balíčky." -msgstr[2] "Je instalováno %(num)d balíčků." -msgstr[3] "Je instalováno %(num)d balíčků." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Chyba nastavení" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Odebírá se jeden balíček." -msgstr[1] "Odebírají se %(num)d balíčky." -msgstr[2] "Odebírá se %(num)d balíčků." -msgstr[3] "Odebírá se %(num)d balíčků." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Pro
{!s}
nejsou zadány žádné oddíly." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Ukládání nastavení sítě." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Nastavit služby systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Chyba nastavení" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Službu se nedaří upravit" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "Pro
{!s}
není zadán žádný přípojný bod." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"Volání systemctl {arg!s} v chroot vrátilo chybový kód {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Odpojit souborové systémy." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Nedaří se zapnout systemd službu {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Nastavování mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Nedaří se zapnout systemd službu {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Pro
{!s}
nejsou zadány žádné oddíly." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Nedaří se vypnout systemd cíl {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Nastavování služby OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Nedaří se maskovat systemd jednotku {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Neznámé systemd příkazy {command!s} a {suffix!s} " +"pro jednotku {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odpojit souborové systémy." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -106,42 +109,42 @@ msgstr "Rozbalování obrazu {}/{}, soubor {}/{}" msgid "Starting to unpack {}" msgstr "Zahajování rozbalení {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Nepodařilo se rozbalit obraz „{}“" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Žádný přípojný bot pro kořenový oddíl" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage neobsahuje klíč „rootMountPoint“ – nic se nebude dělat" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Chybný přípojný bod pro kořenový oddíl" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "kořenovýPřípojnýBod je „{}“, který neexistuje – nic se nebude dělat" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Chybná nastavení unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" "Souborový systém „{}“ ({}) není jádrem systému, které právě používáte, " "podporován" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Zdrojový souborový systém „{}“ neexistuje" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -149,82 +152,85 @@ msgstr "" "Nepodařilo se nalézt unsquashfs – ověřte, že máte nainstalovaný balíček " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Cíl „{}“ v cílovém systému není složka" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Nastavit služby systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Nedaří se zapsat soubor s nastaveními pro KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Službu se nedaří upravit" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Soubor s nastaveními pro KDM {!s} neexistuje" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"Volání systemctl {arg!s} v chroot vrátilo chybový kód {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Nedaří se zapsat soubor s nastaveními pro LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Nedaří se zapnout systemd službu {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Soubor s nastaveními pro LXDM {!s} neexistuje" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Nedaří se zapnout systemd službu {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Nedaří se zapsat soubor s nastaveními pro LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Nedaří se vypnout systemd cíl {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Soubor s nastaveními pro LightDM {!s} neexistuje" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Nedaří se maskovat systemd jednotku {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Nedaří se nastavit LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Neznámé systemd příkazy {command!s} a {suffix!s} " -"pro jednotku {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Není nainstalovaný žádný LightDM přivítač" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Testovací úloha python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Nedaří se zapsat soubor s nastaveními pro SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Testovací krok {} python." +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Soubor s nastaveními pro SLIM {!s} neexistuje" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalace zavaděče systému." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Pro modul správce sezení nejsou vybrány žádní správci sezení." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Nastavování místních a jazykových nastavení." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Seznam správců displejů je prázdný nebo není definován v bothglobalstorage a" +" displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Připojování oddílů." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Nastavení správce displeje nebylo úplné" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Nastavit téma vzhledu pro Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Nastavování mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "Pro
{!s}
není zadán žádný přípojný bod." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Nastavování šifrovaného prostoru pro odkládání stránek paměti." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Zapisování fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Instalace dat." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -278,6 +284,46 @@ msgstr "" "Popis umístění pro službu {name!s} je {path!s}, která " "neexistuje." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Nastavit téma vzhledu pro Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalovat balíčky." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Zpracovávání balíčků (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Je instalován jeden balíček." +msgstr[1] "Jsou instalovány %(num)d balíčky." +msgstr[2] "Je instalováno %(num)d balíčků." +msgstr[3] "Je instalováno %(num)d balíčků." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Odebírá se jeden balíček." +msgstr[1] "Odebírají se %(num)d balíčky." +msgstr[2] "Odebírá se %(num)d balíčků." +msgstr[3] "Odebírá se %(num)d balíčků." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalace zavaděče systému." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Nastavování hardwarových hodin." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Vytváření initramfs s dracut." @@ -290,74 +336,31 @@ msgstr "Na cíli se nepodařilo spustit dracut" msgid "The exit code was {}" msgstr "Návratový kód byl {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Nastavování zavaděče GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Nedaří se zapsat soubor s nastaveními pro KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Soubor s nastaveními pro KDM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Nedaří se zapsat soubor s nastaveními pro LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Soubor s nastaveními pro LXDM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Nedaří se zapsat soubor s nastaveními pro LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Soubor s nastaveními pro LightDM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Nedaří se nastavit LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Není nainstalovaný žádný LightDM přivítač" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Nedaří se zapsat soubor s nastaveními pro SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Soubor s nastaveními pro SLIM {!s} neexistuje" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Nastavování initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Pro modul správce sezení nejsou vybrány žádní správci sezení." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Nastavování služby OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Seznam správců displejů je prázdný nebo není definován v bothglobalstorage a" -" displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Zapisování fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Nastavení správce displeje nebylo úplné" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Testovací úloha python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Nastavování initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Testovací krok {} python." -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Nastavování hardwarových hodin." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Nastavování místních a jazykových nastavení." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Instalace dat." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Ukládání nastavení sítě." diff --git a/lang/python/da/LC_MESSAGES/python.po b/lang/python/da/LC_MESSAGES/python.po index 056316d97..3aa90eaad 100644 --- a/lang/python/da/LC_MESSAGES/python.po +++ b/lang/python/da/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: scootergrisen, 2020\n" "Language-Team: Danish (https://www.transifex.com/calamares/teams/20061/da/)\n" @@ -22,70 +22,76 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Installér pakker." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Konfigurer GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Forarbejder pakker (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Monterer partitioner." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installerer én pakke." -msgstr[1] "Installerer %(num)d pakker." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Fejl ved konfiguration" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Fjerner én pakke." -msgstr[1] "Fjerner %(num)d pakker." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Der er ikke angivet nogle partitioner som
{!s}
skal bruge." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Gemmer netværkskonfiguration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfigurer systemd-tjenester" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Fejl ved konfiguration" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Kan ikke redigere tjeneste" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Der er ikke angivet noget rodmonteringspunkt som
{!s}
skal bruge." +"systemctl {arg!s}-kald i chroot returnerede fejlkoden {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Afmonter filsystemer." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Kan ikke aktivere systemd-tjenesten {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfigurerer mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Kan ikke aktivere systemd-målet {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Der er ikke angivet nogle partitioner som
{!s}
skal bruge." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Kan ikke deaktivere systemd-målet {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Konfigurerer OpenRC dmcrypt-tjeneste." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Kan ikke maskere systemd-enheden {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Ukendte systemd-kommandoer {command!s} og " +"{suffix!s} til enheden {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Afmonter filsystemer." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -103,40 +109,40 @@ msgstr "Udpakker aftrykket {}/{}, filen {}/{}" msgid "Starting to unpack {}" msgstr "Begynder at udpakke {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Kunne ikke udpakke aftrykket \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Intet monteringspunkt til rodpartition" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage indeholder ikke en \"rootMountPoint\"-nøgle, gør intet" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Dårligt monteringspunkt til rodpartition" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint er \"{}\", hvilket ikke findes, gør intet" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Dårlig unsquash-konfiguration" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Filsystemet til \"{}\" ({}) understøttes ikke af din nuværende kerne" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Kildefilsystemet \"{}\" findes ikke" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -144,82 +150,87 @@ msgstr "" "Kunne ikke finde unsquashfs, sørg for at squashfs-tools-pakken er " "installeret" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Destinationen \"{}\" i målsystemet er ikke en mappe" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfigurer systemd-tjenester" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Kan ikke skrive KDM-konfigurationsfil" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Kan ikke redigere tjeneste" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM-konfigurationsfil {!s} findes ikke" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s}-kald i chroot returnerede fejlkoden {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Kan ikke skrive LXDM-konfigurationsfil" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Kan ikke aktivere systemd-tjenesten {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM-konfigurationsfil {!s} findes ikke" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Kan ikke aktivere systemd-målet {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Kan ikke skrive LightDM-konfigurationsfil" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Kan ikke deaktivere systemd-målet {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM-konfigurationsfil {!s} findes ikke" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Kan ikke maskere systemd-enheden {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Kan ikke konfigurerer LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Ukendte systemd-kommandoer {command!s} og " -"{suffix!s} til enheden {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Der er ikke installeret nogen LightDM greeter." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy python-job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Kan ikke skrive SLIM-konfigurationsfil" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python-trin {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM-konfigurationsfil {!s} findes ikke" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Installér bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" +"Der er ikke valgt nogen displayhåndteringer til displayhåndtering-modulet." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfigurerer lokaliteter." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Listen over displayhåndteringer er tom eller udefineret i bothglobalstorage " +"og displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Monterer partitioner." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Displayhåndtering-konfiguration er ikke komplet" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfigurer Plymouth-tema" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfigurerer mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Der er ikke angivet noget rodmonteringspunkt som
{!s}
skal bruge." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfigurerer krypteret swap." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Skriver fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Installerer data." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -270,6 +281,42 @@ msgid "" msgstr "" "Stien til tjenesten {name!s} er {path!s}, som ikke findes." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfigurer Plymouth-tema" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Installér pakker." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Forarbejder pakker (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installerer én pakke." +msgstr[1] "Installerer %(num)d pakker." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Fjerner én pakke." +msgstr[1] "Fjerner %(num)d pakker." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Installér bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Indstiller hardwareur." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Opretter initramfs med dracut." @@ -282,75 +329,31 @@ msgstr "Kunne ikke køre dracut på målet" msgid "The exit code was {}" msgstr "Afslutningskoden var {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Konfigurer GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Kan ikke skrive KDM-konfigurationsfil" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM-konfigurationsfil {!s} findes ikke" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Kan ikke skrive LXDM-konfigurationsfil" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM-konfigurationsfil {!s} findes ikke" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Kan ikke skrive LightDM-konfigurationsfil" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM-konfigurationsfil {!s} findes ikke" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Kan ikke konfigurerer LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Der er ikke installeret nogen LightDM greeter." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Kan ikke skrive SLIM-konfigurationsfil" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM-konfigurationsfil {!s} findes ikke" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfigurerer initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" -"Der er ikke valgt nogen displayhåndteringer til displayhåndtering-modulet." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Konfigurerer OpenRC dmcrypt-tjeneste." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Listen over displayhåndteringer er tom eller udefineret i bothglobalstorage " -"og displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Skriver fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Displayhåndtering-konfiguration er ikke komplet" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python-job." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfigurerer initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy python-trin {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Indstiller hardwareur." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfigurerer lokaliteter." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Installerer data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Gemmer netværkskonfiguration." diff --git a/lang/python/de/LC_MESSAGES/python.po b/lang/python/de/LC_MESSAGES/python.po index 19bd1c911..25e2e98d3 100644 --- a/lang/python/de/LC_MESSAGES/python.po +++ b/lang/python/de/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Andreas Eitel , 2020\n" "Language-Team: German (https://www.transifex.com/calamares/teams/20061/de/)\n" @@ -23,71 +23,77 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Pakete installieren " +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB konfigurieren." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Verarbeite Pakete (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Hänge Partitionen ein." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installiere ein Paket" -msgstr[1] "Installiere %(num)d Pakete." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Konfigurationsfehler" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Entferne ein Paket" -msgstr[1] "Entferne %(num)d Pakete." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Für
{!s}
sind keine zu verwendenden Partitionen definiert." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Speichere Netzwerkkonfiguration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfiguriere systemd-Dienste" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Konfigurationsfehler" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Der Dienst kann nicht geändert werden." -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Für
{!s}
wurde kein Einhängepunkt für die Root-Partition " -"angegeben." +"systemctl {arg!s} Aufruf in chroot lieferte Fehlercode {num!s} " +"zurück." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Dateisysteme aushängen." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Der systemd-Dienst {name!s} kann nicht aktiviert werden." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfiguriere mkinitcpio. " +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Das systemd-Ziel {name!s} kann nicht aktiviert werden." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Für
{!s}
sind keine zu verwendenden Partitionen definiert." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Das systemd-Ziel {name!s} kann nicht deaktiviert werden." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Konfiguriere den dmcrypt-Dienst von OpenRC." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Die systemd-Einheit {name!s} kann nicht maskiert werden." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Unbekannte systemd-Befehle {command!s} und " +"{suffix!s} für Einheit {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Dateisysteme aushängen." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -105,43 +111,43 @@ msgstr "Bild Entpacken {}/{}, Datei {}/{}" msgid "Starting to unpack {}" msgstr "Beginn des Entpackens {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Entpacken des Image \"{}\" fehlgeschlagen" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Kein Einhängepunkt für die Root-Partition" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "globalstorage enthält keinen Schlüssel namens \"rootMountPoint\", tue nichts" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Ungültiger Einhängepunkt für die Root-Partition" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint ist \"{}\", welcher nicht existiert, tue nichts" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Ungültige unsquash-Konfiguration" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" "Das Dateisystem für \"{}\". ({}) wird von Ihrem aktuellen Kernel nicht " "unterstützt" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Das Quelldateisystem \"{}\" existiert nicht" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -149,83 +155,87 @@ msgstr "" "Konnte unsquashfs nicht finden, stellen Sie sicher, dass Sie das Paket " "namens squashfs-tools installiert haben" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Das Ziel \"{}\" im Zielsystem ist kein Verzeichnis" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfiguriere systemd-Dienste" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Schreiben der KDM-Konfigurationsdatei nicht möglich" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Der Dienst kann nicht geändert werden." +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM-Konfigurationsdatei {!s} existiert nicht" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} Aufruf in chroot lieferte Fehlercode {num!s} " -"zurück." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Schreiben der LXDM-Konfigurationsdatei nicht möglich" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Der systemd-Dienst {name!s} kann nicht aktiviert werden." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM-Konfigurationsdatei {!s} existiert nicht" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Das systemd-Ziel {name!s} kann nicht aktiviert werden." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Schreiben der LightDM-Konfigurationsdatei nicht möglich" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Das systemd-Ziel {name!s} kann nicht deaktiviert werden." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM-Konfigurationsdatei {!s} existiert nicht" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Die systemd-Einheit {name!s} kann nicht maskiert werden." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Konfiguration von LightDM ist nicht möglich" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Unbekannte systemd-Befehle {command!s} und " -"{suffix!s} für Einheit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Keine Benutzeroberfläche für LightDM installiert." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy Python-Job" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Schreiben der SLIM-Konfigurationsdatei nicht möglich" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy Python-Schritt {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM-Konfigurationsdatei {!s} existiert nicht" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Installiere Bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Keine Displaymanager für das Displaymanager-Modul ausgewählt." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfiguriere Lokalisierungen." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Die Liste der Displaymanager ist leer oder weder in globalstorage noch in " +"displaymanager.conf definiert." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Hänge Partitionen ein." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Die Konfiguration des Displaymanager war unvollständig." -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfiguriere Plymouth-Thema" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfiguriere mkinitcpio. " + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Für
{!s}
wurde kein Einhängepunkt für die Root-Partition " +"angegeben." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfiguriere verschlüsselten Auslagerungsspeicher." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Schreibe fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Installiere Daten." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -278,6 +288,42 @@ msgstr "" "Der Pfad für den Dienst {name!s} is {path!s}, welcher nicht " "existiert." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfiguriere Plymouth-Thema" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Pakete installieren " + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Verarbeite Pakete (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installiere ein Paket" +msgstr[1] "Installiere %(num)d Pakete." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Entferne ein Paket" +msgstr[1] "Entferne %(num)d Pakete." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Installiere Bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Einstellen der Hardware-Uhr." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Erstelle initramfs mit dracut." @@ -290,74 +336,31 @@ msgstr "Ausführen von dracut auf dem Ziel schlug fehl" msgid "The exit code was {}" msgstr "Der Exit-Code war {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB konfigurieren." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Schreiben der KDM-Konfigurationsdatei nicht möglich" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM-Konfigurationsdatei {!s} existiert nicht" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Schreiben der LXDM-Konfigurationsdatei nicht möglich" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM-Konfigurationsdatei {!s} existiert nicht" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Schreiben der LightDM-Konfigurationsdatei nicht möglich" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM-Konfigurationsdatei {!s} existiert nicht" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Konfiguration von LightDM ist nicht möglich" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Keine Benutzeroberfläche für LightDM installiert." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Schreiben der SLIM-Konfigurationsdatei nicht möglich" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM-Konfigurationsdatei {!s} existiert nicht" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfiguriere initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Keine Displaymanager für das Displaymanager-Modul ausgewählt." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Konfiguriere den dmcrypt-Dienst von OpenRC." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Die Liste der Displaymanager ist leer oder weder in globalstorage noch in " -"displaymanager.conf definiert." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Schreibe fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Die Konfiguration des Displaymanager war unvollständig." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy Python-Job" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfiguriere initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy Python-Schritt {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Einstellen der Hardware-Uhr." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfiguriere Lokalisierungen." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Installiere Daten." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Speichere Netzwerkkonfiguration." diff --git a/lang/python/el/LC_MESSAGES/python.po b/lang/python/el/LC_MESSAGES/python.po index f0d9c109e..95a2c90eb 100644 --- a/lang/python/el/LC_MESSAGES/python.po +++ b/lang/python/el/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Efstathios Iosifidis , 2017\n" "Language-Team: Greek (https://www.transifex.com/calamares/teams/20061/el/)\n" @@ -21,68 +21,72 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "εγκατάσταση πακέτων." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "εγκατάσταση πακέτων." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/en_GB/LC_MESSAGES/python.po b/lang/python/en_GB/LC_MESSAGES/python.po index 745b1fef2..17fc8db1e 100644 --- a/lang/python/en_GB/LC_MESSAGES/python.po +++ b/lang/python/en_GB/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Jason Collins , 2018\n" "Language-Team: English (United Kingdom) (https://www.transifex.com/calamares/teams/20061/en_GB/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installing one package." -msgstr[1] "Installing %(num)d packages." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removing one package." -msgstr[1] "Removing %(num)d packages." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Unmount file systems." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Install packages." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Processing packages (%(count)d / %(total)d)" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installing one package." +msgstr[1] "Installing %(num)d packages." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Removing one package." +msgstr[1] "Removing %(num)d packages." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python job." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy python step {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/eo/LC_MESSAGES/python.po b/lang/python/eo/LC_MESSAGES/python.po index 5a3b1ff62..b8c83ed0a 100644 --- a/lang/python/eo/LC_MESSAGES/python.po +++ b/lang/python/eo/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Kurt Ankh Phoenix , 2018\n" "Language-Team: Esperanto (https://www.transifex.com/calamares/teams/20061/eo/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instali pakaĵoj." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Prilaborante pakaĵoj (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalante unu pakaĵo." -msgstr[1] "Instalante %(num)d pakaĵoj." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Forigante unu pakaĵo." -msgstr[1] "Forigante %(num)d pakaĵoj." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Demeti dosieraj sistemoj." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Demeti dosieraj sistemoj." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Formala python laboro." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Formala python paŝo {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instali pakaĵoj." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Prilaborante pakaĵoj (%(count)d / %(total)d)" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalante unu pakaĵo." +msgstr[1] "Instalante %(num)d pakaĵoj." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Forigante unu pakaĵo." +msgstr[1] "Forigante %(num)d pakaĵoj." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Formala python laboro." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Formala python paŝo {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/es/LC_MESSAGES/python.po b/lang/python/es/LC_MESSAGES/python.po index 302238518..3246f7d1f 100644 --- a/lang/python/es/LC_MESSAGES/python.po +++ b/lang/python/es/LC_MESSAGES/python.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Pier Jose Gotta Perez , 2020\n" "Language-Team: Spanish (https://www.transifex.com/calamares/teams/20061/es/)\n" @@ -26,70 +26,77 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalar paquetes." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Configure GRUB - menú de arranque multisistema -" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Procesando paquetes (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Montando particiones" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalando un paquete." -msgstr[1] "Instalando %(num)d paquetes." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Error de configuración" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Eliminando un paquete." -msgstr[1] "Eliminando %(num)d paquetes." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "No hay definidas particiones en 1{!s}1 para usar." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Guardando la configuración de red." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Configurar servicios de systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Error de configuración" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "No se puede modificar el servicio" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"No se facilitó un punto de montaje raíz utilizable para
{!s}
" +"La orden systemctl {arg!s} en chroot devolvió el código de " +"error {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmontar sistemas de archivos." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "No se puede activar el servicio de systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Configurando mkinitcpio - sistema de arranque básico -." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "No se puede activar el objetivo de systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "No hay definidas particiones en 1{!s}1 para usar." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "No se puede desactivar el objetivo de systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configurando el servicio - de arranque encriptado -. OpenRC dmcrypt" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "No se puede enmascarar la unidad de systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Órdenes desconocidas de systemd {command!s} y " +"{suffix!s} para la/s unidad /es {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar sistemas de archivos." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -107,45 +114,45 @@ msgstr "Desempaquetando la imagen {}/{}, archivo {}/{}" msgid "Starting to unpack {}" msgstr "Iniciando el desempaquetado {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "No se pudo desempaquetar la imagen «{}»" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" "No especificó un punto de montaje para la partición raíz - / o root -" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "No se hace nada porque el almacenamiento no contiene una clave de " "\"rootMountPoint\" punto de montaje para la raíz." -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Punto de montaje no válido para una partición raíz," -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "Como el punto de montaje raíz es \"{}\", y no existe, no se hace nada" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Configuración de \"unsquash\" no válida" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" "El sistema de archivos para \"{}\" ({}) no es compatible con su kernel " "actual" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "El sistema de archivos de origen \"{}\" no existe" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -153,83 +160,88 @@ msgstr "" "No se encontró unsquashfs; cerciórese de que tenga instalado el paquete " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "El destino \"{}\" en el sistema escogido no es una carpeta" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configurar servicios de systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "No se puede escribir el archivo de configuración KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "No se puede modificar el servicio" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "El archivo de configuración {!s} de KDM no existe" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"La orden systemctl {arg!s} en chroot devolvió el código de " -"error {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "No se puede escribir el archivo de configuración LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "No se puede activar el servicio de systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "El archivo de configuracion {!s} de LXDM no existe" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "No se puede activar el objetivo de systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "No se puede escribir el archivo de configuración de LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "No se puede desactivar el objetivo de systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "El archivo de configuración {!s} de LightDM no existe" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "No se puede enmascarar la unidad de systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "No se puede configurar LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Órdenes desconocidas de systemd {command!s} y " -"{suffix!s} para la/s unidad /es {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "No está instalado el menú de bienvenida LightDM" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tarea de python ficticia." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "No se puede escribir el archivo de configuración de SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Paso {} de python ficticio" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "El archivo de configuración {!s} de SLIM no existe" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalar gestor de arranque." +#: src/modules/displaymanager/main.py:903 +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/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Configurando especificaciones locales o regionales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"La lista de gestores de ventanas está vacía o no definida en ambos, el " +"almacenamiento y el archivo de su configuración - displaymanager.conf -" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Montando particiones" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "La configuración del gestor de pantalla estaba incompleta" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configure el tema de Plymouth - menú de bienvenida." +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Configurando mkinitcpio - sistema de arranque básico -." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"No se facilitó un punto de montaje raíz utilizable para
{!s}
" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Configurando la memoria de intercambio - swap - encriptada." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Escribiendo la tabla de particiones fstab" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Instalando datos." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -285,6 +297,42 @@ msgstr "" "La ruta hacia el/los servicio/s {name!s} es {path!s}, y no " "existe." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Configure el tema de Plymouth - menú de bienvenida." + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalar paquetes." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Procesando paquetes (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalando un paquete." +msgstr[1] "Instalando %(num)d paquetes." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Eliminando un paquete." +msgstr[1] "Eliminando %(num)d paquetes." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalar gestor de arranque." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Configurando el reloj de la computadora." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -298,76 +346,31 @@ msgstr "Falló en ejecutar dracut - constructor de arranques - en el objetivo" msgid "The exit code was {}" msgstr "El código de salida fue {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configure GRUB - menú de arranque multisistema -" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "No se puede escribir el archivo de configuración KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "El archivo de configuración {!s} de KDM no existe" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "No se puede escribir el archivo de configuración LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "El archivo de configuracion {!s} de LXDM no existe" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "No se puede escribir el archivo de configuración de LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "El archivo de configuración {!s} de LightDM no existe" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "No se puede configurar LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "No está instalado el menú de bienvenida LightDM" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "No se puede escribir el archivo de configuración de SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "El archivo de configuración {!s} de SLIM no existe" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Configurando initramfs - sistema de inicio -." -#: src/modules/displaymanager/main.py:895 -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/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Configurando el servicio - de arranque encriptado -. OpenRC dmcrypt" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"La lista de gestores de ventanas está vacía o no definida en ambos, el " -"almacenamiento y el archivo de su configuración - displaymanager.conf -" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Escribiendo la tabla de particiones fstab" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "La configuración del gestor de pantalla estaba incompleta" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tarea de python ficticia." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Configurando initramfs - sistema de inicio -." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Paso {} de python ficticio" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Configurando el reloj de la computadora." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Configurando especificaciones locales o regionales." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Instalando datos." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Guardando la configuración de red." diff --git a/lang/python/es_MX/LC_MESSAGES/python.po b/lang/python/es_MX/LC_MESSAGES/python.po index 408c58de8..7b0933ed9 100644 --- a/lang/python/es_MX/LC_MESSAGES/python.po +++ b/lang/python/es_MX/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Logan 8192 , 2018\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" @@ -22,70 +22,74 @@ msgstr "" "Language: es_MX\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalar paquetes." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Procesando paquetes (%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalando un paquete." -msgstr[1] "Instalando%(num)d paquetes." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removiendo un paquete." -msgstr[1] "Removiendo %(num)dpaquetes." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmontar sistemas de archivo." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar sistemas de archivo." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -102,117 +106,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "No se puede escribir el archivo de configuración de KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "El archivo de configuración de KDM {!s} no existe" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "No se puede escribir el archivo de configuración de LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "El archivo de configuración de LXDM {!s} no existe" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "No se puede escribir el archivo de configuración de LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "El archivo de configuración de LightDM {!s} no existe" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "No se puede configurar LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Trabajo python ficticio." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "No se puede escribir el archivo de configuración de SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Paso python ficticio {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -258,84 +266,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "No se puede escribir el archivo de configuración de KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "El archivo de configuración de KDM {!s} no existe" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "No se puede escribir el archivo de configuración de LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "El archivo de configuración de LXDM {!s} no existe" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalar paquetes." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "No se puede escribir el archivo de configuración de LightDM" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Procesando paquetes (%(count)d/%(total)d)" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "El archivo de configuración de LightDM {!s} no existe" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalando un paquete." +msgstr[1] "Instalando%(num)d paquetes." -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "No se puede configurar LightDM" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Removiendo un paquete." +msgstr[1] "Removiendo %(num)dpaquetes." -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "No se puede escribir el archivo de configuración de SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" #: src/modules/initramfscfg/main.py:41 msgid "Configuring initramfs." msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Trabajo python ficticio." + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Paso python ficticio {}" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/es_PR/LC_MESSAGES/python.po b/lang/python/es_PR/LC_MESSAGES/python.po index c10899bea..503461528 100644 --- a/lang/python/es_PR/LC_MESSAGES/python.po +++ b/lang/python/es_PR/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Spanish (Puerto Rico) (https://www.transifex.com/calamares/teams/20061/es_PR/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: es_PR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/et/LC_MESSAGES/python.po b/lang/python/et/LC_MESSAGES/python.po index 1f2f4ae2f..73b642c14 100644 --- a/lang/python/et/LC_MESSAGES/python.po +++ b/lang/python/et/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Madis Otenurm, 2019\n" "Language-Team: Estonian (https://www.transifex.com/calamares/teams/20061/et/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Paigalda paketid." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Pakkide töötlemine (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Paigaldan ühe paketi." -msgstr[1] "Paigaldan %(num)d paketti." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Eemaldan ühe paketi." -msgstr[1] "Eemaldan %(num)d paketti." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Haagi failisüsteemid lahti." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Haagi failisüsteemid lahti." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM-konfiguratsioonifaili ei saa kirjutada" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM-konfiguratsioonifail {!s} puudub" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM-konfiguratsioonifaili ei saa kirjutada" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM-konfiguratsioonifail {!s} puudub" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM-konfiguratsioonifaili ei saa kirjutada" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM-konfiguratsioonifail {!s} puudub" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM seadistamine ebaõnnestus" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Testiv python'i töö." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM-konfiguratsioonifaili ei saa kirjutada" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Testiv python'i aste {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM-konfiguratsioonifail {!s} puudub" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,6 +265,42 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Paigalda paketid." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Pakkide töötlemine (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Paigaldan ühe paketi." +msgstr[1] "Paigaldan %(num)d paketti." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Eemaldan ühe paketi." +msgstr[1] "Eemaldan %(num)d paketti." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -269,72 +313,31 @@ msgstr "" msgid "The exit code was {}" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM-konfiguratsioonifaili ei saa kirjutada" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM-konfiguratsioonifail {!s} puudub" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDM-konfiguratsioonifaili ei saa kirjutada" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM-konfiguratsioonifail {!s} puudub" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM-konfiguratsioonifaili ei saa kirjutada" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM-konfiguratsioonifail {!s} puudub" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDM seadistamine ebaõnnestus" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM-konfiguratsioonifaili ei saa kirjutada" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM-konfiguratsioonifail {!s} puudub" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Testiv python'i töö." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Testiv python'i aste {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/eu/LC_MESSAGES/python.po b/lang/python/eu/LC_MESSAGES/python.po index e8bb613a3..540f048b9 100644 --- a/lang/python/eu/LC_MESSAGES/python.po +++ b/lang/python/eu/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Ander Elortondo, 2019\n" "Language-Team: Basque (https://www.transifex.com/calamares/teams/20061/eu/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalatu paketeak" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Paketeak prozesatzen (%(count)d/ %(total)d) " +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Pakete bat instalatzen." -msgstr[1] "%(num)dpakete instalatzen." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Pakete bat kentzen." -msgstr[1] "%(num)dpakete kentzen." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Fitxategi sistemak desmuntatu." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Fitxategi sistemak desmuntatu." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,124 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Ezin da KDM konfigurazio fitxategia idatzi" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM konfigurazio fitxategia {!s} ez da existitzen" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Ezin da LXDM konfigurazio fitxategia idatzi" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM konfigurazio fitxategia {!s} ez da existitzen" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Ezin da LightDM konfigurazio fitxategia idatzi" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM konfigurazio fitxategia {!s} ez da existitzen" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Ezin da LightDM konfiguratu" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Ez dago LightDM harrera instalatua." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy python lana." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Ezin da SLIM konfigurazio fitxategia idatzi" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python urratsa {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM konfigurazio fitxategia {!s} ez da existitzen" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" +"Ez da pantaila kudeatzailerik aukeratu pantaila-kudeatzaile modulurako." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" +"Pantaila-kudeatzaile-zerrenda hutsik dago edo definitzeke bothglobalstorage " +"eta displaymanager.conf" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Pantaila kudeatzaile konfigurazioa osotu gabe" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,6 +268,42 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalatu paketeak" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Paketeak prozesatzen (%(count)d/ %(total)d) " + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Pakete bat instalatzen." +msgstr[1] "%(num)dpakete instalatzen." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Pakete bat kentzen." +msgstr[1] "%(num)dpakete kentzen." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -269,75 +316,31 @@ msgstr "" msgid "The exit code was {}" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Ezin da KDM konfigurazio fitxategia idatzi" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM konfigurazio fitxategia {!s} ez da existitzen" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Ezin da LXDM konfigurazio fitxategia idatzi" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM konfigurazio fitxategia {!s} ez da existitzen" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Ezin da LightDM konfigurazio fitxategia idatzi" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM konfigurazio fitxategia {!s} ez da existitzen" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Ezin da LightDM konfiguratu" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Ez dago LightDM harrera instalatua." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Ezin da SLIM konfigurazio fitxategia idatzi" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM konfigurazio fitxategia {!s} ez da existitzen" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -"Ez da pantaila kudeatzailerik aukeratu pantaila-kudeatzaile modulurako." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -"Pantaila-kudeatzaile-zerrenda hutsik dago edo definitzeke bothglobalstorage " -"eta displaymanager.conf" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Pantaila kudeatzaile konfigurazioa osotu gabe" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python lana." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy python urratsa {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/fa/LC_MESSAGES/python.po b/lang/python/fa/LC_MESSAGES/python.po index dcb1a2ebe..82f63fbda 100644 --- a/lang/python/fa/LC_MESSAGES/python.po +++ b/lang/python/fa/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Danial Behzadi , 2020\n" "Language-Team: Persian (https://www.transifex.com/calamares/teams/20061/fa/)\n" @@ -21,69 +21,77 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "نصب بسته‌ها." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "در حال پیکربندی گراب." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "در حال پردازش بسته‌ها (%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "در حال سوار کردن افرازها." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "در حال نصب یک بسته." -msgstr[1] "در حال نصب %(num)d بسته." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "خطای پیکربندی" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "در حال برداشتن یک بسته." -msgstr[1] "در حال برداشتن %(num)d بسته." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "هیچ افرازی برای استفادهٔ
{!s}
تعریف نشده." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "در حال ذخیرهٔ پیکربندی شبکه." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "در حال پیکربندی خدمات سیستم‌دی" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "خطای پیکربندی" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "نمی‌توان خدمت را دستکاری کرد" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "هیچ نقطهٔ اتّصال ریشه‌ای برای استفادهٔ
{!s}
داده نشده." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"فراخوانی systemctl {arg!s} در chroot رمز خطای {num!s} را " +"برگرداند." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "پیاده کردن سامانه‌های پرونده." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "نمی‌توان خدمت سیستم‌دی {name!s} را به کار انداخت." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "پیکربندی mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "نمی‌توان هدف سیستم‌دی {name!s} را به کار انداخت." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "هیچ افرازی برای استفادهٔ
{!s}
تعریف نشده." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "نمی‌توان خدمت سیستم‌دی {name!s} را از کار انداخت." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "در حال پیکربندی خدمت dmcrypt OpenRC." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "نمی‌توان واحد سیستم‌دی {name!s} را پوشاند." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"دستورات ناشناختهٔ سیستم‌دی {command!s} و " +"{suffix!s} برای واحد {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "پیاده کردن سامانه‌های پرونده." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -101,122 +109,124 @@ msgstr "در حال بسته‌گشایی تصویر {}/{}، پروندهٔ {}/{ msgid "Starting to unpack {}" msgstr "در حال شروع بسته‌گشایی {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "شکست در بسته‌گشایی تصویر {}" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "هیچ نقطهٔ اتّصالی برای افراز ریشه وجود ندارد" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage کلید rootMountPoint را ندارد. کاری انجام نمی‌شود" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "نقطهٔ اتّصال بد برای افراز ریشه" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "نقطهٔ اتّصال ریشه {} است که وجود ندارد. کاری انجام نمی‌شود" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "پیکربندی بد unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "کرنل کنونیتان از سامانه‌پروندهٔ {} ({}) پشتیبانی نمی‌کند" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "سامانهٔ پروندهٔ مبدأ {} وجود ندارد" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "شکست در یافتن unsquashfs. مطمئن شوید بستهٔ squashfs-tools نصب است" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "مقصد {} در سامانهٔ هدف، یک شاخه نیست" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "در حال پیکربندی خدمات سیستم‌دی" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "نمی‌توان پروندهٔ پیکربندی KDM را نوشت" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "نمی‌توان خدمت را دستکاری کرد" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"فراخوانی systemctl {arg!s} در chroot رمز خطای {num!s} را " -"برگرداند." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "نمی‌توان پروندهٔ پیکربندی LXDM را نوشت" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "نمی‌توان خدمت سیستم‌دی {name!s} را به کار انداخت." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "نمی‌توان هدف سیستم‌دی {name!s} را به کار انداخت." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "نمی‌توان پروندهٔ پیکربندی LightDM را نوشت" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "نمی‌توان خدمت سیستم‌دی {name!s} را از کار انداخت." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "نمی‌توان واحد سیستم‌دی {name!s} را پوشاند." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "نمی‌توان LightDM را پیکربندی کرد" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"دستورات ناشناختهٔ سیستم‌دی {command!s} و " -"{suffix!s} برای واحد {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "هیچ خوش‌آمدگوی LightDMای نصب نشده." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "کار پایتونی الکی." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "نمی‌توان پروندهٔ پیکربندی LightDM را نوشت" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "گام پایتونی الکی {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "نصب بارکنندهٔ راه‌اندازی." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "هیچ مدیر نمایشی برای پیمانهٔ displaymanager گزیده نشده." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" +"فهرست displaymanagers خالی بوده یا در bothglobalstorage و " +"displaymanager.conf تعریف نشده." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "در حال سوار کردن افرازها." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "پیکربندی مدیر نمایش کامل نبود" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "در حال پیکربندی زمینهٔ پلی‌موث" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "پیکربندی mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "هیچ نقطهٔ اتّصال ریشه‌ای برای استفادهٔ
{!s}
داده نشده." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "در حال پیکربندی مبادلهٔ رمزشده." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "در حال نوشتن fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "داده‌های نصب" #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -261,6 +271,42 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "در حال پیکربندی زمینهٔ پلی‌موث" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "نصب بسته‌ها." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "در حال پردازش بسته‌ها (%(count)d/%(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "در حال نصب یک بسته." +msgstr[1] "در حال نصب %(num)d بسته." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "در حال برداشتن یک بسته." +msgstr[1] "در حال برداشتن %(num)d بسته." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "نصب بارکنندهٔ راه‌اندازی." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "در حال تنظیم ساعت سخت‌افزاری." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "در حال ایجاد initramfs با dracut." @@ -273,74 +319,31 @@ msgstr "شکست در اجرای dracut روی هدف" msgid "The exit code was {}" msgstr "رمز خروج {} بود" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "در حال پیکربندی گراب." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "نمی‌توان پروندهٔ پیکربندی KDM را نوشت" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "نمی‌توان پروندهٔ پیکربندی LXDM را نوشت" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "نمی‌توان پروندهٔ پیکربندی LightDM را نوشت" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "نمی‌توان LightDM را پیکربندی کرد" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "در حال پیکربندی initramfs." -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "هیچ خوش‌آمدگوی LightDMای نصب نشده." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "در حال پیکربندی خدمت dmcrypt OpenRC." -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "نمی‌توان پروندهٔ پیکربندی LightDM را نوشت" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "در حال نوشتن fstab." -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "پروندهٔ پیکربندی {!s} وجود ندارد" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "کار پایتونی الکی." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "هیچ مدیر نمایشی برای پیمانهٔ displaymanager گزیده نشده." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "گام پایتونی الکی {}" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -"فهرست displaymanagers خالی بوده یا در bothglobalstorage و " -"displaymanager.conf تعریف نشده." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "پیکربندی مدیر نمایش کامل نبود" - -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "در حال پیکربندی initramfs." - -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "در حال تنظیم ساعت سخت‌افزاری." - -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "داده‌های نصب" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "در حال ذخیرهٔ پیکربندی شبکه." diff --git a/lang/python/fi_FI/LC_MESSAGES/python.po b/lang/python/fi_FI/LC_MESSAGES/python.po index c05931e77..3df0a0d0c 100644 --- a/lang/python/fi_FI/LC_MESSAGES/python.po +++ b/lang/python/fi_FI/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Kimmo Kujansuu , 2020\n" "Language-Team: Finnish (Finland) (https://www.transifex.com/calamares/teams/20061/fi_FI/)\n" @@ -21,71 +21,76 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Asenna paketit." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Määritä GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Pakettien käsittely (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Yhdistä osiot." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Asentaa " -msgstr[1] "Asentaa %(num)d paketteja." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Määritysvirhe" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removing one package." -msgstr[1] "Poistaa %(num)d paketteja." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Ei ole määritetty käyttämään osioita
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Tallennetaan verkon määrityksiä." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Määritä systemd palvelut" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Määritysvirhe" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Palvelua ei voi muokata" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "systemctl {arg!s} chroot palautti virhe koodin {num!s}." + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Systemd-palvelua ei saa käyttöön {name!s}." + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Systemd-kohdetta ei saa käyttöön {name!s}." + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Systemd-kohdetta ei-voi poistaa käytöstä {name!s}." + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Ei voi peittää systemd-yksikköä {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" -"Root-juuri kiinnityspistettä
{!s}
ei ole annettu käytettäväksi." +"Tuntematon systemd-komennot {command!s} ja " +"{suffix!s} yksikölle {name!s}." #: src/modules/umount/main.py:40 msgid "Unmount file systems." msgstr "Irrota tiedostojärjestelmät käytöstä." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Määritetään mkinitcpio." - -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Ei ole määritetty käyttämään osioita
{!s}
." - -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt-palvelun määrittäminen." - #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "Paikannetaan tiedostojärjestelmiä." @@ -102,40 +107,40 @@ msgstr "Kuvan purkaminen {}/{}, tiedosto {}/{}" msgid "Starting to unpack {}" msgstr "Pakkauksen purkaminen alkaa {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Kuvan purkaminen epäonnistui \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Ei liitoskohtaa juuri root osiolle" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage ei sisällä \"rootMountPoint\" avainta, eikä tee mitään" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Huono kiinnityspiste root-osioon" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint on \"{}\", jota ei ole, eikä tee mitään" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Huono epäpuhdas kokoonpano" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Tiedostojärjestelmä \"{}\" ({}) ei tue sinun nykyistä kerneliä " -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Lähde tiedostojärjestelmää \"{}\" ei ole olemassa" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -143,81 +148,86 @@ msgstr "" "Ei löytynyt unsquashfs, varmista, että sinulla on squashfs-tools paketti " "asennettuna" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Kohdejärjestelmän \"{}\" kohde ei ole hakemisto" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Määritä systemd palvelut" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM-määritystiedostoa ei voi kirjoittaa" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Palvelua ei voi muokata" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM-määritystiedostoa {!s} ei ole olemassa" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "systemctl {arg!s} chroot palautti virhe koodin {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM-määritystiedostoa ei voi kirjoittaa" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Systemd-palvelua ei saa käyttöön {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM-määritystiedostoa {!s} ei ole olemassa" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Systemd-kohdetta ei saa käyttöön {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM-määritystiedostoa ei voi kirjoittaa" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Systemd-kohdetta ei-voi poistaa käytöstä {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM-määritystiedostoa {!s} ei ole olemassa" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Ei voi peittää systemd-yksikköä {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM määritysvirhe" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Tuntematon systemd-komennot {command!s} ja " -"{suffix!s} yksikölle {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM ei ole asennettu." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Harjoitus python-työ." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM-määritystiedostoa ei voi kirjoittaa" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Harjoitus python-vaihe {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM-määritystiedostoa {!s} ei ole olemassa" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Asenna bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Displaymanager-moduulia varten ei ole valittu näyttönhallintaa." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Määritetään locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Displaymanager-luettelo on tyhjä tai määrittelemätön, sekä globalstorage, " +"että displaymanager.conf tiedostossa." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Yhdistä osiot." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Näytönhallinnan kokoonpano oli puutteellinen" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Määritä Plymouthin teema" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Määritetään mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Root-juuri kiinnityspistettä
{!s}
ei ole annettu käytettäväksi." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Salatun swapin määrittäminen." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Fstab kirjoittaminen." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Asennetaan tietoja." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -266,6 +276,42 @@ msgid "" msgstr "" "Palvelun polku {name!s} on {path!s}, jota ei ole olemassa." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Määritä Plymouthin teema" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Asenna paketit." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Pakettien käsittely (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Asentaa " +msgstr[1] "Asentaa %(num)d paketteja." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Removing one package." +msgstr[1] "Poistaa %(num)d paketteja." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Asenna bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Laitteiston kellon asettaminen." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Initramfs luominen dracut:lla." @@ -278,74 +324,31 @@ msgstr "Dracut-ohjelman suorittaminen ei onnistunut" msgid "The exit code was {}" msgstr "Poistumiskoodi oli {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Määritä GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM-määritystiedostoa ei voi kirjoittaa" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM-määritystiedostoa {!s} ei ole olemassa" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDM-määritystiedostoa ei voi kirjoittaa" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM-määritystiedostoa {!s} ei ole olemassa" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM-määritystiedostoa ei voi kirjoittaa" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM-määritystiedostoa {!s} ei ole olemassa" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDM määritysvirhe" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "LightDM ei ole asennettu." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM-määritystiedostoa ei voi kirjoittaa" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM-määritystiedostoa {!s} ei ole olemassa" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Määritetään initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Displaymanager-moduulia varten ei ole valittu näyttönhallintaa." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt-palvelun määrittäminen." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Displaymanager-luettelo on tyhjä tai määrittelemätön, sekä globalstorage, " -"että displaymanager.conf tiedostossa." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Fstab kirjoittaminen." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Näytönhallinnan kokoonpano oli puutteellinen" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Harjoitus python-työ." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Määritetään initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Harjoitus python-vaihe {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Laitteiston kellon asettaminen." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Määritetään locales." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Asennetaan tietoja." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Tallennetaan verkon määrityksiä." diff --git a/lang/python/fr/LC_MESSAGES/python.po b/lang/python/fr/LC_MESSAGES/python.po index 2be092b30..24f71ecb0 100644 --- a/lang/python/fr/LC_MESSAGES/python.po +++ b/lang/python/fr/LC_MESSAGES/python.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Arnaud Ferraris , 2019\n" "Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n" @@ -29,72 +29,78 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Installer les paquets." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Configuration du GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Traitement des paquets (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Montage des partitions." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installation d'un paquet." -msgstr[1] "Installation de %(num)d paquets." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Erreur de configuration" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Suppression d'un paquet." -msgstr[1] "Suppression de %(num)d paquets." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" +"Aucune partition n'est définie pour être utilisée par
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Sauvegarde des configuration réseau." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Configurer les services systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Erreur de configuration" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Impossible de modifier le service" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Aucun point de montage racine n'a été donné pour être utilisé par " -"
{!s}
." +"L'appel systemctl {arg!s} en chroot a renvoyé le code d'erreur " +"{num!s}" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Démonter les systèmes de fichiers" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Impossible d'activer le service systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Configuration de mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Impossible d'activer la cible systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Impossible de désactiver la cible systemd {name!s}." + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Impossible de masquer l'unit systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" -"Aucune partition n'est définie pour être utilisée par
{!s}
." +"Commandes systemd {command!s} et {suffix!s} " +"inconnues pour l'unit {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configuration du service OpenRC dmcrypt." +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Démonter les systèmes de fichiers" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -112,40 +118,40 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Impossible de décompresser l'image \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Pas de point de montage pour la partition racine" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage ne contient pas de clé \"rootMountPoint\", ne fait rien" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Mauvais point de montage pour la partition racine" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint est \"{}\", ce qui n'existe pas, ne fait rien" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Mauvaise configuration unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Le système de fichiers source \"{}\" n'existe pas" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -153,83 +159,89 @@ msgstr "" "Échec de la recherche de unsquashfs, assurez-vous que le paquetage squashfs-" "tools est installé." -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "La destination \"{}\" dans le système cible n'est pas un répertoire" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configurer les services systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Impossible d'écrire le fichier de configuration KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Impossible de modifier le service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Le fichier de configuration KDM n'existe pas" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"L'appel systemctl {arg!s} en chroot a renvoyé le code d'erreur " -"{num!s}" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Impossible d'écrire le fichier de configuration LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Impossible d'activer le service systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Le fichier de configuration LXDM n'existe pas" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Impossible d'activer la cible systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Impossible d'écrire le fichier de configuration LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Impossible de désactiver la cible systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Le fichier de configuration LightDM {!S} n'existe pas" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Impossible de masquer l'unit systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Impossible de configurer LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Commandes systemd {command!s} et {suffix!s} " -"inconnues pour l'unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Aucun hôte LightDM est installé" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tâche factice python" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Impossible d'écrire le fichier de configuration SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Étape factice python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Le fichier de configuration SLIM {!S} n'existe pas" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Installation du bootloader." +#: src/modules/displaymanager/main.py:903 +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/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Configuration des locales." +#: src/modules/displaymanager/main.py:904 +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/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Montage des partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "La configuration du gestionnaire d'affichage était incomplète" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configurer le thème Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Configuration de mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Aucun point de montage racine n'a été donné pour être utilisé par " +"
{!s}
." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Configuration du swap chiffrée." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Écriture du fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Installation de données." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -282,6 +294,42 @@ msgstr "" "Le chemin pour le service {name!s} est {path!s}, qui n'existe " "pas." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Configurer le thème Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Installer les paquets." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Traitement des paquets (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installation d'un paquet." +msgstr[1] "Installation de %(num)d paquets." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Suppression d'un paquet." +msgstr[1] "Suppression de %(num)d paquets." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Installation du bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Configuration de l'horloge matériel." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Configuration du initramfs avec dracut." @@ -294,76 +342,31 @@ msgstr "Erreur d'exécution de dracut sur la cible." msgid "The exit code was {}" msgstr "Le code de sortie était {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configuration du GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Impossible d'écrire le fichier de configuration KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Le fichier de configuration KDM n'existe pas" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Impossible d'écrire le fichier de configuration LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Le fichier de configuration LXDM n'existe pas" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Impossible d'écrire le fichier de configuration LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Le fichier de configuration LightDM {!S} n'existe pas" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Impossible de configurer LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Aucun hôte LightDM est installé" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Impossible d'écrire le fichier de configuration SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Le fichier de configuration SLIM {!S} n'existe pas" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Configuration du initramfs." -#: src/modules/displaymanager/main.py:895 -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/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Configuration du service OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -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/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Écriture du fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "La configuration du gestionnaire d'affichage était incomplète" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tâche factice python" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Configuration du initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Étape factice python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Configuration de l'horloge matériel." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Configuration des locales." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Installation de données." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Sauvegarde des configuration réseau." diff --git a/lang/python/fr_CH/LC_MESSAGES/python.po b/lang/python/fr_CH/LC_MESSAGES/python.po index d2b4ed915..fdfb24597 100644 --- a/lang/python/fr_CH/LC_MESSAGES/python.po +++ b/lang/python/fr_CH/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: French (Switzerland) (https://www.transifex.com/calamares/teams/20061/fr_CH/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: fr_CH\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/gl/LC_MESSAGES/python.po b/lang/python/gl/LC_MESSAGES/python.po index a8545938e..f072a2efe 100644 --- a/lang/python/gl/LC_MESSAGES/python.po +++ b/lang/python/gl/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Xosé, 2018\n" "Language-Team: Galician (https://www.transifex.com/calamares/teams/20061/gl/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalar paquetes." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "A procesar paquetes (%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "A instalar un paquete." -msgstr[1] "A instalar %(num)d paquetes." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "A retirar un paquete." -msgstr[1] "A retirar %(num)d paquetes." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmontar sistemas de ficheiros." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar sistemas de ficheiros." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,124 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Non é posíbel escribir o ficheiro de configuración de KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "O ficheiro de configuración de KDM {!s} non existe" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Non é posíbel escribir o ficheiro de configuración de LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "O ficheiro de configuración de LXDM {!s} non existe" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Non é posíbel escribir o ficheiro de configuración de LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "O ficheiro de configuración de LightDM {!s} non existe" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Non é posíbel configurar LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Non se instalou o saudador de LightDM." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tarefa parva de python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Non é posíbel escribir o ficheiro de configuración de SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Paso parvo de python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "O ficheiro de configuración de SLIM {!s} non existe" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" +"Non hai xestores de pantalla seleccionados para o módulo displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" +"A lista de xestores de pantalla está baleira ou sen definir en " +"bothglobalstorage e displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "A configuración do xestor de pantalla foi incompleta" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,6 +268,42 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalar paquetes." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "A procesar paquetes (%(count)d/%(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "A instalar un paquete." +msgstr[1] "A instalar %(num)d paquetes." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "A retirar un paquete." +msgstr[1] "A retirar %(num)d paquetes." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -269,75 +316,31 @@ msgstr "" msgid "The exit code was {}" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Non é posíbel escribir o ficheiro de configuración de KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "O ficheiro de configuración de KDM {!s} non existe" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Non é posíbel escribir o ficheiro de configuración de LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "O ficheiro de configuración de LXDM {!s} non existe" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Non é posíbel escribir o ficheiro de configuración de LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "O ficheiro de configuración de LightDM {!s} non existe" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Non é posíbel configurar LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Non se instalou o saudador de LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Non é posíbel escribir o ficheiro de configuración de SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "O ficheiro de configuración de SLIM {!s} non existe" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -"Non hai xestores de pantalla seleccionados para o módulo displaymanager." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -"A lista de xestores de pantalla está baleira ou sen definir en " -"bothglobalstorage e displaymanager.conf." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "A configuración do xestor de pantalla foi incompleta" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tarefa parva de python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Paso parvo de python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/gu/LC_MESSAGES/python.po b/lang/python/gu/LC_MESSAGES/python.po index 4732d6bbc..601ec8021 100644 --- a/lang/python/gu/LC_MESSAGES/python.po +++ b/lang/python/gu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Gujarati (https://www.transifex.com/calamares/teams/20061/gu/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: gu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/he/LC_MESSAGES/python.po b/lang/python/he/LC_MESSAGES/python.po index 8838860d9..229d2ff78 100644 --- a/lang/python/he/LC_MESSAGES/python.po +++ b/lang/python/he/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Yaron Shahrabani , 2020\n" "Language-Team: Hebrew (https://www.transifex.com/calamares/teams/20061/he/)\n" @@ -22,73 +22,76 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "התקנת חבילות." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "הגדרת GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "החבילות מעובדות (%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "מחיצות מעוגנות." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "מותקנת חבילה אחת." -msgstr[1] "מותקנות %(num)d חבילות." -msgstr[2] "מותקנות %(num)d חבילות." -msgstr[3] "מותקנות %(num)d חבילות." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "שגיאת הגדרות" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "מתבצעת הסרה של חבילה אחת." -msgstr[1] "מתבצעת הסרה של %(num)d חבילות." -msgstr[2] "מתבצעת הסרה של %(num)d חבילות." -msgstr[3] "מתבצעת הסרה של %(num)d חבילות." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "לא הוגדרו מחיצות לשימוש של
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "הגדרות הרשת נשמרות." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "הגדרת שירותי systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "שגיאת הגדרות" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "לא ניתן לשנות את השירות" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "לא סופקה נקודת עגינת שורש לשימוש של
{!s}
." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"systemctl {arg!s} הקריאה ב־chroot החזירה את קוד השגיאה {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "ניתוק עיגון מערכות קבצים." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "לא ניתן להפעיל את השירות הבא של systemd:‏ {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "mkinitcpio מותקן." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "לא ניתן להפעיל את היעד של systemd בשם {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "לא הוגדרו מחיצות לשימוש של
{!s}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "לא ניתן להשבית את היעד של systemd בשם {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "שירות dmcrypt ל־OpenRC מוגדר." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "לא ניתן למסך את היחידה של systemd בשם {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"פקודות לא ידועות של systemd‏ {command!s} " +"ו־{suffix!s} עבור היחידה {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "ניתוק עיגון מערכות קבצים." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -106,121 +109,124 @@ msgstr "התמונה נפרסת {}/{}, קובץ {}/{}" msgid "Starting to unpack {}" msgstr "הפריסה של {} מתחילה" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "פריסת התמונה „{}” נכשלה" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "אין נקודת עגינה למחיצת העל" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "ב־globalstorage אין את המפתח „rootMountPoint”, לא תתבצע אף פעולה" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "נקודת העגינה של מחיצת השורה שגויה" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint מוגדרת בתור „{}”, שאינו קיים, לא תתבצע אף פעולה" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "תצורת unsquash שגויה" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "מערכת הקבצים עבור „{}” ‏({}) אינה נתמכת על ידי הליבה הנוכחית שלך." -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "מערכת הקבצים במקור „{}” אינה קיימת" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "איתור unsquashfs לא צלח, נא לוודא שהחבילה squashfs-tools מותקנת" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "היעד „{}” במערכת הקבצים המיועדת אינו תיקייה" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "הגדרת שירותי systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "לא ניתן לכתוב את קובץ התצורה של KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "לא ניתן לשנות את השירות" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "קובץ התצורה של KDM ‏{!s} אינו קיים" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} הקריאה ב־chroot החזירה את קוד השגיאה {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "לא ניתן לכתוב את קובץ התצורה של LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "לא ניתן להפעיל את השירות הבא של systemd:‏ {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "קובץ התצורה של LXDM ‏{!s} אינו קיים" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "לא ניתן להפעיל את היעד של systemd בשם {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "לא ניתן לכתוב את קובץ התצורה של LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "לא ניתן להשבית את היעד של systemd בשם {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "קובץ התצורה של LightDM ‏{!s} אינו קיים" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "לא ניתן למסך את היחידה של systemd בשם {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "לא ניתן להגדיר את LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"פקודות לא ידועות של systemd‏ {command!s} " -"ו־{suffix!s} עבור היחידה {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "לא מותקן מקבל פנים מסוג LightDM." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "משימת דמה של Python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "לא ניתן לכתוב קובץ תצורה של SLIM." -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "צעד דמה של Python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "קובץ התצורה {!s} של SLIM אינו קיים" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "התקנת מנהל אתחול." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "לא נבחרו מנהלי תצוגה למודול displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "השפות מוגדרות." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"הרשימה של מנהלי התצוגה ריקה או שאינה מוגדרת תחת bothglobalstorage " +"ו־displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "מחיצות מעוגנות." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "תצורת מנהל התצוגה אינה שלמה" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "הגדרת ערכת עיצוב של Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio מותקן." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "לא סופקה נקודת עגינת שורש לשימוש של
{!s}
." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "מוגדר שטח החלפה מוצפן." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "fstab נכתב." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "הנתונים מותקנים." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -270,6 +276,46 @@ msgid "" "exist." msgstr "הנתיב לשירות {name!s} הוא {path!s}, שאינו קיים." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "הגדרת ערכת עיצוב של Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "התקנת חבילות." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "החבילות מעובדות (%(count)d/%(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "מותקנת חבילה אחת." +msgstr[1] "מותקנות %(num)d חבילות." +msgstr[2] "מותקנות %(num)d חבילות." +msgstr[3] "מותקנות %(num)d חבילות." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "מתבצעת הסרה של חבילה אחת." +msgstr[1] "מתבצעת הסרה של %(num)d חבילות." +msgstr[2] "מתבצעת הסרה של %(num)d חבילות." +msgstr[3] "מתבצעת הסרה של %(num)d חבילות." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "התקנת מנהל אתחול." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "שעון החומרה מוגדר." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "נוצר initramfs עם dracut." @@ -282,74 +328,31 @@ msgstr "הרצת dracut על היעד נכשלה" msgid "The exit code was {}" msgstr "קוד היציאה היה {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "הגדרת GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "לא ניתן לכתוב את קובץ התצורה של KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "קובץ התצורה של KDM ‏{!s} אינו קיים" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "לא ניתן לכתוב את קובץ התצורה של LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "קובץ התצורה של LXDM ‏{!s} אינו קיים" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "לא ניתן לכתוב את קובץ התצורה של LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "קובץ התצורה של LightDM ‏{!s} אינו קיים" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "לא ניתן להגדיר את LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "לא מותקן מקבל פנים מסוג LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "לא ניתן לכתוב קובץ תצורה של SLIM." - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "קובץ התצורה {!s} של SLIM אינו קיים" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs מוגדר." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "לא נבחרו מנהלי תצוגה למודול displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "שירות dmcrypt ל־OpenRC מוגדר." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"הרשימה של מנהלי התצוגה ריקה או שאינה מוגדרת תחת bothglobalstorage " -"ו־displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab נכתב." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "תצורת מנהל התצוגה אינה שלמה" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "משימת דמה של Python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "initramfs מוגדר." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "צעד דמה של Python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "שעון החומרה מוגדר." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "השפות מוגדרות." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "הנתונים מותקנים." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "הגדרות הרשת נשמרות." diff --git a/lang/python/hi/LC_MESSAGES/python.po b/lang/python/hi/LC_MESSAGES/python.po index 0e821818e..40fbd2e72 100644 --- a/lang/python/hi/LC_MESSAGES/python.po +++ b/lang/python/hi/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Panwar108 , 2020\n" "Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n" @@ -21,71 +21,76 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "पैकेज इंस्टॉल करना।" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB विन्यस्त करना।" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "पैकेज (%(count)d / %(total)d) संसाधित किए जा रहे हैं" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "विभाजन माउंट करना।" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "एक पैकेज इंस्टॉल किया जा रहा है।" -msgstr[1] "%(num)d पैकेज इंस्टॉल किए जा रहे हैं।" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "विन्यास त्रुटि" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "एक पैकेज हटाया जा रहा है।" -msgstr[1] "%(num)d पैकेज हटाए जा रहे हैं।" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "
{!s}
के उपयोग हेतु कोई विभाजन परिभाषित नहीं हैं।" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "नेटवर्क विन्यास सेटिंग्स संचित करना।" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "systemd सेवाएँ विन्यस्त करना" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "विन्यास त्रुटि" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "सेवा को संशोधित नहीं किया जा सकता" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "chroot में systemctl {arg!s} कॉल त्रुटि कोड {num!s}।" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "systemd सेवा {name!s} को सक्रिय नहीं किया जा सकता।" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "systemd टारगेट {name!s} को सक्रिय नहीं किया जा सकता।" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "systemd टारगेट {name!s} को निष्क्रिय नहीं किया जा सकता।" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "systemd यूनिट {name!s} को मास्क नहीं किया जा सकता।" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" -"
{!s}
के उपयोग हेतु कोई रुट माउंट पॉइंट प्रदान नहीं किया गया।" +"यूनिट {name!s} हेतु अज्ञात systemd कमांड {command!s} व " +"{suffix!s}।" #: src/modules/umount/main.py:40 msgid "Unmount file systems." msgstr "फ़ाइल सिस्टम माउंट से हटाना।" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "mkinitcpio को विन्यस्त करना।" - -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "
{!s}
के उपयोग हेतु कोई विभाजन परिभाषित नहीं हैं।" - -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt सेवा विन्यस्त करना।" - #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "फाइल सिस्टम भरना।" @@ -102,121 +107,126 @@ msgstr "इमेज फ़ाइल {}/{}, फ़ाइल {}/{} सम्पीड़ msgid "Starting to unpack {}" msgstr "{} हेतु संपीड़न प्रक्रिया आरंभ हो रही है " -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "इमेज फ़ाइल \"{}\" को खोलने में विफल" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "रुट विभाजन हेतु कोई माउंट पॉइंट नहीं है" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage में \"rootMountPoint\" कुंजी नहीं है, कुछ नहीं किया जाएगा" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "रुट विभाजन हेतु ख़राब माउंट पॉइंट" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "रुट माउंट पॉइंट \"{}\" है, जो कि मौजूद नहीं है, कुछ नहीं किया जाएगा" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "ख़राब unsquash विन्यास सेटिंग्स" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "\"{}\" ({}) हेतु फ़ाइल सिस्टम आपके वर्तमान कर्नेल द्वारा समर्थित नहीं है" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "\"{}\" स्रोत फ़ाइल सिस्टम मौजूद नहीं है" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" "unsqaushfs खोजने में विफल, सुनिश्चित करें कि squashfs-tools पैकेज इंस्टॉल है" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "लक्षित सिस्टम में \"{}\" स्थान कोई डायरेक्टरी नहीं है" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "systemd सेवाएँ विन्यस्त करना" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM विन्यास फ़ाइल राइट नहीं की जा सकती" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "सेवा को संशोधित नहीं किया जा सकता" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM विन्यास फ़ाइल {!s} मौजूद नहीं है" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "chroot में systemctl {arg!s} कॉल त्रुटि कोड {num!s}।" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM विन्यास फ़ाइल राइट नहीं की जा सकती" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "systemd सेवा {name!s} को सक्रिय नहीं किया जा सकता।" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM विन्यास फ़ाइल {!s} मौजूद नहीं है" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "systemd टारगेट {name!s} को सक्रिय नहीं किया जा सकता।" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM विन्यास फ़ाइल राइट नहीं की जा सकती" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "systemd टारगेट {name!s} को निष्क्रिय नहीं किया जा सकता।" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM विन्यास फ़ाइल {!s} मौजूद नहीं है" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "systemd यूनिट {name!s} को मास्क नहीं किया जा सकता।" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM को विन्यस्त नहीं किया जा सकता" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"यूनिट {name!s} हेतु अज्ञात systemd कमांड {command!s} व " -"{suffix!s}।" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "कोई LightDM लॉगिन स्क्रीन इंस्टॉल नहीं है।" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "डमी पाइथन प्रक्रिया ।" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM विन्यास फ़ाइल राइट नहीं की जा सकती" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "डमी पाइथन प्रक्रिया की चरण संख्या {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM विन्यास फ़ाइल {!s} मौजूद नहीं है" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "बूट लोडर इंस्टॉल करना।" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "चयनित डिस्प्ले प्रबंधक मॉड्यूल हेतु कोई डिस्प्ले प्रबंधक नहीं मिला।" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "स्थानिकी को विन्यस्त करना।" +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"bothglobalstorage एवं displaymanager.conf में डिस्प्ले प्रबंधक सूची रिक्त या" +" अपरिभाषित है।" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "विभाजन माउंट करना।" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "डिस्प्ले प्रबंधक विन्यास अधूरा था" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Plymouth थीम विन्यस्त करना " +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio को विन्यस्त करना।" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"
{!s}
के उपयोग हेतु कोई रुट माउंट पॉइंट प्रदान नहीं किया गया।" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "एन्क्रिप्टेड स्वैप को विन्यस्त करना।" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "fstab पर राइट करना।" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "डाटा इंस्टॉल करना।" #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -264,6 +274,42 @@ msgid "" "exist." msgstr "सेवा {name!s} हेतु पथ {path!s} है, जो कि मौजूद नहीं है।" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouth थीम विन्यस्त करना " + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "पैकेज इंस्टॉल करना।" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "पैकेज (%(count)d / %(total)d) संसाधित किए जा रहे हैं" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "एक पैकेज इंस्टॉल किया जा रहा है।" +msgstr[1] "%(num)d पैकेज इंस्टॉल किए जा रहे हैं।" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "एक पैकेज हटाया जा रहा है।" +msgstr[1] "%(num)d पैकेज हटाए जा रहे हैं।" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "बूट लोडर इंस्टॉल करना।" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "हार्डवेयर घड़ी सेट करना।" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "dracut के साथ initramfs बनाना।" @@ -276,74 +322,31 @@ msgstr "टारगेट पर dracut चलाने में विफल" msgid "The exit code was {}" msgstr "त्रुटि कोड {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB विन्यस्त करना।" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM विन्यास फ़ाइल राइट नहीं की जा सकती" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM विन्यास फ़ाइल {!s} मौजूद नहीं है" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDM विन्यास फ़ाइल राइट नहीं की जा सकती" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM विन्यास फ़ाइल {!s} मौजूद नहीं है" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM विन्यास फ़ाइल राइट नहीं की जा सकती" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM विन्यास फ़ाइल {!s} मौजूद नहीं है" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDM को विन्यस्त नहीं किया जा सकता" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "कोई LightDM लॉगिन स्क्रीन इंस्टॉल नहीं है।" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM विन्यास फ़ाइल राइट नहीं की जा सकती" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM विन्यास फ़ाइल {!s} मौजूद नहीं है" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs को विन्यस्त करना। " -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "चयनित डिस्प्ले प्रबंधक मॉड्यूल हेतु कोई डिस्प्ले प्रबंधक नहीं मिला।" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt सेवा विन्यस्त करना।" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"bothglobalstorage एवं displaymanager.conf में डिस्प्ले प्रबंधक सूची रिक्त या" -" अपरिभाषित है।" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab पर राइट करना।" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "डिस्प्ले प्रबंधक विन्यास अधूरा था" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "डमी पाइथन प्रक्रिया ।" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "initramfs को विन्यस्त करना। " +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "डमी पाइथन प्रक्रिया की चरण संख्या {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "हार्डवेयर घड़ी सेट करना।" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "स्थानिकी को विन्यस्त करना।" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "डाटा इंस्टॉल करना।" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "नेटवर्क विन्यास सेटिंग्स संचित करना।" diff --git a/lang/python/hr/LC_MESSAGES/python.po b/lang/python/hr/LC_MESSAGES/python.po index c4a605cfe..c5dc0e9b3 100644 --- a/lang/python/hr/LC_MESSAGES/python.po +++ b/lang/python/hr/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Lovro Kudelić , 2020\n" "Language-Team: Croatian (https://www.transifex.com/calamares/teams/20061/hr/)\n" @@ -21,72 +21,77 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instaliraj pakete." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Konfigurirajte GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Obrađujem pakete (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Montiranje particija." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instaliram paket." -msgstr[1] "Instaliram %(num)d pakete." -msgstr[2] "Instaliram %(num)d pakete." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Greška konfiguracije" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Uklanjam paket." -msgstr[1] "Uklanjam %(num)d pakete." -msgstr[2] "Uklanjam %(num)d pakete." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Nema definiranih particija za
{!s}
korištenje." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Spremanje mrežne konfiguracije." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfiguriraj systemd servise" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Greška konfiguracije" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Ne mogu modificirati servis" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Nijedna root točka montiranja nije definirana za
{!s}
korištenje." +"systemctl {arg!s} poziv u chroot-u vratio je kod pogreške " +"{num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Odmontiraj datotečne sustave." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Ne mogu omogućiti systemd servis {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfiguriranje mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Ne mogu omogućiti systemd cilj {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Nema definiranih particija za
{!s}
korištenje." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Ne mogu onemogućiti systemd cilj {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Konfiguriranje servisa OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Ne mogu maskirati systemd jedinicu {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Nepoznata systemd naredba {command!s} i {suffix!s}" +" za jedinicu {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odmontiraj datotečne sustave." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -104,40 +109,40 @@ msgstr "Otpakiravanje slike {}/{}, datoteka {}/{}" msgid "Starting to unpack {}" msgstr "Početak raspakiravanja {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Otpakiravnje slike nije uspjelo \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nema točke montiranja za root particiju" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage ne sadrži ključ \"rootMountPoint\", ne radi ništa" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Neispravna točka montiranja za root particiju" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint je \"{}\", što ne postoji, ne radi ništa" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Neispravna unsquash konfiguracija" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Datotečni sustav za \"{}\" ({}) nije podržan na vašem trenutnom kernelu" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Izvorni datotečni sustav \"{}\" ne postoji" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -145,83 +150,86 @@ msgstr "" "Neuspješno pronalaženje unsquashfs, provjerite imate li instaliran paket " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Odredište \"{}\" u ciljnom sustavu nije direktorij" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfiguriraj systemd servise" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Ne mogu zapisati KDM konfiguracijsku datoteku" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Ne mogu modificirati servis" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM konfiguracijska datoteka {!s} ne postoji" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} poziv u chroot-u vratio je kod pogreške " -"{num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Ne mogu zapisati LXDM konfiguracijsku datoteku" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Ne mogu omogućiti systemd servis {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM konfiguracijska datoteka {!s} ne postoji" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Ne mogu omogućiti systemd cilj {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Ne moku zapisati LightDM konfiguracijsku datoteku" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Ne mogu onemogućiti systemd cilj {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM konfiguracijska datoteka {!s} ne postoji" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Ne mogu maskirati systemd jedinicu {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Ne mogu konfigurirati LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Nepoznata systemd naredba {command!s} i {suffix!s}" -" za jedinicu {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nije instaliran LightDM pozdravnik." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Testni python posao." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Ne mogu zapisati SLIM konfiguracijsku datoteku" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Testni python korak {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM konfiguracijska datoteka {!s} ne postoji" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instaliram bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Nisu odabrani upravitelji zaslona za modul displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfiguriranje lokalizacije." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Popis upravitelja zaslona je prazan ili nedefiniran u bothglobalstorage i " +"displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Montiranje particija." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Konfiguracija upravitelja zaslona nije bila potpuna" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfigurirajte Plymouth temu" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfiguriranje mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Nijedna root točka montiranja nije definirana za
{!s}
korištenje." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfiguriranje šifriranog swapa." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Zapisujem fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Instaliranje podataka." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -273,6 +281,44 @@ msgid "" msgstr "" "Putanja servisa {name!s} je {path!s}, međutim ona ne postoji." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfigurirajte Plymouth temu" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instaliraj pakete." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Obrađujem pakete (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instaliram paket." +msgstr[1] "Instaliram %(num)d pakete." +msgstr[2] "Instaliram %(num)d pakete." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Uklanjam paket." +msgstr[1] "Uklanjam %(num)d pakete." +msgstr[2] "Uklanjam %(num)d pakete." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instaliram bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Postavljanje hardverskog sata." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Stvaranje initramfs s dracut." @@ -285,74 +331,31 @@ msgstr "Nije uspjelo pokretanje dracuta na ciljanom sustavu" msgid "The exit code was {}" msgstr "Izlazni kod bio je {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Konfigurirajte GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Ne mogu zapisati KDM konfiguracijsku datoteku" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM konfiguracijska datoteka {!s} ne postoji" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Ne mogu zapisati LXDM konfiguracijsku datoteku" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM konfiguracijska datoteka {!s} ne postoji" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Ne moku zapisati LightDM konfiguracijsku datoteku" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM konfiguracijska datoteka {!s} ne postoji" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Ne mogu konfigurirati LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nije instaliran LightDM pozdravnik." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Ne mogu zapisati SLIM konfiguracijsku datoteku" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM konfiguracijska datoteka {!s} ne postoji" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfiguriranje initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Nisu odabrani upravitelji zaslona za modul displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Konfiguriranje servisa OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Popis upravitelja zaslona je prazan ili nedefiniran u bothglobalstorage i " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Zapisujem fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Konfiguracija upravitelja zaslona nije bila potpuna" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Testni python posao." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfiguriranje initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Testni python korak {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Postavljanje hardverskog sata." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfiguriranje lokalizacije." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Instaliranje podataka." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Spremanje mrežne konfiguracije." diff --git a/lang/python/hu/LC_MESSAGES/python.po b/lang/python/hu/LC_MESSAGES/python.po index eece1030a..2b2d42bd2 100644 --- a/lang/python/hu/LC_MESSAGES/python.po +++ b/lang/python/hu/LC_MESSAGES/python.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Lajos Pasztor , 2019\n" "Language-Team: Hungarian (https://www.transifex.com/calamares/teams/20061/hu/)\n" @@ -24,69 +24,77 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Csomagok telepítése." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB konfigurálása." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Csomagok feldolgozása (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Partíciók csatolása." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Egy csomag telepítése." -msgstr[1] "%(num)d csomag telepítése." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Konfigurációs hiba" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Egy csomag eltávolítása." -msgstr[1] "%(num)d csomag eltávolítása." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Nincsenek partíciók meghatározva a
{!s}
használatához." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Hálózati konfiguráció mentése." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "systemd szolgáltatások beállítása" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Konfigurációs hiba" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "a szolgáltatást nem lehet módosítani" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "Nincs root csatolási pont megadva a
{!s}
használatához." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"systemctl {arg!s} hívás a chroot-ban hibakódot okozott {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Fájlrendszerek leválasztása." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" +"Nem sikerült a systemd szolgáltatást engedélyezni: {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "mkinitcpio konfigurálása." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Nem sikerült a systemd célt engedélyezni: {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Nincsenek partíciók meghatározva a
{!s}
használatához." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Nem sikerült a systemd cél {name!s} letiltása." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt szolgáltatás konfigurálása." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Nem maszkolható systemd egység: {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Ismeretlen systemd parancsok {command!s} és " +"{suffix!s} a {name!s} egységhez. " + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Fájlrendszerek leválasztása." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -104,41 +112,41 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "\"{}\" kép kicsomagolása nem sikerült" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nincs betöltési pont a root partíciónál" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "globalstorage nem tartalmaz \"rootMountPoint\" kulcsot, semmi nem történik" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Rossz betöltési pont a root partíciónál" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint is \"{}\", ami nem létezik, semmi nem történik" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Rossz unsquash konfiguráció" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "A forrás fájlrendszer \"{}\" nem létezik" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -146,83 +154,85 @@ msgstr "" "unsquashfs nem található, győződj meg róla a squashfs-tools csomag telepítve" " van." -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Az elérés \"{}\" nem létező könyvtár a cél rendszerben" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "systemd szolgáltatások beállítása" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "A KDM konfigurációs fájl nem írható" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "a szolgáltatást nem lehet módosítani" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "A(z) {!s} KDM konfigurációs fájl nem létezik" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} hívás a chroot-ban hibakódot okozott {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Az LXDM konfigurációs fájl nem írható" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" -"Nem sikerült a systemd szolgáltatást engedélyezni: {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "A(z) {!s} LXDM konfigurációs fájl nem létezik" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Nem sikerült a systemd célt engedélyezni: {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "A LightDM konfigurációs fájl nem írható" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Nem sikerült a systemd cél {name!s} letiltása." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "A(z) {!s} LightDM konfigurációs fájl nem létezik" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Nem maszkolható systemd egység: {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "A LightDM nem állítható be" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Ismeretlen systemd parancsok {command!s} és " -"{suffix!s} a {name!s} egységhez. " +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nincs LightDM üdvözlő telepítve." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Hamis Python feladat." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "A SLIM konfigurációs fájl nem írható" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Hamis {}. Python lépés" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "A(z) {!s} SLIM konfigurációs fájl nem létezik" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Rendszerbetöltő telepítése." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Nincs kijelzőkezelő kiválasztva a kijelzőkezelő modulhoz." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "nyelvi értékek konfigurálása." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"A kijelzőkezelők listája üres vagy nincs megadva a bothglobalstorage-ben és" +" a displaymanager.conf fájlban." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Partíciók csatolása." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "A kijelzőkezelő konfigurációja hiányos volt" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Plymouth téma beállítása" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio konfigurálása." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "Nincs root csatolási pont megadva a
{!s}
használatához." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Titkosított swap konfigurálása." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "fstab írása." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Adatok telepítése." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -273,6 +283,42 @@ msgid "" msgstr "" "A szolgáltatás {name!s} elérési útja {path!s}, nem létezik." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouth téma beállítása" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Csomagok telepítése." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Csomagok feldolgozása (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Egy csomag telepítése." +msgstr[1] "%(num)d csomag telepítése." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Egy csomag eltávolítása." +msgstr[1] "%(num)d csomag eltávolítása." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Rendszerbetöltő telepítése." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Rendszeridő beállítása." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "initramfs létrehozása ezzel: dracut." @@ -285,74 +331,31 @@ msgstr "dracut futtatása nem sikerült a célon." msgid "The exit code was {}" msgstr "A kilépési kód {} volt." -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB konfigurálása." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "A KDM konfigurációs fájl nem írható" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "A(z) {!s} KDM konfigurációs fájl nem létezik" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Az LXDM konfigurációs fájl nem írható" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "A(z) {!s} LXDM konfigurációs fájl nem létezik" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "A LightDM konfigurációs fájl nem írható" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "A(z) {!s} LightDM konfigurációs fájl nem létezik" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "A LightDM nem állítható be" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nincs LightDM üdvözlő telepítve." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "A SLIM konfigurációs fájl nem írható" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "A(z) {!s} SLIM konfigurációs fájl nem létezik" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs konfigurálása." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Nincs kijelzőkezelő kiválasztva a kijelzőkezelő modulhoz." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt szolgáltatás konfigurálása." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"A kijelzőkezelők listája üres vagy nincs megadva a bothglobalstorage-ben és" -" a displaymanager.conf fájlban." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab írása." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "A kijelzőkezelő konfigurációja hiányos volt" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Hamis Python feladat." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "initramfs konfigurálása." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Hamis {}. Python lépés" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Rendszeridő beállítása." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "nyelvi értékek konfigurálása." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Adatok telepítése." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Hálózati konfiguráció mentése." diff --git a/lang/python/id/LC_MESSAGES/python.po b/lang/python/id/LC_MESSAGES/python.po index 41045e74a..918423b8d 100644 --- a/lang/python/id/LC_MESSAGES/python.po +++ b/lang/python/id/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Wantoyèk , 2018\n" "Language-Team: Indonesian (https://www.transifex.com/calamares/teams/20061/id/)\n" @@ -23,68 +23,74 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instal paket-paket." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Paket pemrosesan (%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Menginstal paket %(num)d" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "mencopot %(num)d paket" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Lepaskan sistem berkas." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." msgstr "" +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Lepaskan sistem berkas." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +107,123 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Gak bisa menulis file konfigurasi KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "File {!s} config KDM belum ada" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Gak bisa menulis file konfigurasi LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "File {!s} config LXDM enggak ada" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Gak bisa menulis file konfigurasi LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "File {!s} config LightDM belum ada" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Gak bisa mengkonfigurasi LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Tiada LightDM greeter yang terinstal." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tugas dumi python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Gak bisa menulis file konfigurasi SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Langkah {} dumi python" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "File {!s} config SLIM belum ada" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Tiada display manager yang dipilih untuk modul displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +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/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Konfigurasi display manager belum rampung" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,6 +269,40 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instal paket-paket." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Paket pemrosesan (%(count)d/%(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Menginstal paket %(num)d" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "mencopot %(num)d paket" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "" @@ -269,74 +315,31 @@ msgstr "" msgid "The exit code was {}" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Gak bisa menulis file konfigurasi KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "File {!s} config KDM belum ada" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Gak bisa menulis file konfigurasi LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "File {!s} config LXDM enggak ada" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Gak bisa menulis file konfigurasi LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "File {!s} config LightDM belum ada" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Gak bisa mengkonfigurasi LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Tiada LightDM greeter yang terinstal." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Gak bisa menulis file konfigurasi SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "File {!s} config SLIM belum ada" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Tiada display manager yang dipilih untuk modul displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -"Daftar displaymanager telah kosong atau takdidefinisikan dalam " -"bothglobalstorage dan displaymanager.conf." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Konfigurasi display manager belum rampung" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tugas dumi python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Langkah {} dumi python" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/is/LC_MESSAGES/python.po b/lang/python/is/LC_MESSAGES/python.po index 5dda4859d..6a5bd68ff 100644 --- a/lang/python/is/LC_MESSAGES/python.po +++ b/lang/python/is/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Kristján Magnússon, 2018\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" @@ -21,70 +21,74 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Setja upp pakka." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Vinnslupakkar (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Setja upp einn pakka." -msgstr[1] "Setur upp %(num)d pakka." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Fjarlægi einn pakka." -msgstr[1] "Fjarlægi %(num)d pakka." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Aftengja skráarkerfi." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Aftengja skráarkerfi." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Setja upp pakka." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Vinnslupakkar (%(count)d / %(total)d)" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Setja upp einn pakka." +msgstr[1] "Setur upp %(num)d pakka." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Fjarlægi einn pakka." +msgstr[1] "Fjarlægi %(num)d pakka." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/it_IT/LC_MESSAGES/python.po b/lang/python/it_IT/LC_MESSAGES/python.po index 0f41bbfb1..b556b5963 100644 --- a/lang/python/it_IT/LC_MESSAGES/python.po +++ b/lang/python/it_IT/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Saverio , 2020\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" @@ -23,69 +23,78 @@ msgstr "" "Language: it_IT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Installa pacchetti." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Configura GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Elaborazione dei pacchetti (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Montaggio partizioni." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installando un pacchetto." -msgstr[1] "Installazione di %(num)d pacchetti." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Errore di Configurazione" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Rimuovendo un pacchetto." -msgstr[1] "Rimozione di %(num)d pacchetti." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Nessuna partizione definita per l'uso con
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Salvataggio della configurazione di rete." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Configura servizi systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Errore di Configurazione" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Impossibile modificare il servizio" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "Nessun punto di mount root è dato in l'uso per
{!s}
" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"La chiamata systemctl {arg!s} in chroot ha restituito il codice" +" di errore {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Smonta i file system." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Impossibile abilitare il servizio systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Configurazione di mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Impossibile abilitare la destinazione systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Nessuna partizione definita per l'uso con
{!s}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" +"Impossibile disabilitare la destinazione systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configurazione del servizio OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Impossibile mascherare l'unità systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Comandi systemd sconosciuti {command!s} " +"e{suffix!s} per l'unità {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Smonta i file system." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -103,42 +112,42 @@ msgstr "Estrazione immagine {}/{}, file {}/{}" msgid "Starting to unpack {}" msgstr "Avvio dell'estrazione {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Estrazione dell'immagine \"{}\" fallita" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nessun punto di montaggio per la partizione di root" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "globalstorage non contiene una chiave \"rootMountPoint\", nessuna azione " "prevista" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Punto di montaggio per la partizione di root errato" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint è \"{}\" ma non esiste, nessuna azione prevista" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Configurazione unsquash errata" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Il filesystem per \"{}\" ({}) non è supportato dal kernel corrente" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Il filesystem sorgente \"{}\" non esiste" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -146,84 +155,86 @@ msgstr "" "Impossibile trovare unsquashfs, assicurarsi di aver installato il pacchetto " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "La destinazione del sistema \"{}\" non è una directory" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configura servizi systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Impossibile scrivere il file di configurazione di KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Impossibile modificare il servizio" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Il file di configurazione di KDM {!s} non esiste" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"La chiamata systemctl {arg!s} in chroot ha restituito il codice" -" di errore {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Impossibile scrivere il file di configurazione di LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Impossibile abilitare il servizio systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Il file di configurazione di LXDM {!s} non esiste" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Impossibile abilitare la destinazione systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Impossibile scrivere il file di configurazione di LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" -"Impossibile disabilitare la destinazione systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Il file di configurazione di LightDM {!s} non esiste" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Impossibile mascherare l'unità systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Impossibile configurare LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Comandi systemd sconosciuti {command!s} " -"e{suffix!s} per l'unità {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nessun LightDM greeter installato." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Job python fittizio." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Impossibile scrivere il file di configurazione di SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Python step {} fittizio" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Il file di configurazione di SLIM {!s} non esiste" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Installa il bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" +"Non è stato selezionato alcun display manager per il modulo displaymanager" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Configurazione della localizzazione." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"La lista displaymanagers è vuota o non definita sia in globalstorage che in " +"displaymanager.conf" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Montaggio partizioni." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "La configurazione del display manager è incompleta" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configura il tema Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Configurazione di mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "Nessun punto di mount root è dato in l'uso per
{!s}
" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Configurazione per lo swap cifrato." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Scrittura di fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Installazione dei dati." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -274,6 +285,42 @@ msgid "" msgstr "" "Il percorso del servizio {name!s} è {path!s}, ma non esiste." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Configura il tema Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Installa pacchetti." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Elaborazione dei pacchetti (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installando un pacchetto." +msgstr[1] "Installazione di %(num)d pacchetti." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Rimuovendo un pacchetto." +msgstr[1] "Rimozione di %(num)d pacchetti." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Installa il bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Impostazione del clock hardware." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Creazione di initramfs con dracut." @@ -286,75 +333,31 @@ msgstr "Impossibile eseguire dracut sulla destinazione" msgid "The exit code was {}" msgstr "Il codice di uscita era {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configura GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Impossibile scrivere il file di configurazione di KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Il file di configurazione di KDM {!s} non esiste" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Impossibile scrivere il file di configurazione di LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Il file di configurazione di LXDM {!s} non esiste" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Impossibile scrivere il file di configurazione di LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Il file di configurazione di LightDM {!s} non esiste" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Impossibile configurare LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nessun LightDM greeter installato." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Impossibile scrivere il file di configurazione di SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Il file di configurazione di SLIM {!s} non esiste" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Configurazione di initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" -"Non è stato selezionato alcun display manager per il modulo displaymanager" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Configurazione del servizio OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"La lista displaymanagers è vuota o non definita sia in globalstorage che in " -"displaymanager.conf" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Scrittura di fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "La configurazione del display manager è incompleta" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Job python fittizio." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Configurazione di initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Python step {} fittizio" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Impostazione del clock hardware." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Configurazione della localizzazione." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Installazione dei dati." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Salvataggio della configurazione di rete." diff --git a/lang/python/ja/LC_MESSAGES/python.po b/lang/python/ja/LC_MESSAGES/python.po index ffc3a4bdf..ebbf60f56 100644 --- a/lang/python/ja/LC_MESSAGES/python.po +++ b/lang/python/ja/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: UTUMI Hirosi , 2020\n" "Language-Team: Japanese (https://www.transifex.com/calamares/teams/20061/ja/)\n" @@ -23,67 +23,76 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "パッケージのインストール" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUBを設定にします。" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "パッケージを処理しています (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "パーティションのマウント。" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] " %(num)d パッケージをインストールしています。" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "コンフィグレーションエラー" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] " %(num)d パッケージを削除しています。" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "
{!s}
に使用するパーティションが定義されていません。" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "ネットワーク設定を保存しています。" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "systemdサービスを設定" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "コンフィグレーションエラー" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "サービスが変更できません" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "
{!s}
を使用するのにルートマウントポイントが与えられていません。" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"chroot で systemctl {arg!s} を呼び出すと、エラーコード {num!s} が返されました。" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "ファイルシステムをアンマウント。" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "{name!s}というsystemdサービスが可能にすることができません" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "mkinitcpioを設定しています。" +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "systemd でターゲット {name!s}が開始できません。" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "
{!s}
に使用するパーティションが定義されていません。" +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "systemd でターゲット {name!s}が停止できません。" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcryptサービスを設定しています。" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "systemd ユニット {name!s} をマスクできません。" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"ユニット {name!s} に対する未知の systemd コマンド {command!s} と " +"{suffix!s}。" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "ファイルシステムをアンマウント。" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -101,121 +110,122 @@ msgstr "イメージ {}/{}, ファイル {}/{} を解凍しています" msgid "Starting to unpack {}" msgstr "{} の解凍を開始しています" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "イメージ \"{}\" の展開に失敗" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "ルートパーティションのためのマウントポイントがありません" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage に \"rootMountPoint\" キーが含まれていません。何もしません。" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "ルートパーティションのためのマウントポイントが不正です" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "ルートマウントポイントは \"{}\" ですが、存在しません。何もできません。" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "unsquash の設定が不正です" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "\"{}\" ({}) のファイルシステムは、現在のカーネルではサポートされていません" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "ソースファイルシステム \"{}\" は存在しません" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "unsquashfs が見つかりませんでした。 squashfs-toolsがインストールされているか、確認してください。" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "ターゲットシステムの宛先 \"{}\" はディレクトリではありません" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "systemdサービスを設定" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDMの設定ファイルに書き込みができません" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "サービスが変更できません" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM 設定ファイル {!s} が存在しません" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"chroot で systemctl {arg!s} を呼び出すと、エラーコード {num!s} が返されました。" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDMの設定ファイルに書き込みができません" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "{name!s}というsystemdサービスが可能にすることができません" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM 設定ファイル {!s} が存在しません" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "systemd でターゲット {name!s}が開始できません。" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDMの設定ファイルに書き込みができません" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "systemd でターゲット {name!s}が停止できません。" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM 設定ファイル {!s} が存在しません" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "systemd ユニット {name!s} をマスクできません。" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDMの設定ができません" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"ユニット {name!s} に対する未知の systemd コマンド {command!s} と " -"{suffix!s}。" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM greeter がインストールされていません。" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIMの設定ファイルに書き込みができません" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM 設定ファイル {!s} が存在しません" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "ブートローダーをインストール" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "ディスプレイマネージャが選択されていません。" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "ロケールを設定しています。" +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "ディスプレイマネージャのリストが bothglobalstorage 及び displaymanager.conf 内で空白か未定義です。" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "パーティションのマウント。" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "ディスプレイマネージャの設定が不完全です" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Plymouthテーマを設定" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpioを設定しています。" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "
{!s}
を使用するのにルートマウントポイントが与えられていません。" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "暗号化したswapを設定しています。" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "fstabを書き込んでいます。" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "データのインストール。" #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -261,6 +271,40 @@ msgid "" "exist." msgstr "サービス {name!s} のパスが {path!s} です。これは存在しません。" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouthテーマを設定" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "パッケージのインストール" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "パッケージを処理しています (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] " %(num)d パッケージをインストールしています。" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] " %(num)d パッケージを削除しています。" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "ブートローダーをインストール" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "ハードウェアクロックの設定" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "dracutとinitramfsを作成しています。" @@ -273,72 +317,31 @@ msgstr "ターゲット上で dracut の実行に失敗" msgid "The exit code was {}" msgstr "停止コードは {} でした" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUBを設定にします。" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDMの設定ファイルに書き込みができません" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM 設定ファイル {!s} が存在しません" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDMの設定ファイルに書き込みができません" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM 設定ファイル {!s} が存在しません" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDMの設定ファイルに書き込みができません" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM 設定ファイル {!s} が存在しません" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDMの設定ができません" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "LightDM greeter がインストールされていません。" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIMの設定ファイルに書き込みができません" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM 設定ファイル {!s} が存在しません" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfsを設定しています。" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "ディスプレイマネージャが選択されていません。" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcryptサービスを設定しています。" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "ディスプレイマネージャのリストが bothglobalstorage 及び displaymanager.conf 内で空白か未定義です。" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstabを書き込んでいます。" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "ディスプレイマネージャの設定が不完全です" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python job." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "initramfsを設定しています。" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy python step {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "ハードウェアクロックの設定" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "ロケールを設定しています。" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "データのインストール。" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "ネットワーク設定を保存しています。" diff --git a/lang/python/kk/LC_MESSAGES/python.po b/lang/python/kk/LC_MESSAGES/python.po index 714591de9..0e9162ef5 100644 --- a/lang/python/kk/LC_MESSAGES/python.po +++ b/lang/python/kk/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Kazakh (https://www.transifex.com/calamares/teams/20061/kk/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: kk\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/kn/LC_MESSAGES/python.po b/lang/python/kn/LC_MESSAGES/python.po index 1a855f567..704155d87 100644 --- a/lang/python/kn/LC_MESSAGES/python.po +++ b/lang/python/kn/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Kannada (https://www.transifex.com/calamares/teams/20061/kn/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: kn\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/ko/LC_MESSAGES/python.po b/lang/python/ko/LC_MESSAGES/python.po index d4b691c3c..9ce0aff53 100644 --- a/lang/python/ko/LC_MESSAGES/python.po +++ b/lang/python/ko/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: MarongHappy , 2020\n" "Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n" @@ -22,67 +22,75 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "패키지를 설치합니다." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB 구성" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "패키지 처리중 (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "파티션 마운트 중." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "%(num)d개의 패키지들을 설치하는 중입니다." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "구성 오류" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "%(num)d개의 패키지들을 제거하는 중입니다." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "사용할
{!s}
에 대해 정의된 파티션이 없음." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "네트워크 구성 저장 중." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "systemd 서비스 구성" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "구성 오류" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "서비스를 수정할 수 없음" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "
{!s}
에서 사용할 루트 마운트 지점이 제공되지 않음." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "chroot에서 systemctl {arg!s} 호출에서오류 코드 {num}를 반환 했습니다." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "파일 시스템 마운트를 해제합니다." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "{name! s} 시스템 서비스를 활성화 할 수 없습니다." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "mkinitcpio 구성 중." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "systemd 대상 {name! s}를 활성화 할 수 없습니다." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "사용할
{!s}
에 대해 정의된 파티션이 없음." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "systemd 대상 {name! s}를 비활성화 할 수 없습니다." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt 서비스 구성 중." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "시스템 유닛 {name! s}를 마스크할 수 없습니다." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"유닛 {name! s}에 대해 알 수 없는 시스템 명령 {command! s}{suffix! " +"s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "파일 시스템 마운트를 해제합니다." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -100,120 +108,123 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "\"{}\" 이미지의 압축을 풀지 못했습니다." -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "루트 파티션에 대한 마운트 위치 없음" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage에는 \"rootMountPoint \" 키가 포함되어 있지 않으며 아무 작업도 수행하지 않습니다." -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "루트 파티션에 대한 잘못된 마운트 위치" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint는 \"{}\"이고, 존재하지 않으며, 아무 작업도 수행하지 않습니다." -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "잘못된 unsquash 구성" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "\"{}\" ({})에 대한 파일 시스템은 현재 커널에서 지원되지 않습니다." -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "\"{}\" 소스 파일시스템은 존재하지 않습니다." -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "unsquashfs를 찾지 못했습니다. squashfs-tools 패키지가 설치되어 있는지 확인하십시오." -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "대상 시스템의 \"{}\" 목적지가 디렉토리가 아닙니다." -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "systemd 서비스 구성" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM 구성 파일을 쓸 수 없습니다." -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "서비스를 수정할 수 없음" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM 구성 파일 {! s}가 없습니다" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "chroot에서 systemctl {arg!s} 호출에서오류 코드 {num}를 반환 했습니다." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LMLDM 구성 파일을 쓸 수 없습니다." -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "{name! s} 시스템 서비스를 활성화 할 수 없습니다." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM 구성 파일 {!s}이 없습니다." -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "systemd 대상 {name! s}를 활성화 할 수 없습니다." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM 구성 파일을 쓸 수 없습니다." -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "systemd 대상 {name! s}를 비활성화 할 수 없습니다." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM 구성 파일 {!s}가 없습니다." -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "시스템 유닛 {name! s}를 마스크할 수 없습니다." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM을 구성할 수 없습니다." -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"유닛 {name! s}에 대해 알 수 없는 시스템 명령 {command! s}{suffix! " -"s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM greeter가 설치되지 않았습니다." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "더미 파이썬 작업." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM 구성 파일을 쓸 수 없음" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "더미 파이썬 단계 {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM 구성 파일 {!s}가 없음" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "부트로더 설치." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "displaymanager 모듈에 대해 선택된 디스플레이 관리자가 없습니다." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "로컬 구성 중." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"displaymanagers 목록은 globalstorage 및 displaymanager.conf에서 비어 있거나 정의되지 않습니다." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "파티션 마운트 중." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "디스플레이 관리자 구성이 완료되지 않았습니다." -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "플리머스 테마 구성" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "mkinitcpio 구성 중." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "
{!s}
에서 사용할 루트 마운트 지점이 제공되지 않음." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "암호화된 스왑 구성 중." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "fstab 쓰기." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "데이터 설치중." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -260,6 +271,40 @@ msgid "" "exist." msgstr "{name!s} 서비스에 대한 경로는 {path!s}이고, 존재하지 않습니다." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "플리머스 테마 구성" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "패키지를 설치합니다." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "패키지 처리중 (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "%(num)d개의 패키지들을 설치하는 중입니다." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "%(num)d개의 패키지들을 제거하는 중입니다." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "부트로더 설치." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "하드웨어 클럭 설정 중." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "dracut을 사용하여 initramfs 만들기." @@ -272,73 +317,31 @@ msgstr "대상에서 dracut을 실행하지 못함" msgid "The exit code was {}" msgstr "종료 코드 {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB 구성" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM 구성 파일을 쓸 수 없습니다." - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM 구성 파일 {! s}가 없습니다" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LMLDM 구성 파일을 쓸 수 없습니다." - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM 구성 파일 {!s}이 없습니다." - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM 구성 파일을 쓸 수 없습니다." - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM 구성 파일 {!s}가 없습니다." - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDM을 구성할 수 없습니다." - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "LightDM greeter가 설치되지 않았습니다." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM 구성 파일을 쓸 수 없음" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM 구성 파일 {!s}가 없음" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "initramfs 구성 중." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "displaymanager 모듈에 대해 선택된 디스플레이 관리자가 없습니다." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt 서비스 구성 중." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"displaymanagers 목록은 globalstorage 및 displaymanager.conf에서 비어 있거나 정의되지 않습니다." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "fstab 쓰기." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "디스플레이 관리자 구성이 완료되지 않았습니다." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "더미 파이썬 작업." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "initramfs 구성 중." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "더미 파이썬 단계 {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "하드웨어 클럭 설정 중." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "로컬 구성 중." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "데이터 설치중." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "네트워크 구성 저장 중." diff --git a/lang/python/lo/LC_MESSAGES/python.po b/lang/python/lo/LC_MESSAGES/python.po index 6db05a8ab..3c2ab81cb 100644 --- a/lang/python/lo/LC_MESSAGES/python.po +++ b/lang/python/lo/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Lao (https://www.transifex.com/calamares/teams/20061/lo/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,72 @@ msgstr "" "Language: lo\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -95,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -251,84 +261,77 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/lt/LC_MESSAGES/python.po b/lang/python/lt/LC_MESSAGES/python.po index 0d49871c4..733d46f04 100644 --- a/lang/python/lt/LC_MESSAGES/python.po +++ b/lang/python/lt/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Moo, 2020\n" "Language-Team: Lithuanian (https://www.transifex.com/calamares/teams/20061/lt/)\n" @@ -22,75 +22,77 @@ msgstr "" "Language: lt\n" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Įdiegti paketus." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Konfigūruoti GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Apdorojami paketai (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Prijungiami skaidiniai." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Įdiegiamas %(num)d paketas." -msgstr[1] "Įdiegiami %(num)d paketai." -msgstr[2] "Įdiegiama %(num)d paketų." -msgstr[3] "Įdiegiama %(num)d paketų." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Konfigūracijos klaida" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Šalinamas %(num)d paketas." -msgstr[1] "Šalinami %(num)d paketai." -msgstr[2] "Šalinama %(num)d paketų." -msgstr[3] "Šalinama %(num)d paketų." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Nėra apibrėžta jokių skaidinių, skirtų
{!s}
naudojimui." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Įrašoma tinklo konfigūracija." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfigūruoti systemd tarnybas" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Konfigūracijos klaida" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Nepavyksta modifikuoti tarnybos" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Nėra nurodyta jokių šaknies prijungimo taškų, skirtų
{!s}
" -"naudojimui." +"systemctl {arg!s} iškvieta, esanti chroot, grąžino klaidos kodą" +" {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Atjungti failų sistemas." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Nepavyksta įjungti systemd tarnybos {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfigūruojama mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Nepavyksta įjungti systemd paskirties {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Nėra apibrėžta jokių skaidinių, skirtų
{!s}
naudojimui." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Nepavyksta išjungti systemd paskirties {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Konfigūruojama OpenRC dmcrypt tarnyba." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Nepavyksta maskuoti systemd įtaiso {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Nežinomos systemd komandos {command!s} ir " +"{suffix!s} įtaisui {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Atjungti failų sistemas." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -108,40 +110,40 @@ msgstr "Išpakuojamas atvaizdis {}/{}, failas {}/{}" msgid "Starting to unpack {}" msgstr "Pradedama išpakuoti {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Nepavyko išpakuoti atvaizdį „{}“" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nėra prijungimo taško šaknies skaidiniui" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage viduje nėra „rootMountPoint“ rakto, nieko nedaroma" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Blogas šaknies skaidinio prijungimo taškas" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint yra „{}“, kurio nėra, nieko nedaroma" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Bloga unsquash konfigūracija" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Jūsų branduolys nepalaiko failų sistemos, kuri skirta \"{}\" ({})" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Šaltinio failų sistemos „{}“ nėra" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -149,83 +151,87 @@ msgstr "" "Nepavyko rasti unsquashfs, įsitikinkite, kad esate įdiegę squashfs-tools " "paketą" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Paskirties vieta „{}“, esanti paskirties sistemoje, nėra katalogas" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfigūruoti systemd tarnybas" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Nepavyksta įrašyti KDM konfigūracijos failą" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Nepavyksta modifikuoti tarnybos" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM konfigūracijos failo {!s} nėra" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} iškvieta, esanti chroot, grąžino klaidos kodą" -" {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Nepavyksta įrašyti LXDM konfigūracijos failą" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Nepavyksta įjungti systemd tarnybos {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM konfigūracijos failo {!s} nėra" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Nepavyksta įjungti systemd paskirties {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Nepavyksta įrašyti LightDM konfigūracijos failą" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Nepavyksta išjungti systemd paskirties {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM konfigūracijos failo {!s} nėra" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Nepavyksta maskuoti systemd įtaiso {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Nepavyksta konfigūruoti LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Nežinomos systemd komandos {command!s} ir " -"{suffix!s} įtaisui {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Neįdiegtas joks LightDM pasisveikinimas." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Fiktyvi python užduotis." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Nepavyksta įrašyti SLIM konfigūracijos failą" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Fiktyvus python žingsnis {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM konfigūracijos failo {!s} nėra" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Įdiegti paleidyklę." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Displaymanagers moduliui nėra pasirinkta jokių ekranų tvarkytuvių." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfigūruojamos lokalės." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Displaymanagers sąrašas yra tuščias arba neapibrėžtas tiek " +"bothglobalstorage, tiek ir displaymanager.conf faile." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Prijungiami skaidiniai." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Ekranų tvarkytuvės konfigūracija yra nepilna" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfigūruoti Plymouth temą" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfigūruojama mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Nėra nurodyta jokių šaknies prijungimo taškų, skirtų
{!s}
" +"naudojimui." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfigūruojamas šifruotas sukeitimų skaidinys." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Rašoma fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Įdiegiami duomenys." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -277,6 +283,46 @@ msgid "" msgstr "" "Tarnybos {name!s} kelias yra {path!s}, kurio savo ruožtu nėra." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfigūruoti Plymouth temą" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Įdiegti paketus." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Apdorojami paketai (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Įdiegiamas %(num)d paketas." +msgstr[1] "Įdiegiami %(num)d paketai." +msgstr[2] "Įdiegiama %(num)d paketų." +msgstr[3] "Įdiegiama %(num)d paketų." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Šalinamas %(num)d paketas." +msgstr[1] "Šalinami %(num)d paketai." +msgstr[2] "Šalinama %(num)d paketų." +msgstr[3] "Šalinama %(num)d paketų." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Įdiegti paleidyklę." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Nustatomas aparatinės įrangos laikrodis." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Sukuriama initramfs naudojant dracut." @@ -289,74 +335,31 @@ msgstr "Nepavyko paskirties vietoje paleisti dracut" msgid "The exit code was {}" msgstr "Išėjimo kodas buvo {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Konfigūruoti GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Nepavyksta įrašyti KDM konfigūracijos failą" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM konfigūracijos failo {!s} nėra" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Nepavyksta įrašyti LXDM konfigūracijos failą" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM konfigūracijos failo {!s} nėra" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Nepavyksta įrašyti LightDM konfigūracijos failą" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM konfigūracijos failo {!s} nėra" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Nepavyksta konfigūruoti LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Neįdiegtas joks LightDM pasisveikinimas." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Nepavyksta įrašyti SLIM konfigūracijos failą" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM konfigūracijos failo {!s} nėra" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfigūruojama initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Displaymanagers moduliui nėra pasirinkta jokių ekranų tvarkytuvių." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Konfigūruojama OpenRC dmcrypt tarnyba." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Displaymanagers sąrašas yra tuščias arba neapibrėžtas tiek " -"bothglobalstorage, tiek ir displaymanager.conf faile." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Rašoma fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Ekranų tvarkytuvės konfigūracija yra nepilna" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Fiktyvi python užduotis." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfigūruojama initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Fiktyvus python žingsnis {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Nustatomas aparatinės įrangos laikrodis." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfigūruojamos lokalės." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Įdiegiami duomenys." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Įrašoma tinklo konfigūracija." diff --git a/lang/python/lv/LC_MESSAGES/python.po b/lang/python/lv/LC_MESSAGES/python.po index 50d7ca7e4..d4ac4ed03 100644 --- a/lang/python/lv/LC_MESSAGES/python.po +++ b/lang/python/lv/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Latvian (https://www.transifex.com/calamares/teams/20061/lv/)\n" "MIME-Version: 1.0\n" @@ -17,70 +17,72 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -99,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -255,84 +261,81 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/mk/LC_MESSAGES/python.po b/lang/python/mk/LC_MESSAGES/python.po index e5230ddf7..98853a9b6 100644 --- a/lang/python/mk/LC_MESSAGES/python.po +++ b/lang/python/mk/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\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" @@ -21,68 +21,72 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM конфигурациониот фајл не може да се создаде" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM конфигурациониот фајл {!s} не постои" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM конфигурациониот фајл не може да се создаде" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM конфигурациониот фајл {!s} не постои" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM конфигурациониот фајл не може да се создаде" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM конфигурациониот фајл {!s} не постои" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Не може да се подеси LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Нема инсталирано LightDM поздравувач" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM конфигурациониот фајл не може да се создаде" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM конфигурациониот фајл {!s} не постои" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Немате избрано дисплеј менаџер за displaymanager модулот." + +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM конфигурациониот фајл не може да се создаде" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM конфигурациониот фајл {!s} не постои" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDM конфигурациониот фајл не може да се создаде" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM конфигурациониот фајл {!s} не постои" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM конфигурациониот фајл не може да се создаде" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM конфигурациониот фајл {!s} не постои" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Не може да се подеси LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Нема инсталирано LightDM поздравувач" +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM конфигурациониот фајл не може да се создаде" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM конфигурациониот фајл {!s} не постои" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Немате избрано дисплеј менаџер за displaymanager модулот." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/ml/LC_MESSAGES/python.po b/lang/python/ml/LC_MESSAGES/python.po index bd5c27312..e510dc364 100644 --- a/lang/python/ml/LC_MESSAGES/python.po +++ b/lang/python/ml/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Balasankar C , 2019\n" "Language-Team: Malayalam (https://www.transifex.com/calamares/teams/20061/ml/)\n" @@ -22,68 +22,72 @@ msgstr "" "Language: ml\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "ക്രമീകരണത്തിൽ പിഴവ്" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "ക്രമീകരണത്തിൽ പിഴവ്" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -102,117 +106,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "ബൂട്ട്‌ലോടർ ഇൻസ്റ്റാൾ ചെയ്യൂ ." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -258,84 +266,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "ബൂട്ട്‌ലോടർ ഇൻസ്റ്റാൾ ചെയ്യൂ ." -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/mr/LC_MESSAGES/python.po b/lang/python/mr/LC_MESSAGES/python.po index ff741e7e3..7440713a1 100644 --- a/lang/python/mr/LC_MESSAGES/python.po +++ b/lang/python/mr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Marathi (https://www.transifex.com/calamares/teams/20061/mr/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: mr\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/nb/LC_MESSAGES/python.po b/lang/python/nb/LC_MESSAGES/python.po index dd88e8fad..4a1c802db 100644 --- a/lang/python/nb/LC_MESSAGES/python.po +++ b/lang/python/nb/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: 865ac004d9acf2568b2e4b389e0007c7_fba755c <3516cc82d94f87187da1e036e5f09e42_616112>, 2017\n" "Language-Team: Norwegian Bokmål (https://www.transifex.com/calamares/teams/20061/nb/)\n" @@ -21,68 +21,72 @@ msgstr "" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Installer pakker." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -101,117 +105,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +265,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Installer pakker." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/ne_NP/LC_MESSAGES/python.po b/lang/python/ne_NP/LC_MESSAGES/python.po index 23d843910..028b51b53 100644 --- a/lang/python/ne_NP/LC_MESSAGES/python.po +++ b/lang/python/ne_NP/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Nepali (Nepal) (https://www.transifex.com/calamares/teams/20061/ne_NP/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: ne_NP\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/nl/LC_MESSAGES/python.po b/lang/python/nl/LC_MESSAGES/python.po index 2d169902e..cfb1913bc 100644 --- a/lang/python/nl/LC_MESSAGES/python.po +++ b/lang/python/nl/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Adriaan de Groot , 2020\n" "Language-Team: Dutch (https://www.transifex.com/calamares/teams/20061/nl/)\n" @@ -21,68 +21,72 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Pakketten installeren." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB instellen." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Pakketten verwerken (%(count)d/ %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Pakket installeren." -msgstr[1] "%(num)dpakketten installeren." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Pakket verwijderen." -msgstr[1] "%(num)dpakketten verwijderen." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Netwerk-configuratie opslaan." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -101,119 +105,123 @@ msgstr "Bestandssysteem uitpakken {}/{}, bestand {}/{}" msgid "Starting to unpack {}" msgstr "Beginnen met uitpakken van {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Uitpakken van bestandssysteem \"{}\" mislukt" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Geen mount-punt voor de root-partitie" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage bevat geen sleutel \"rootMountPoint\", er wordt niks gedaan" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Onjuist mount-punt voor de root-partitie" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" "rootMountPoint is ingesteld op \"{}\", welke niet bestaat, er wordt niks " "gedaan" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Voorbeeld Python-taak" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Voorbeeld Python-stap {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Taal en locatie instellen." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -259,84 +267,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB instellen." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Pakketten installeren." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Pakketten verwerken (%(count)d/ %(total)d)" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Pakket installeren." +msgstr[1] "%(num)dpakketten installeren." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Pakket verwijderen." +msgstr[1] "%(num)dpakketten verwijderen." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Voorbeeld Python-taak" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Voorbeeld Python-stap {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Taal en locatie instellen." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Netwerk-configuratie opslaan." diff --git a/lang/python/pl/LC_MESSAGES/python.po b/lang/python/pl/LC_MESSAGES/python.po index 54ff7fa3b..967fae876 100644 --- a/lang/python/pl/LC_MESSAGES/python.po +++ b/lang/python/pl/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Piotr Strębski , 2020\n" "Language-Team: Polish (https://www.transifex.com/calamares/teams/20061/pl/)\n" @@ -23,74 +23,74 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Zainstaluj pakiety." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Konfiguracja GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Przetwarzanie pakietów (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Montowanie partycji." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalowanie jednego pakietu." -msgstr[1] "Instalowanie %(num)d pakietów." -msgstr[2] "Instalowanie %(num)d pakietów." -msgstr[3] "Instalowanie%(num)d pakietów." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Błąd konfiguracji" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Usuwanie jednego pakietu." -msgstr[1] "Usuwanie %(num)d pakietów." -msgstr[2] "Usuwanie %(num)d pakietów." -msgstr[3] "Usuwanie %(num)d pakietów." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Zapisywanie konfiguracji sieci." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfiguracja usług systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Błąd konfiguracji" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Nie można zmodyfikować usług" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Odmontuj systemy plików." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfigurowanie mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odmontuj systemy plików." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "Zapełnianie systemu plików." @@ -107,44 +107,44 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Błąd rozpakowywania obrazu \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Brak punktu montowania partycji root" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "globalstorage nie zawiera klucza \"rootMountPoint\", nic nie zostanie " "zrobione" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Błędny punkt montowania partycji root" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" "Punkt montowania partycji root (rootMountPoint) jest \"{}\", które nie " "istnieje; nic nie zostanie zrobione" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Błędna konfiguracja unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Źródłowy system plików \"{}\" nie istnieje" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -152,79 +152,85 @@ msgstr "" "Nie można odnaleźć unsquashfs, upewnij się, że masz zainstalowany pakiet " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Miejsce docelowe \"{}\" w docelowym systemie nie jest katalogiem" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfiguracja usług systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Nie można zapisać pliku konfiguracji KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Nie można zmodyfikować usług" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Plik konfiguracyjny KDM {!s} nie istnieje" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Nie można zapisać pliku konfiguracji LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Plik konfiguracji LXDM {!s} nie istnieje" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Nie można zapisać pliku konfiguracji LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Plik konfiguracji LightDM {!s} nie istnieje" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Nie można skonfigurować LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nie zainstalowano ekranu powitalnego LightDM." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Zadanie fikcyjne Python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Nie można zapisać pliku konfiguracji SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Krok fikcyjny Python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Plik konfiguracji SLIM {!s} nie istnieje" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalacja programu rozruchowego." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Brak wybranych menedżerów wyświetlania dla modułu displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfigurowanie ustawień lokalnych." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Lista menedżerów wyświetlania jest pusta lub niezdefiniowana w " +"bothglobalstorage i displaymanager.conf" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Montowanie partycji." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Konfiguracja menedżera wyświetlania była niekompletna" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfiguracja motywu Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfigurowanie mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfigurowanie zaszyfrowanej przestrzeni wymiany." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Zapisywanie fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Instalowanie danych." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -269,6 +275,46 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfiguracja motywu Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Zainstaluj pakiety." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Przetwarzanie pakietów (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalowanie jednego pakietu." +msgstr[1] "Instalowanie %(num)d pakietów." +msgstr[2] "Instalowanie %(num)d pakietów." +msgstr[3] "Instalowanie%(num)d pakietów." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Usuwanie jednego pakietu." +msgstr[1] "Usuwanie %(num)d pakietów." +msgstr[2] "Usuwanie %(num)d pakietów." +msgstr[3] "Usuwanie %(num)d pakietów." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalacja programu rozruchowego." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Ustawianie zegara systemowego." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Tworzenie initramfs z dracut." @@ -281,74 +327,31 @@ msgstr "" msgid "The exit code was {}" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Konfiguracja GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Nie można zapisać pliku konfiguracji KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Plik konfiguracyjny KDM {!s} nie istnieje" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Nie można zapisać pliku konfiguracji LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Plik konfiguracji LXDM {!s} nie istnieje" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Nie można zapisać pliku konfiguracji LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Plik konfiguracji LightDM {!s} nie istnieje" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Nie można skonfigurować LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nie zainstalowano ekranu powitalnego LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Nie można zapisać pliku konfiguracji SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Plik konfiguracji SLIM {!s} nie istnieje" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Brak wybranych menedżerów wyświetlania dla modułu displaymanager." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfigurowanie initramfs." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -"Lista menedżerów wyświetlania jest pusta lub niezdefiniowana w " -"bothglobalstorage i displaymanager.conf" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Konfiguracja menedżera wyświetlania była niekompletna" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Zapisywanie fstab." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfigurowanie initramfs." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Zadanie fikcyjne Python." -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Ustawianie zegara systemowego." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Krok fikcyjny Python {}" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Instalowanie danych." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfigurowanie ustawień lokalnych." + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Zapisywanie konfiguracji sieci." diff --git a/lang/python/pt_BR/LC_MESSAGES/python.po b/lang/python/pt_BR/LC_MESSAGES/python.po index 200094bf3..d3d17a2d5 100644 --- a/lang/python/pt_BR/LC_MESSAGES/python.po +++ b/lang/python/pt_BR/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Guilherme, 2020\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/calamares/teams/20061/pt_BR/)\n" @@ -22,70 +22,77 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalar pacotes." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Configurar GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Processando pacotes (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Montando partições." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalando um pacote." -msgstr[1] "Instalando %(num)d pacotes." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Erro de Configuração." -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removendo um pacote." -msgstr[1] "Removendo %(num)d pacotes." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Sem partições definidas para uso por
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Salvando configuração de rede." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Configurar serviços do systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Erro de Configuração." +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Não é possível modificar o serviço" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Nenhum ponto de montagem para o root fornecido para uso por
{!s}
." +"A chamada systemctl {arg!s} no chroot retornou o código de erro" +" {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmontar os sistemas de arquivos." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Não é possível habilitar o serviço {name!s} do systemd." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Configurando mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Não é possível habilitar o alvo {name!s} do systemd." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Sem partições definidas para uso por
{!s}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Não é possível desabilitar o alvo {name!s} do systemd." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configurando serviço dmcrypt do OpenRC." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Não é possível mascarar a unidade {name!s} do systemd." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Comandos desconhecidos do systemd {command!s} e " +"{suffix!s} para a unidade {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar os sistemas de arquivos." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -103,40 +110,40 @@ msgstr "Descompactando imagem {}/{}, arquivo {}/{}" msgid "Starting to unpack {}" msgstr "Começando a descompactar {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Ocorreu uma falha ao descompactar a imagem \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nenhum ponto de montagem para a partição root" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "O globalstorage não contém uma chave \"rootMountPoint\". Nada foi feito." -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Ponto de montagem incorreto para a partição root" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "O rootMountPoint é \"{}\", mas ele não existe. Nada foi feito." -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Configuração incorreta do unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Não há suporte para o sistema de arquivos \"{}\" ({}) no seu kernel atual" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "O sistema de arquivos de origem \"{}\" não existe" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -144,83 +151,87 @@ msgstr "" "Ocorreu uma falha ao localizar o unsquashfs, certifique-se de que o pacote " "squashfs-tools esteja instalado" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "A destinação \"{}\" no sistema de destino não é um diretório" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configurar serviços do systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Não foi possível gravar o arquivo de configuração do KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Não é possível modificar o serviço" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "O arquivo de configuração {!s} do KDM não existe" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"A chamada systemctl {arg!s} no chroot retornou o código de erro" -" {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Não foi possível gravar o arquivo de configuração do LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Não é possível habilitar o serviço {name!s} do systemd." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "O arquivo de configuração {!s} do LXDM não existe" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Não é possível habilitar o alvo {name!s} do systemd." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Não foi possível gravar o arquivo de configuração do LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Não é possível desabilitar o alvo {name!s} do systemd." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "O arquivo de configuração {!s} do LightDM não existe" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Não é possível mascarar a unidade {name!s} do systemd." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Não é possível configurar o LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Comandos desconhecidos do systemd {command!s} e " -"{suffix!s} para a unidade {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Não há nenhuma tela de login do LightDM instalada." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tarefa modelo python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Não foi possível gravar o arquivo de configuração do SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Etapa modelo python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "O arquivo de configuração {!s} do SLIM não existe" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalar bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" +"Nenhum gerenciador de exibição selecionado para o módulo do displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Configurando locais." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"A lista de displaymanagers está vazia ou indefinida no bothglobalstorage e " +"no displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Montando partições." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "A configuração do gerenciador de exibição está incompleta" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configurar tema do Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Configurando mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Nenhum ponto de montagem para o root fornecido para uso por
{!s}
." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Configurando swap encriptada." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Escrevendo fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Instalando os dados." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -275,6 +286,42 @@ msgstr "" "O caminho para o serviço {name!s} é {path!s}, o qual não " "existe." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Configurar tema do Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalar pacotes." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Processando pacotes (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalando um pacote." +msgstr[1] "Instalando %(num)d pacotes." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Removendo um pacote." +msgstr[1] "Removendo %(num)d pacotes." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalar bootloader." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Configurando relógio de hardware." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Criando initramfs com dracut." @@ -287,75 +334,31 @@ msgstr "Erro ao executar dracut no alvo" msgid "The exit code was {}" msgstr "O código de saída foi {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configurar GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Não foi possível gravar o arquivo de configuração do KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "O arquivo de configuração {!s} do KDM não existe" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Não foi possível gravar o arquivo de configuração do LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "O arquivo de configuração {!s} do LXDM não existe" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Não foi possível gravar o arquivo de configuração do LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "O arquivo de configuração {!s} do LightDM não existe" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Não é possível configurar o LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Não há nenhuma tela de login do LightDM instalada." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Não foi possível gravar o arquivo de configuração do SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "O arquivo de configuração {!s} do SLIM não existe" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Configurando initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" -"Nenhum gerenciador de exibição selecionado para o módulo do displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Configurando serviço dmcrypt do OpenRC." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"A lista de displaymanagers está vazia ou indefinida no bothglobalstorage e " -"no displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Escrevendo fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "A configuração do gerenciador de exibição está incompleta" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tarefa modelo python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Configurando initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Etapa modelo python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Configurando relógio de hardware." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Configurando locais." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Instalando os dados." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Salvando configuração de rede." diff --git a/lang/python/pt_PT/LC_MESSAGES/python.po b/lang/python/pt_PT/LC_MESSAGES/python.po index 068b8d061..377c9a553 100644 --- a/lang/python/pt_PT/LC_MESSAGES/python.po +++ b/lang/python/pt_PT/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Ricardo Simões , 2020\n" "Language-Team: Portuguese (Portugal) (https://www.transifex.com/calamares/teams/20061/pt_PT/)\n" @@ -23,69 +23,77 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalar pacotes." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Configurar o GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "A processar pacotes (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "A montar partições." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "A instalar um pacote." -msgstr[1] "A instalar %(num)d pacotes." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Erro de configuração" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "A remover um pacote." -msgstr[1] "A remover %(num)d pacotes." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Nenhuma partição está definida para
{!s}
usar." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "A guardar a configuração de rede." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Configurar serviços systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Erro de configuração" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Não é possível modificar serviço" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "Nenhum ponto de montagem root é fornecido para
{!s}
usar." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"systemctl {arg!s} chamar pelo chroot retornou com código de " +"erro {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Desmontar sistemas de ficheiros." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Não é possível ativar o serviço systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "A configurar o mkintcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Não é possível ativar o destino do systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Nenhuma partição está definida para
{!s}
usar." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Não é possível desativar o destino do systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "A configurar o serviço OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Não é possível mascarar a unidade do systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Comandos do systemd desconhecidos {command!s} e " +"{suffix!s} por unidade {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar sistemas de ficheiros." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -103,42 +111,42 @@ msgstr "A descompactar imagem {}/{}, ficheiro {}/{}" msgid "Starting to unpack {}" msgstr "A começar a descompactação {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Falha ao descompactar imagem \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Nenhum ponto de montagem para a partição root" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage não contém um \"rootMountPoint\" chave, nada a fazer" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Ponto de montagem mau para partição root" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint é \"{}\", que não existe, nada a fazer" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Má configuração unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" "O sistema de ficheiros para \"{}\" ({}) não é suportado pelo seu kernel " "atual" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "O sistema de ficheiros fonte \"{}\" não existe" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -146,83 +154,86 @@ msgstr "" "Falha ao procurar unsquashfs, certifique-se que tem o pacote squashfs-tools " "instalado" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "O destino \"{}\" no sistema de destino não é um diretório" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Configurar serviços systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Não é possível gravar o ficheiro de configuração KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Não é possível modificar serviço" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "O ficheiro de configuração do KDM {!s} não existe" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} chamar pelo chroot retornou com código de " -"erro {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Não é possível gravar o ficheiro de configuração LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Não é possível ativar o serviço systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "O ficheiro de configuração do LXDM {!s} não existe" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Não é possível ativar o destino do systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Não é possível gravar o ficheiro de configuração LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Não é possível desativar o destino do systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "O ficheiro de configuração do LightDM {!s} não existe" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Não é possível mascarar a unidade do systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Não é possível configurar o LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Comandos do systemd desconhecidos {command!s} e " -"{suffix!s} por unidade {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nenhum ecrã de boas-vindas LightDM instalado." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Tarefa Dummy python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Não é possível gravar o ficheiro de configuração SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Passo Dummy python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "O ficheiro de configuração do SLIM {!s} não existe" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalar o carregador de arranque." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" +"Nenhum gestor de exibição selecionado para o módulo de gestor de exibição." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "A configurar a localização." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"A lista de gestores de exibição está vazia ou indefinida no globalstorage e " +"no displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "A montar partições." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "A configuração do gestor de exibição estava incompleta" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Configurar tema do Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "A configurar o mkintcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "Nenhum ponto de montagem root é fornecido para
{!s}
usar." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Configurando a swap criptografada." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "A escrever o fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "A instalar dados." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -276,6 +287,42 @@ msgid "" msgstr "" "O caminho para o serviço {name!s} é {path!s}, que não existe." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Configurar tema do Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalar pacotes." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "A processar pacotes (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "A instalar um pacote." +msgstr[1] "A instalar %(num)d pacotes." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "A remover um pacote." +msgstr[1] "A remover %(num)d pacotes." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalar o carregador de arranque." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "A definir o relógio do hardware." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Criando o initramfs com o dracut." @@ -288,75 +335,31 @@ msgstr "Falha ao executar o dracut no destino" msgid "The exit code was {}" msgstr "O código de saída foi {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Configurar o GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Não é possível gravar o ficheiro de configuração KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "O ficheiro de configuração do KDM {!s} não existe" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Não é possível gravar o ficheiro de configuração LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "O ficheiro de configuração do LXDM {!s} não existe" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Não é possível gravar o ficheiro de configuração LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "O ficheiro de configuração do LightDM {!s} não existe" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Não é possível configurar o LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nenhum ecrã de boas-vindas LightDM instalado." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Não é possível gravar o ficheiro de configuração SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "O ficheiro de configuração do SLIM {!s} não existe" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "A configurar o initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" -"Nenhum gestor de exibição selecionado para o módulo de gestor de exibição." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "A configurar o serviço OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"A lista de gestores de exibição está vazia ou indefinida no globalstorage e " -"no displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "A escrever o fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "A configuração do gestor de exibição estava incompleta" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Tarefa Dummy python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "A configurar o initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Passo Dummy python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "A definir o relógio do hardware." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "A configurar a localização." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "A instalar dados." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "A guardar a configuração de rede." diff --git a/lang/python/ro/LC_MESSAGES/python.po b/lang/python/ro/LC_MESSAGES/python.po index 8620ca7c5..f90faa939 100644 --- a/lang/python/ro/LC_MESSAGES/python.po +++ b/lang/python/ro/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Sebastian Brici , 2018\n" "Language-Team: Romanian (https://www.transifex.com/calamares/teams/20061/ro/)\n" @@ -22,72 +22,74 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalează pachetele." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Se procesează pachetele (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Instalează un pachet." -msgstr[1] "Se instalează %(num)d pachete." -msgstr[2] "Se instalează %(num)d din pachete." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Se elimină un pachet." -msgstr[1] "Se elimină %(num)d pachet." -msgstr[2] "Se elimină %(num)d de pachete." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Demonteaza sistemul de fisiere" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Demonteaza sistemul de fisiere" + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "" @@ -104,117 +106,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Job python fictiv." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -260,84 +266,81 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalează pachetele." -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Se procesează pachetele (%(count)d / %(total)d)" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Instalează un pachet." +msgstr[1] "Se instalează %(num)d pachete." +msgstr[2] "Se instalează %(num)d din pachete." -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Se elimină un pachet." +msgstr[1] "Se elimină %(num)d pachet." +msgstr[2] "Se elimină %(num)d de pachete." -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Job python fictiv." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy python step {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/ru/LC_MESSAGES/python.po b/lang/python/ru/LC_MESSAGES/python.po index d205b0d97..b950fb3b5 100644 --- a/lang/python/ru/LC_MESSAGES/python.po +++ b/lang/python/ru/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: ZIzA, 2020\n" "Language-Team: Russian (https://www.transifex.com/calamares/teams/20061/ru/)\n" @@ -22,73 +22,74 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Установить пакеты." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Настройте GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Обработка пакетов (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Монтирование разделов." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Установка одного пакета." -msgstr[1] "Установка %(num)d пакетов." -msgstr[2] "Установка %(num)d пакетов." -msgstr[3] "Установка %(num)d пакетов." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Ошибка конфигурации" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Удаление одного пакета." -msgstr[1] "Удаление %(num)d пакетов." -msgstr[2] "Удаление %(num)d пакетов." -msgstr[3] "Удаление %(num)d пакетов." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Не определены разделы для использования
{!S}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Сохранение настроек сети." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Настройка systemd сервисов" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Ошибка конфигурации" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Не могу изменить сервис" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"Вызов systemctl {arg!s} в chroot вернул код ошибки {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Размонтирование файловой системы." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Не определены разделы для использования
{!S}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Настройка службы OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Размонтирование файловой системы." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -106,119 +107,122 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Настройка systemd сервисов" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Не могу изменить сервис" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -"Вызов systemctl {arg!s} в chroot вернул код ошибки {num!s}." -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Установить загрузчик." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Настройка языка." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Монтирование разделов." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Настроить тему Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Настройка зашифрованного swap." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Запись fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Установка данных." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -263,6 +267,46 @@ msgid "" "exist." msgstr "" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Настроить тему Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Установить пакеты." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Обработка пакетов (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Установка одного пакета." +msgstr[1] "Установка %(num)d пакетов." +msgstr[2] "Установка %(num)d пакетов." +msgstr[3] "Установка %(num)d пакетов." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Удаление одного пакета." +msgstr[1] "Удаление %(num)d пакетов." +msgstr[2] "Удаление %(num)d пакетов." +msgstr[3] "Удаление %(num)d пакетов." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Установить загрузчик." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Установка аппаратных часов." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Создание initramfs с помощью dracut." @@ -275,72 +319,31 @@ msgstr "Не удалось запустить dracut на цели" msgid "The exit code was {}" msgstr "Код выхода {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Настройте GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Настройка initramfs." -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Настройка службы OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Запись fstab." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Настройка initramfs." - -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Установка аппаратных часов." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Настройка языка." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Установка данных." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Сохранение настроек сети." diff --git a/lang/python/sk/LC_MESSAGES/python.po b/lang/python/sk/LC_MESSAGES/python.po index 2ed854056..99cbec3c1 100644 --- a/lang/python/sk/LC_MESSAGES/python.po +++ b/lang/python/sk/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Dušan Kazik , 2020\n" "Language-Team: Slovak (https://www.transifex.com/calamares/teams/20061/sk/)\n" @@ -21,73 +21,77 @@ msgstr "" "Language: sk\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Inštalácia balíkov." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Konfigurácia zavádzača GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Spracovávajú sa balíky (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Pripájanie oddielov." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Inštaluje sa jeden balík." -msgstr[1] "Inštalujú sa %(num)d balíky." -msgstr[2] "Inštaluje sa %(num)d balíkov." -msgstr[3] "Inštaluje sa %(num)d balíkov." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Chyba konfigurácie" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Odstraňuje sa jeden balík." -msgstr[1] "Odstraňujú sa %(num)d balíky." -msgstr[2] "Odstraňuje sa %(num)d balíkov." -msgstr[3] "Odstraňuje sa %(num)d balíkov." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Nie sú určené žiadne oddiely na použitie pre
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Ukladanie sieťovej konfigurácie." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfigurácia služieb systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Chyba konfigurácie" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Nedá sa upraviť služba" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "Nie je zadaný žiadny bod pripojenia na použitie pre
{!s}
." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"Volanie systemctl {arg!s} in prostredí chroot vrátilo chybový " +"kód {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Odpojenie súborových systémov." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Nedá sa povoliť služba systému systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfigurácia mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Nedá sa povoliť cieľ systému systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Nie sú určené žiadne oddiely na použitie pre
{!s}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Nedá sa zakázať cieľ systému systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Nedá sa zamaskovať jednotka systému systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." msgstr "" +"Neznáme príkazy systému systemd {command!s} a " +"{suffix!s} pre jednotku {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odpojenie súborových systémov." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -105,122 +109,122 @@ msgstr "Rozbaľuje sa obraz {}/{}, súbor {}/{}" msgid "Starting to unpack {}" msgstr "Spúšťa sa rozbaľovanie {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Zlyhalo rozbalenie obrazu „{}“" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Žiadny bod pripojenia pre koreňový oddiel" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Zlý bod pripojenia pre koreňový oddiel" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Nesprávna konfigurácia nástroja unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Súborový systém pre \"{}\" ({}) nie je podporovaný vaším aktuálnym jadrom" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Zdrojový súborový systém \"{}\" neexistuje" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Cieľ \"{}\" v cieľovom systéme nie je adresárom" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfigurácia služieb systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Nedá sa zapísať konfiguračný súbor správcu KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Nedá sa upraviť služba" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Konfiguračný súbor správcu KDM {!s} neexistuje" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"Volanie systemctl {arg!s} in prostredí chroot vrátilo chybový " -"kód {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Nedá sa zapísať konfiguračný súbor správcu LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Nedá sa povoliť služba systému systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Konfiguračný súbor správcu LXDM {!s} neexistuje" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Nedá sa povoliť cieľ systému systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Nedá sa zapísať konfiguračný súbor správcu LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Nedá sa zakázať cieľ systému systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Konfiguračný súbor správcu LightDM {!s} neexistuje" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Nedá sa zamaskovať jednotka systému systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Nedá s nakonfigurovať správca LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Neznáme príkazy systému systemd {command!s} a " -"{suffix!s} pre jednotku {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Nie je nainštalovaný žiadny vítací nástroj LightDM." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Fiktívna úloha jazyka python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Nedá sa zapísať konfiguračný súbor správcu SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Fiktívny krok {} jazyka python" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Konfiguračný súbor správcu SLIM {!s} neexistuje" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Inštalácia zavádzača." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Neboli vybraní žiadni správcovia zobrazenia pre modul displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfigurácia miestnych nastavení." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Pripájanie oddielov." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Konfigurácia správcu zobrazenia nebola úplná" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfigurácia motívu služby Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfigurácia mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "Nie je zadaný žiadny bod pripojenia na použitie pre
{!s}
." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfigurácia zašifrovaného odkladacieho priestoru." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Zapisovanie fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Inštalácia údajov." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -265,6 +269,46 @@ msgid "" "exist." msgstr "Cesta k službe {name!s} je {path!s}, ale neexistuje." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfigurácia motívu služby Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Inštalácia balíkov." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Spracovávajú sa balíky (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Inštaluje sa jeden balík." +msgstr[1] "Inštalujú sa %(num)d balíky." +msgstr[2] "Inštaluje sa %(num)d balíkov." +msgstr[3] "Inštaluje sa %(num)d balíkov." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Odstraňuje sa jeden balík." +msgstr[1] "Odstraňujú sa %(num)d balíky." +msgstr[2] "Odstraňuje sa %(num)d balíkov." +msgstr[3] "Odstraňuje sa %(num)d balíkov." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Inštalácia zavádzača." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Nastavovanie hardvérových hodín." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Vytváranie initramfs pomocou nástroja dracut." @@ -277,72 +321,31 @@ msgstr "Zlyhalo spustenie nástroja dracut v cieli" msgid "The exit code was {}" msgstr "Kód skončenia bol {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Konfigurácia zavádzača GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Nedá sa zapísať konfiguračný súbor správcu KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Konfiguračný súbor správcu KDM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Nedá sa zapísať konfiguračný súbor správcu LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Konfiguračný súbor správcu LXDM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Nedá sa zapísať konfiguračný súbor správcu LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Konfiguračný súbor správcu LightDM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Nedá s nakonfigurovať správca LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Nie je nainštalovaný žiadny vítací nástroj LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Nedá sa zapísať konfiguračný súbor správcu SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Konfiguračný súbor správcu SLIM {!s} neexistuje" - -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Neboli vybraní žiadni správcovia zobrazenia pre modul displaymanager." +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfigurácia initramfs." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Konfigurácia správcu zobrazenia nebola úplná" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Zapisovanie fstab." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfigurácia initramfs." +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Fiktívna úloha jazyka python." -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Nastavovanie hardvérových hodín." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Fiktívny krok {} jazyka python" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Inštalácia údajov." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfigurácia miestnych nastavení." + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Ukladanie sieťovej konfigurácie." diff --git a/lang/python/sl/LC_MESSAGES/python.po b/lang/python/sl/LC_MESSAGES/python.po index a0b5ed446..3d23de20e 100644 --- a/lang/python/sl/LC_MESSAGES/python.po +++ b/lang/python/sl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Slovenian (https://www.transifex.com/calamares/teams/20061/sl/)\n" "MIME-Version: 1.0\n" @@ -17,72 +17,72 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -101,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -257,84 +261,83 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/sq/LC_MESSAGES/python.po b/lang/python/sq/LC_MESSAGES/python.po index 28643d2a4..a0f9279f6 100644 --- a/lang/python/sq/LC_MESSAGES/python.po +++ b/lang/python/sq/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Besnik Bleta , 2020\n" "Language-Team: Albanian (https://www.transifex.com/calamares/teams/20061/sq/)\n" @@ -21,70 +21,77 @@ msgstr "" "Language: sq\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Instalo paketa." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Formësoni GRUB-in." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Po përpunohen paketat (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Po montohen pjesë." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Po instalohet një paketë." -msgstr[1] "Po instalohen %(num)d paketa." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Gabim Formësimi" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Po hiqet një paketë." -msgstr[1] "Po hiqen %(num)d paketa." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "S’ka pjesë të përkufizuara për
{!s}
për t’u përdorur." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Po ruhet formësimi i rrjetit." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Formësoni shërbime systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Gabim Formësimi" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "S’modifikohet dot shërbimi" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"S’është dhënë pikë montimi rrënjë për
{!s}
për t’u përdorur." +"Thirrja systemctl {arg!s} në chroot u përgjigj me kod gabimi " +"{num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Çmontoni sisteme kartelash." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "S’aktivizohet dot shërbimi systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Po formësohet mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "S’aktivizohet dot objektivi systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "S’ka pjesë të përkufizuara për
{!s}
për t’u përdorur." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "S’çaktivizohet dot objektivi systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Po formësohet shërbim OpenRC dmcrypt." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "S’maskohet dot njësia systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Urdhra të panjohur systemd {command!s} dhe " +"{suffix!s} për njësi {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Çmontoni sisteme kartelash." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -102,41 +109,41 @@ msgstr "Po shpaketohet paketa {}/{}, kartela {}/{}" msgid "Starting to unpack {}" msgstr "Po fillohet të shpaketohet {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Dështoi shpaketimi i figurës \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "S’ka pikë montimi për ndarjen rrënjë" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage nuk përmban një vlerë \"rootMountPoint\", s’po bëhet gjë" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Pikë e gabuar montimi për ndarjen rrënjë" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint është \"{}\", që s’ekziston, s’po bëhet gjë" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Formësim i keq i unsquash-it" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" "Sistemi i kartelave për \"{}\" ({}) nuk mbulohet nga kerneli juaj i tanishëm" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Sistemi i kartelave \"{}\" ({}) s’ekziston" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -144,83 +151,86 @@ msgstr "" "S’u arrit të gjendej unsquashfs, sigurohuni se e keni të instaluar paketën " "squashfs-tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Destinacioni \"{}\" te sistemi i synuar s’është drejtori" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Formësoni shërbime systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "S’shkruhet dot kartelë formësimi KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "S’modifikohet dot shërbimi" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "S’ekziston kartelë formësimi KDM {!s}" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"Thirrja systemctl {arg!s} në chroot u përgjigj me kod gabimi " -"{num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "S’shkruhet dot kartelë formësimi LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "S’aktivizohet dot shërbimi systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "S’ekziston kartelë formësimi LXDM {!s}" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "S’aktivizohet dot objektivi systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "S’shkruhet dot kartelë formësimi LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "S’çaktivizohet dot objektivi systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "S’ekziston kartelë formësimi LightDM {!s}" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "S’maskohet dot njësia systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "S’formësohet dot LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Urdhra të panjohur systemd {command!s} dhe " -"{suffix!s} për njësi {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "S’ka të instaluar përshëndetës LightDM." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Akt python dummy." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "S’shkruhet dot kartelë formësimi SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Hap python {} dummy" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "S’ekziston kartelë formësimi SLIM {!s}" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Instalo ngarkues nisjesh." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "S’janë përzgjedhur përgjegjës ekrani për modulin displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Po formësohen vendoret." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Lista displaymanagers është e zbrazët ose e papërcaktuar si te " +"globalstorage, ashtu edhe te displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Po montohen pjesë." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Formësimi i përgjegjësit të ekranit s’qe i plotë" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Formësoni temën Plimuth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Po formësohet mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"S’është dhënë pikë montimi rrënjë për
{!s}
për t’u përdorur." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Po formësohet pjesë swap e fshehtëzuar." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Po shkruhet fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Po instalohen të dhëna." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -273,6 +283,42 @@ msgstr "" "Shtegu për shërbimin {name!s} është {path!s}, i cili nuk " "ekziston." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Formësoni temën Plimuth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Instalo paketa." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Po përpunohen paketat (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Po instalohet një paketë." +msgstr[1] "Po instalohen %(num)d paketa." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Po hiqet një paketë." +msgstr[1] "Po hiqen %(num)d paketa." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Instalo ngarkues nisjesh." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Po caktohet ora hardware." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Po krijohet initramfs me dracut." @@ -285,74 +331,31 @@ msgstr "S’u arrit të xhirohej dracut mbi objektivin" msgid "The exit code was {}" msgstr "Kodi i daljes qe {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Formësoni GRUB-in." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "S’shkruhet dot kartelë formësimi KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "S’ekziston kartelë formësimi KDM {!s}" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "S’shkruhet dot kartelë formësimi LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "S’ekziston kartelë formësimi LXDM {!s}" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "S’shkruhet dot kartelë formësimi LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "S’ekziston kartelë formësimi LightDM {!s}" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "S’formësohet dot LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "S’ka të instaluar përshëndetës LightDM." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "S’shkruhet dot kartelë formësimi SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "S’ekziston kartelë formësimi SLIM {!s}" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Po formësohet initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "S’janë përzgjedhur përgjegjës ekrani për modulin displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Po formësohet shërbim OpenRC dmcrypt." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Lista displaymanagers është e zbrazët ose e papërcaktuar si te " -"globalstorage, ashtu edhe te displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Po shkruhet fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Formësimi i përgjegjësit të ekranit s’qe i plotë" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Akt python dummy." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Po formësohet initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Hap python {} dummy" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Po caktohet ora hardware." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Po formësohen vendoret." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Po instalohen të dhëna." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Po ruhet formësimi i rrjetit." diff --git a/lang/python/sr/LC_MESSAGES/python.po b/lang/python/sr/LC_MESSAGES/python.po index acf821b95..232966a9c 100644 --- a/lang/python/sr/LC_MESSAGES/python.po +++ b/lang/python/sr/LC_MESSAGES/python.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Slobodan Simić , 2020\n" "Language-Team: Serbian (https://www.transifex.com/calamares/teams/20061/sr/)\n" @@ -21,72 +21,74 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Подеси ГРУБ" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Монтирање партиција." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Грешка поставе" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Упис поставе мреже." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Подеси „systemd“ сервисе" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Грешка поставе" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Не могу да мењам сервис" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Демонтирање фајл-система." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." msgstr "" +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Демонтирање фајл-система." + #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." msgstr "Попуњавање фајл-система." @@ -103,118 +105,122 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Неуспело распакивање одраза \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Нема тачке мотирања за root партицију" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Лоша тачка монтирања за корену партицију" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Подеси „systemd“ сервисе" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Не могу да мењам сервис" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Подешавање локалитета." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Монтирање партиција." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Уписивање fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Инсталирање података." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -259,84 +265,81 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Подеси ГРУБ" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Уписивање fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Подешавање локалитета." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Инсталирање података." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Упис поставе мреже." diff --git a/lang/python/sr@latin/LC_MESSAGES/python.po b/lang/python/sr@latin/LC_MESSAGES/python.po index 89549619d..947a3ac0c 100644 --- a/lang/python/sr@latin/LC_MESSAGES/python.po +++ b/lang/python/sr@latin/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Serbian (Latin) (https://www.transifex.com/calamares/teams/20061/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,70 +17,72 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -99,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -255,84 +261,81 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/sv/LC_MESSAGES/python.po b/lang/python/sv/LC_MESSAGES/python.po index 814d4e9bb..8248bddee 100644 --- a/lang/python/sv/LC_MESSAGES/python.po +++ b/lang/python/sv/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Tobias Olausson , 2020\n" "Language-Team: Swedish (https://www.transifex.com/calamares/teams/20061/sv/)\n" @@ -23,70 +23,77 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Installera paket." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Konfigurera GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Bearbetar paket (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Monterar partitioner." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installerar ett paket." -msgstr[1] "Installerar %(num)d paket." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Konfigurationsfel" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Tar bort ett paket." -msgstr[1] "Tar bort %(num)d paket." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Inga partitioner är definerade för
{!s}
att använda." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Sparar nätverkskonfiguration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Konfigurera systemd tjänster" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Konfigurationsfel" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Kunde inte modifiera tjänst" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Ingen root monteringspunkt är angiven för
{!s}
att använda." +"Anrop till systemctl {arg!s}i chroot returnerade felkod " +"{num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Avmontera filsystem." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Kunde inte aktivera systemd tjänst {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Konfigurerar mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Kunde inte aktivera systemd målsystem {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Inga partitioner är definerade för
{!s}
att använda." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Kunde inte inaktivera systemd målsystem {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Konfigurerar OpenRC dmcrypt tjänst." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Kan inte maskera systemd unit {name!s}" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Okända systemd kommandon {command!s} och {suffix!s} för " +"enhet {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Avmontera filsystem." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -104,40 +111,40 @@ msgstr "Packar upp avbild {}/{}, fil {}/{}" msgid "Starting to unpack {}" msgstr "Börjar att packa upp {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Misslyckades att packa upp avbild \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Ingen monteringspunkt för root partition" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage innehåller ingen \"rootMountPoint\"-nyckel, så gör inget" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Dålig monteringspunkt för root partition" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint är \"{}\", vilket inte finns, så gör inget" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Dålig unsquash konfiguration" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "Filsystemet för \"{}\" ({}) stöds inte av din nuvarande kärna" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Källfilsystemet \"{}\" existerar inte" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -145,83 +152,86 @@ msgstr "" "Kunde inte hitta unsquashfs, se till att du har paketet squashfs-tools " "installerat" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Destinationen \"{}\" på målsystemet är inte en katalog" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Konfigurera systemd tjänster" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Misslyckades med att skriva KDM konfigurationsfil" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Kunde inte modifiera tjänst" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM konfigurationsfil {!s} existerar inte" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"Anrop till systemctl {arg!s}i chroot returnerade felkod " -"{num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Misslyckades med att skriva LXDM konfigurationsfil" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Kunde inte aktivera systemd tjänst {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM konfigurationsfil {!s} existerar inte" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Kunde inte aktivera systemd målsystem {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Misslyckades med att skriva LightDM konfigurationsfil" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Kunde inte inaktivera systemd målsystem {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM konfigurationsfil {!s} existerar inte" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Kan inte maskera systemd unit {name!s}" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Kunde inte konfigurera LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Okända systemd kommandon {command!s} och {suffix!s} för " -"enhet {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Ingen LightDM greeter installerad." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Exempel python jobb" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Misslyckades med att SLIM konfigurationsfil" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Exempel python steg {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM konfigurationsfil {!s} existerar inte" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Installera starthanterare." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Ingen skärmhanterare vald för displaymanager modulen." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Konfigurerar språkinställningar" +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Skärmhanterar listan är tom eller odefinierad i bothglobalstorage och " +"displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Monterar partitioner." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Konfiguration för displayhanteraren var inkomplett" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Konfigurera Plymouth tema" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Konfigurerar mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Ingen root monteringspunkt är angiven för
{!s}
att använda." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Konfigurerar krypterad swap." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Skriver fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Installerar data." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -273,6 +283,42 @@ msgid "" msgstr "" "Sökvägen för tjänst {name!s} är {path!s}, som inte existerar." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Konfigurera Plymouth tema" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Installera paket." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Bearbetar paket (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Installerar ett paket." +msgstr[1] "Installerar %(num)d paket." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Tar bort ett paket." +msgstr[1] "Tar bort %(num)d paket." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Installera starthanterare." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Ställer hårdvaruklockan." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Skapar initramfs med dracut." @@ -285,74 +331,31 @@ msgstr "Misslyckades att köra dracut på målet " msgid "The exit code was {}" msgstr "Felkoden var {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Konfigurera GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Misslyckades med att skriva KDM konfigurationsfil" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM konfigurationsfil {!s} existerar inte" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Misslyckades med att skriva LXDM konfigurationsfil" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM konfigurationsfil {!s} existerar inte" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Misslyckades med att skriva LightDM konfigurationsfil" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM konfigurationsfil {!s} existerar inte" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Kunde inte konfigurera LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Ingen LightDM greeter installerad." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Misslyckades med att SLIM konfigurationsfil" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM konfigurationsfil {!s} existerar inte" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Konfigurerar initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Ingen skärmhanterare vald för displaymanager modulen." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Konfigurerar OpenRC dmcrypt tjänst." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Skärmhanterar listan är tom eller odefinierad i bothglobalstorage och " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Skriver fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Konfiguration för displayhanteraren var inkomplett" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Exempel python jobb" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Konfigurerar initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Exempel python steg {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Ställer hårdvaruklockan." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Konfigurerar språkinställningar" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Installerar data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Sparar nätverkskonfiguration." diff --git a/lang/python/th/LC_MESSAGES/python.po b/lang/python/th/LC_MESSAGES/python.po index 31d47dae1..d042d58fe 100644 --- a/lang/python/th/LC_MESSAGES/python.po +++ b/lang/python/th/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Thai (https://www.transifex.com/calamares/teams/20061/th/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,72 @@ msgstr "" "Language: th\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -95,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -251,84 +261,77 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/tr_TR/LC_MESSAGES/python.po b/lang/python/tr_TR/LC_MESSAGES/python.po index ce2c70ff8..bf26b5ad8 100644 --- a/lang/python/tr_TR/LC_MESSAGES/python.po +++ b/lang/python/tr_TR/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Demiray Muhterem , 2020\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/calamares/teams/20061/tr_TR/)\n" @@ -22,69 +22,77 @@ msgstr "" "Language: tr_TR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Paketleri yükle" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "GRUB'u yapılandır." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Paketler işleniyor (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Disk bölümlemeleri bağlanıyor." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "%(num)d paket yükleniyor" -msgstr[1] "%(num)d paket yükleniyor" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Yapılandırma Hatası" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "%(num)d paket kaldırılıyor." -msgstr[1] "%(num)d paket kaldırılıyor." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "
{!s}
kullanması için hiçbir bölüm tanımlanmadı." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Ağ yapılandırması kaydediliyor." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Systemd hizmetlerini yapılandır" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Yapılandırma Hatası" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Hizmet değiştirilemiyor" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "
{!s}
kullanması için kök bağlama noktası verilmedi." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" +"systemctl {arg!s} chroot çağrısında hata kodu döndürüldü " +"{num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Dosya sistemlerini ayırın." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Systemd hizmeti etkinleştirilemiyor {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Mkinitcpio yapılandırılıyor." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Systemd hedefi etkinleştirilemiyor {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "
{!s}
kullanması için hiçbir bölüm tanımlanmadı." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Systemd hedefi devre dışı bırakılamıyor {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "OpenRC dmcrypt hizmeti yapılandırılıyor." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Systemd birimi maskeleyemiyor {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Bilinmeyen sistem komutları {command!s} ve " +"{suffix!s} {name!s} birimi için." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Dosya sistemlerini ayırın." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -102,124 +110,126 @@ msgstr "Açılan kurulum medyası {}/{}, dışa aktarılan dosya sayısı {}/{}" msgid "Starting to unpack {}" msgstr "Dışa aktarım başlatılıyor {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "\"{}\" kurulum medyası aktarılamadı" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "kök disk bölümü için bağlama noktası yok" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "globalstorage bir \"rootMountPoint\" anahtarı içermiyor, hiçbirşey yapılmadı" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Kök disk bölümü için hatalı bağlama noktası" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint \"{}\", mevcut değil, hiçbirşey yapılmadı" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Unsquash yapılandırma sorunlu" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "\"{}\" ({}) Dosya sistemi mevcut çekirdeğiniz tarafından desteklenmiyor" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "\"{}\" Kaynak dosya sistemi mevcut değil" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" "Unsquashfs bulunamadı, squashfs-tools paketinin kurulu olduğundan emin olun." -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Hedef sistemdeki \"{}\" hedefi bir dizin değil" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Systemd hizmetlerini yapılandır" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "KDM yapılandırma dosyası yazılamıyor" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Hizmet değiştirilemiyor" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM yapılandırma dosyası {!s} mevcut değil" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"systemctl {arg!s} chroot çağrısında hata kodu döndürüldü " -"{num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "LXDM yapılandırma dosyası yazılamıyor" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Systemd hizmeti etkinleştirilemiyor {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM yapılandırma dosyası {!s} mevcut değil" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Systemd hedefi etkinleştirilemiyor {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "LightDM yapılandırma dosyası yazılamıyor" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Systemd hedefi devre dışı bırakılamıyor {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM yapılandırma dosyası {!s} mevcut değil" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Systemd birimi maskeleyemiyor {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "LightDM yapılandırılamıyor" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Bilinmeyen sistem komutları {command!s} ve " -"{suffix!s} {name!s} birimi için." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "LightDM karşılama yüklü değil." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "SLIM yapılandırma dosyası yazılamıyor" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM yapılandırma dosyası {!s} mevcut değil" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Önyükleyici kuruluyor" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Ekran yöneticisi modülü için ekran yöneticisi seçilmedi." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Sistem yerelleri yapılandırılıyor." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Görüntüleyiciler listesi, her iki bölgedeki ve displaymanager.conf öğesinde " +"boş veya tanımsızdır." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Disk bölümlemeleri bağlanıyor." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Ekran yöneticisi yapılandırma işi tamamlanamadı" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Plymouth temasını yapılandır" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Mkinitcpio yapılandırılıyor." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "
{!s}
kullanması için kök bağlama noktası verilmedi." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Şifreli takas alanı yapılandırılıyor." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Fstab dosyasına yazılıyor." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Veri yükleniyor." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -268,6 +278,42 @@ msgid "" "exist." msgstr "{name!s} hizmetinin yolu {path!s}, ki mevcut değil." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Plymouth temasını yapılandır" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Paketleri yükle" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Paketler işleniyor (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "%(num)d paket yükleniyor" +msgstr[1] "%(num)d paket yükleniyor" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "%(num)d paket kaldırılıyor." +msgstr[1] "%(num)d paket kaldırılıyor." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Önyükleyici kuruluyor" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Donanım saati ayarlanıyor." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Dracut ile initramfs oluşturuluyor." @@ -280,74 +326,31 @@ msgstr "Hedef üzerinde dracut çalıştırılamadı" msgid "The exit code was {}" msgstr "Çıkış kodu {} idi" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "GRUB'u yapılandır." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "KDM yapılandırma dosyası yazılamıyor" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM yapılandırma dosyası {!s} mevcut değil" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "LXDM yapılandırma dosyası yazılamıyor" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM yapılandırma dosyası {!s} mevcut değil" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "LightDM yapılandırma dosyası yazılamıyor" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM yapılandırma dosyası {!s} mevcut değil" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "LightDM yapılandırılamıyor" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "LightDM karşılama yüklü değil." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "SLIM yapılandırma dosyası yazılamıyor" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM yapılandırma dosyası {!s} mevcut değil" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Initramfs yapılandırılıyor." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Ekran yöneticisi modülü için ekran yöneticisi seçilmedi." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "OpenRC dmcrypt hizmeti yapılandırılıyor." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Görüntüleyiciler listesi, her iki bölgedeki ve displaymanager.conf öğesinde " -"boş veya tanımsızdır." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Fstab dosyasına yazılıyor." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Ekran yöneticisi yapılandırma işi tamamlanamadı" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Dummy python job." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Initramfs yapılandırılıyor." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Dummy python step {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Donanım saati ayarlanıyor." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Sistem yerelleri yapılandırılıyor." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Veri yükleniyor." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Ağ yapılandırması kaydediliyor." diff --git a/lang/python/uk/LC_MESSAGES/python.po b/lang/python/uk/LC_MESSAGES/python.po index 1fbadfc91..428dea6c2 100644 --- a/lang/python/uk/LC_MESSAGES/python.po +++ b/lang/python/uk/LC_MESSAGES/python.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Yuri Chornoivan , 2020\n" "Language-Team: Ukrainian (https://www.transifex.com/calamares/teams/20061/uk/)\n" @@ -23,74 +23,77 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "Встановити пакети." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Налаштовування GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Обробляємо пакунки (%(count)d з %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Монтування розділів." -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Встановлюємо %(num)d пакунок." -msgstr[1] "Встановлюємо %(num)d пакунки." -msgstr[2] "Встановлюємо %(num)d пакунків." -msgstr[3] "Встановлюємо один пакунок." +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Помилка налаштовування" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Вилучаємо %(num)d пакунок." -msgstr[1] "Вилучаємо %(num)d пакунки." -msgstr[2] "Вилучаємо %(num)d пакунків." -msgstr[3] "Вилучаємо один пакунок." +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "Не визначено розділів для використання
{!s}
." -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "Зберігаємо налаштування мережі." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "Налаштуйте служби systemd" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "Помилка налаштовування" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "Не вдалося змінити службу" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"Не вказано кореневої точки монтування для використання у
{!s}
." +"Внаслідок виклику systemctl {arg!s} у chroot було повернуто " +"повідомлення з кодом помилки {num! s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "Демонтувати файлові системи." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "Не вдалося ввімкнути службу systemd {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "Налаштовуємо mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "Не вдалося ввімкнути завдання systemd {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "Не визначено розділів для використання
{!s}
." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "Не вдалося вимкнути завдання systemd {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Налаштовуємо службу dmcrypt OpenRC." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "Не вдалося замаскувати вузол systemd {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"Невідомі команди systemd {command!s} та {suffix!s}" +" для пристрою {name!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Демонтувати файлові системи." #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -108,45 +111,45 @@ msgstr "Розпаковуємо образ {} з {}, файл {} з {}" msgid "Starting to unpack {}" msgstr "Починаємо розпаковувати {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "Не вдалося розпакувати образ «{}»" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "Немає точки монтування для кореневого розділу" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" "У globalstorage не міститься ключа «rootMountPoint». Не виконуватимемо " "ніяких дій." -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "Помилкова точна монтування для кореневого розділу" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" "Для rootMountPoint вказано значення «{}». Такого шляху не існує. Не " "виконуватимемо ніяких дій." -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "Помилкові налаштування unsquash" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" "У поточному ядрі системи не передбачено підтримки файлової системи «{}» ({})" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "Вихідної файлової системи «{}» не існує" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" @@ -154,83 +157,86 @@ msgstr "" "Не вдалося знайти unsquashfs; переконайтеся, що встановлено пакет squashfs-" "tools" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "Призначення «{}» у цільовій системі не є каталогом" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "Налаштуйте служби systemd" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "Не вдалося записати файл налаштувань KDM" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "Не вдалося змінити службу" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "Файла налаштувань KDM {!s} не існує" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"Внаслідок виклику systemctl {arg!s} у chroot було повернуто " -"повідомлення з кодом помилки {num! s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "Не вдалося виконати запис до файла налаштувань LXDM" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "Не вдалося ввімкнути службу systemd {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "Файла налаштувань LXDM {!s} не існує" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "Не вдалося ввімкнути завдання systemd {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "Не вдалося виконати запис до файла налаштувань LightDM" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "Не вдалося вимкнути завдання systemd {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "Файла налаштувань LightDM {!s} не існує" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "Не вдалося замаскувати вузол systemd {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "Не вдалося налаштувати LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"Невідомі команди systemd {command!s} та {suffix!s}" -" для пристрою {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "Засіб входу до системи LightDM не встановлено." -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "Фіктивне завдання python." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "Не вдалося виконати запис до файла налаштувань SLIM" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "Фіктивний крок python {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "Файла налаштувань SLIM {!s} не існує" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "Встановити завантажувач." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "Не вибрано засобу керування дисплеєм для модуля displaymanager." -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "Налаштовуємо локалі." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" +"Список засобів керування дисплеєм є порожнім або невизначеним у " +"bothglobalstorage та displaymanager.conf." -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "Монтування розділів." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "Налаштування засобу керування дисплеєм є неповними" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "Налаштувати тему Plymouth" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "Налаштовуємо mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" +"Не вказано кореневої точки монтування для використання у
{!s}
." #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "Налаштовуємо зашифрований розділ резервної пам'яті." -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "Записуємо fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "Встановлюємо дані." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -283,6 +289,46 @@ msgstr "" "Шляхом до служби {name!s} вказано {path!s}. Такого шляху не " "існує." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "Налаштувати тему Plymouth" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "Встановити пакети." + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "Обробляємо пакунки (%(count)d з %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "Встановлюємо %(num)d пакунок." +msgstr[1] "Встановлюємо %(num)d пакунки." +msgstr[2] "Встановлюємо %(num)d пакунків." +msgstr[3] "Встановлюємо один пакунок." + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "Вилучаємо %(num)d пакунок." +msgstr[1] "Вилучаємо %(num)d пакунки." +msgstr[2] "Вилучаємо %(num)d пакунків." +msgstr[3] "Вилучаємо один пакунок." + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "Встановити завантажувач." + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "Встановлюємо значення для апаратного годинника." + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "Створюємо initramfs за допомогою dracut." @@ -295,74 +341,31 @@ msgstr "Не вдалося виконати dracut над призначенн msgid "The exit code was {}" msgstr "Код виходу — {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "Налаштовування GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "Не вдалося записати файл налаштувань KDM" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "Файла налаштувань KDM {!s} не існує" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "Не вдалося виконати запис до файла налаштувань LXDM" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "Файла налаштувань LXDM {!s} не існує" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "Не вдалося виконати запис до файла налаштувань LightDM" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "Файла налаштувань LightDM {!s} не існує" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "Не вдалося налаштувати LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "Засіб входу до системи LightDM не встановлено." - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "Не вдалося виконати запис до файла налаштувань SLIM" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "Файла налаштувань SLIM {!s} не існує" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "Налаштовуємо initramfs." -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "Не вибрано засобу керування дисплеєм для модуля displaymanager." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "Налаштовуємо службу dmcrypt OpenRC." -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "" -"Список засобів керування дисплеєм є порожнім або невизначеним у " -"bothglobalstorage та displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "Записуємо fstab." -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "Налаштування засобу керування дисплеєм є неповними" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "Фіктивне завдання python." -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "Налаштовуємо initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "Фіктивний крок python {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "Встановлюємо значення для апаратного годинника." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "Налаштовуємо локалі." -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "Встановлюємо дані." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "Зберігаємо налаштування мережі." diff --git a/lang/python/ur/LC_MESSAGES/python.po b/lang/python/ur/LC_MESSAGES/python.po index e76abba14..4ccb1881a 100644 --- a/lang/python/ur/LC_MESSAGES/python.po +++ b/lang/python/ur/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Urdu (https://www.transifex.com/calamares/teams/20061/ur/)\n" "MIME-Version: 1.0\n" @@ -17,68 +17,72 @@ msgstr "" "Language: ur\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -97,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -253,84 +261,79 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/uz/LC_MESSAGES/python.po b/lang/python/uz/LC_MESSAGES/python.po index 8366e8adc..3d002fc5e 100644 --- a/lang/python/uz/LC_MESSAGES/python.po +++ b/lang/python/uz/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Language-Team: Uzbek (https://www.transifex.com/calamares/teams/20061/uz/)\n" "MIME-Version: 1.0\n" @@ -17,66 +17,72 @@ msgstr "" "Language: uz\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." msgstr "" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." msgstr "" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" msgstr "" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" msgstr "" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." msgstr "" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." msgstr "" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." msgstr "" #: src/modules/unpackfs/main.py:44 @@ -95,117 +101,121 @@ msgstr "" msgid "Starting to unpack {}" msgstr "" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" msgstr "" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" msgstr "" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" msgstr "" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." msgstr "" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" msgstr "" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" msgstr "" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." msgstr "" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." msgstr "" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" msgstr "" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." msgstr "" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." +#: src/modules/rawfs/main.py:35 +msgid "Installing data." msgstr "" #: src/modules/services-openrc/main.py:38 @@ -251,84 +261,77 @@ msgid "" "exist." msgstr "" -#: src/modules/dracut/main.py:36 -msgid "Creating initramfs with dracut." -msgstr "" - -#: src/modules/dracut/main.py:58 -msgid "Failed to run dracut on the target" -msgstr "" - -#: src/modules/dracut/main.py:59 -msgid "The exit code was {}" -msgstr "" - -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" msgstr "" -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." msgstr "" -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "" +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "" +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." msgstr "" -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." msgstr "" -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." msgstr "" -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" msgstr "" -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" msgstr "" -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." msgstr "" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." msgstr "" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." msgstr "" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." msgstr "" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" msgstr "" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." msgstr "" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." msgstr "" diff --git a/lang/python/zh_CN/LC_MESSAGES/python.po b/lang/python/zh_CN/LC_MESSAGES/python.po index 6f632342b..b51e4c766 100644 --- a/lang/python/zh_CN/LC_MESSAGES/python.po +++ b/lang/python/zh_CN/LC_MESSAGES/python.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: 玉堂白鹤 , 2020\n" "Language-Team: Chinese (China) (https://www.transifex.com/calamares/teams/20061/zh_CN/)\n" @@ -25,67 +25,75 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "安装软件包。" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "配置 GRUB." -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "软件包处理中(%(count)d/%(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "挂载分区。" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "安装%(num)d软件包。" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "配置错误" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "移除%(num)d软件包。" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "没有分配分区给
{!s}
。" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "正在保存网络配置。" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "配置 systemd 服务" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "配置错误" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "无法修改服务" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr " 未设置
{!s}
要使用的根挂载点。" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "chroot 中的 systemctl {arg!s} 命令返回错误 {num!s}." -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "卸载文件系统。" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "无法启用 systemd 服务 {name!s}." -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "配置 mkinitcpio." +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "无法启用 systemd 目标 {name!s}." -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "没有分配分区给
{!s}
。" +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "无法禁用 systemd 目标 {name!s}." -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "配置 OpenRC dmcrypt 服务。" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "无法屏蔽 systemd 单元 {name!s}." + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"未知的 systemd 命令 {command!s} 和 {name!s} 单元前缀 " +"{suffix!s}." + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "卸载文件系统。" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -103,120 +111,122 @@ msgstr "解压镜像 {}/{},文件{}/{}" msgid "Starting to unpack {}" msgstr "开始解压 {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "解压镜像失败 \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "无 root 分区挂载点" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage 未包含 \"rootMountPoint\",跳过" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "错误的 root 分区挂载点" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint 是 \"{}\",不存在此位置,跳过" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "错误的 unsquash 配置" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "你当前的内核不支持文件系统 \"{}\" ({})" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "源文件系统 \"{}\" 不存在" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "未找到 unsquashfs,请确保安装了 squashfs-tools 软件包" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "目标系统中的 \"{}\" 不是一个目录" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "配置 systemd 服务" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "无法写入 KDM 配置文件" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "无法修改服务" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM 配置文件 {!s} 不存在" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "chroot 中的 systemctl {arg!s} 命令返回错误 {num!s}." +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "无法写入 LXDM 配置文件" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "无法启用 systemd 服务 {name!s}." +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM 配置文件 {!s} 不存在" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "无法启用 systemd 目标 {name!s}." +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "无法写入 LightDM 配置文件" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "无法禁用 systemd 目标 {name!s}." +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM 配置文件 {!s} 不存在" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "无法屏蔽 systemd 单元 {name!s}." +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "无法配置 LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"未知的 systemd 命令 {command!s} 和 {name!s} 单元前缀 " -"{suffix!s}." +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "未安装 LightDM 欢迎程序。" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "占位 Python 任务。" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "无法写入 SLIM 配置文件" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "占位 Python 步骤 {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM 配置文件 {!s} 不存在" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "安装启动加载器。" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "显示管理器模块中未选择显示管理器。" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "正在进行本地化配置。" +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "globalstorage 和 displaymanager.conf 配置文件中都没有配置显示管理器。" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "挂载分区。" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "显示管理器配置不完全" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "配置 Plymouth 主题" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "配置 mkinitcpio." + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr " 未设置
{!s}
要使用的根挂载点。" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "配置加密交换分区。" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "正在写入 fstab。" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "安装数据." #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -261,6 +271,40 @@ msgid "" "exist." msgstr "服务 {name!s} 的路径 {path!s} 不存在。" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "配置 Plymouth 主题" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "安装软件包。" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "软件包处理中(%(count)d/%(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "安装%(num)d软件包。" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "移除%(num)d软件包。" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "安装启动加载器。" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "设置硬件时钟。" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "用 dracut 创建 initramfs." @@ -273,72 +317,31 @@ msgstr "无法在目标中运行 dracut " msgid "The exit code was {}" msgstr "退出码是 {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "配置 GRUB." - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "无法写入 KDM 配置文件" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM 配置文件 {!s} 不存在" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "无法写入 LXDM 配置文件" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM 配置文件 {!s} 不存在" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "无法写入 LightDM 配置文件" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM 配置文件 {!s} 不存在" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "无法配置 LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "未安装 LightDM 欢迎程序。" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "无法写入 SLIM 配置文件" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM 配置文件 {!s} 不存在" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "正在配置初始内存文件系统。" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "显示管理器模块中未选择显示管理器。" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "配置 OpenRC dmcrypt 服务。" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "globalstorage 和 displaymanager.conf 配置文件中都没有配置显示管理器。" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "正在写入 fstab。" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "显示管理器配置不完全" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "占位 Python 任务。" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "正在配置初始内存文件系统。" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "占位 Python 步骤 {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "设置硬件时钟。" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "正在进行本地化配置。" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "安装数据." +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "正在保存网络配置。" diff --git a/lang/python/zh_TW/LC_MESSAGES/python.po b/lang/python/zh_TW/LC_MESSAGES/python.po index 5c76c2b20..553977d26 100644 --- a/lang/python/zh_TW/LC_MESSAGES/python.po +++ b/lang/python/zh_TW/LC_MESSAGES/python.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-30 23:13+0200\n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" "Last-Translator: Walter Cheuk , 2020\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/calamares/teams/20061/zh_TW/)\n" @@ -22,67 +22,75 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 -#: src/modules/packages/main.py:78 -msgid "Install packages." -msgstr "安裝軟體包。" +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "設定 GRUB。" -#: src/modules/packages/main.py:66 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "正在處理軟體包 (%(count)d / %(total)d)" +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "正在掛載分割區。" -#: src/modules/packages/main.py:71 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "正在安裝 %(num)d 軟體包。" +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "設定錯誤" -#: src/modules/packages/main.py:74 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "正在移除 %(num)d 軟體包。" +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "沒有分割區被定義為
{!s}
以供使用。" -#: src/modules/networkcfg/main.py:37 -msgid "Saving network configuration." -msgstr "正在儲存網路設定。" +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "設定 systemd 服務" -#: src/modules/networkcfg/main.py:48 src/modules/initcpiocfg/main.py:205 -#: src/modules/initcpiocfg/main.py:209 src/modules/openrcdmcryptcfg/main.py:78 -#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/localecfg/main.py:144 -#: src/modules/mount/main.py:145 src/modules/luksopenswaphookcfg/main.py:95 -#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/fstab/main.py:332 -#: src/modules/fstab/main.py:338 src/modules/initramfscfg/main.py:94 -#: src/modules/initramfscfg/main.py:98 src/modules/rawfs/main.py:171 -msgid "Configuration Error" -msgstr "設定錯誤" +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "無法修改服務" -#: src/modules/networkcfg/main.py:49 src/modules/initcpiocfg/main.py:210 -#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/localecfg/main.py:145 -#: src/modules/luksopenswaphookcfg/main.py:100 src/modules/fstab/main.py:339 -#: src/modules/initramfscfg/main.py:99 -msgid "No root mount point is given for
{!s}
to use." -msgstr "沒有給定的根掛載點
{!s}
以供使用。" +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "在 chroot 中呼叫的 systemctl {arg!s} 回傳了錯誤代碼 {num!s}。" -#: src/modules/umount/main.py:40 -msgid "Unmount file systems." -msgstr "解除掛載檔案系統。" +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "無法啟用 systemd 服務 {name!s}。" -#: src/modules/initcpiocfg/main.py:37 -msgid "Configuring mkinitcpio." -msgstr "正在設定 mkinitcpio。" +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "無法啟用 systemd 目標 {name!s}。" -#: src/modules/initcpiocfg/main.py:206 src/modules/openrcdmcryptcfg/main.py:79 -#: src/modules/mount/main.py:146 src/modules/luksopenswaphookcfg/main.py:96 -#: src/modules/fstab/main.py:333 src/modules/initramfscfg/main.py:95 -#: src/modules/rawfs/main.py:172 -msgid "No partitions are defined for
{!s}
to use." -msgstr "沒有分割區被定義為
{!s}
以供使用。" +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "無法停用 systemd 目標 {name!s}。" -#: src/modules/openrcdmcryptcfg/main.py:34 -msgid "Configuring OpenRC dmcrypt service." -msgstr "正在設定 OpenRC dmcrypt 服務。" +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "無法 mask systemd 單位 {name!s}。" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" +"未知的 systemd 指令 {command!s}{suffix!s} 給單位 " +"{name!s}。" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "解除掛載檔案系統。" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." @@ -100,120 +108,122 @@ msgstr "正在解壓縮 {}/{},檔案 {}/{}" msgid "Starting to unpack {}" msgstr "開始解壓縮 {}" -#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:432 +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" msgstr "無法解開映像檔 \"{}\"" -#: src/modules/unpackfs/main.py:399 +#: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" msgstr "沒有 root 分割區的掛載點" -#: src/modules/unpackfs/main.py:400 +#: src/modules/unpackfs/main.py:416 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "globalstorage 不包含 \"rootMountPoint\" 鍵,不做任何事" -#: src/modules/unpackfs/main.py:405 +#: src/modules/unpackfs/main.py:421 msgid "Bad mount point for root partition" msgstr "root 分割區掛載點錯誤" -#: src/modules/unpackfs/main.py:406 +#: src/modules/unpackfs/main.py:422 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr "rootMountPoint 為 \"{}\",其不存在,不做任何事" -#: src/modules/unpackfs/main.py:422 src/modules/unpackfs/main.py:426 -#: src/modules/unpackfs/main.py:446 +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 msgid "Bad unsquash configuration" msgstr "錯誤的 unsquash 設定" -#: src/modules/unpackfs/main.py:423 +#: src/modules/unpackfs/main.py:439 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "\"{}\" ({}) 的檔案系統不獲您目前的內核所支援" -#: src/modules/unpackfs/main.py:427 +#: src/modules/unpackfs/main.py:443 msgid "The source filesystem \"{}\" does not exist" msgstr "來源檔案系統 \"{}\" 不存在" -#: src/modules/unpackfs/main.py:433 +#: src/modules/unpackfs/main.py:449 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "找不到 unsquashfs,請確定已安裝 squashfs-tools 軟體包" -#: src/modules/unpackfs/main.py:447 +#: src/modules/unpackfs/main.py:463 msgid "The destination \"{}\" in the target system is not a directory" msgstr "目標系統中的目的地 \"{}\" 不是目錄" -#: src/modules/services-systemd/main.py:35 -msgid "Configure systemd services" -msgstr "設定 systemd 服務" +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "無法寫入 KDM 設定檔" -#: src/modules/services-systemd/main.py:68 -#: src/modules/services-openrc/main.py:102 -msgid "Cannot modify service" -msgstr "無法修改服務" +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "KDM 設定檔 {!s} 不存在" -#: src/modules/services-systemd/main.py:69 -msgid "" -"systemctl {arg!s} call in chroot returned error code {num!s}." -msgstr "在 chroot 中呼叫的 systemctl {arg!s} 回傳了錯誤代碼 {num!s}。" +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "無法寫入 LXDM 設定檔" -#: src/modules/services-systemd/main.py:72 -#: src/modules/services-systemd/main.py:76 -msgid "Cannot enable systemd service {name!s}." -msgstr "無法啟用 systemd 服務 {name!s}。" +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "LXDM 設定檔 {!s} 不存在" -#: src/modules/services-systemd/main.py:74 -msgid "Cannot enable systemd target {name!s}." -msgstr "無法啟用 systemd 目標 {name!s}。" +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "無法寫入 LightDM 設定檔" -#: src/modules/services-systemd/main.py:78 -msgid "Cannot disable systemd target {name!s}." -msgstr "無法停用 systemd 目標 {name!s}。" +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "LightDM 設定檔 {!s} 不存在" -#: src/modules/services-systemd/main.py:80 -msgid "Cannot mask systemd unit {name!s}." -msgstr "無法 mask systemd 單位 {name!s}。" +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "無法設定 LightDM" -#: src/modules/services-systemd/main.py:82 -msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." -msgstr "" -"未知的 systemd 指令 {command!s}{suffix!s} 給單位 " -"{name!s}。" +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "未安裝 LightDM greeter。" -#: src/modules/dummypython/main.py:44 -msgid "Dummy python job." -msgstr "假的 python 工作。" +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "無法寫入 SLIM 設定檔" -#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 -#: src/modules/dummypython/main.py:103 -msgid "Dummy python step {}" -msgstr "假的 python step {}" +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "SLIM 設定檔 {!s} 不存在" -#: src/modules/bootloader/main.py:51 -msgid "Install bootloader." -msgstr "安裝開機載入程式。" +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "未在顯示管理器模組中選取顯示管理器。" -#: src/modules/localecfg/main.py:39 -msgid "Configuring locales." -msgstr "正在設定語系。" +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "顯示管理器清單為空或在全域儲存與 displaymanager.conf 中皆未定義。" -#: src/modules/mount/main.py:38 -msgid "Mounting partitions." -msgstr "正在掛載分割區。" +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "顯示管理器設定不完整" -#: src/modules/plymouthcfg/main.py:36 -msgid "Configure Plymouth theme" -msgstr "設定 Plymouth 主題" +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "正在設定 mkinitcpio。" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "沒有給定的根掛載點
{!s}
以供使用。" #: src/modules/luksopenswaphookcfg/main.py:35 msgid "Configuring encrypted swap." msgstr "正在設定已加密的 swap。" -#: src/modules/fstab/main.py:38 -msgid "Writing fstab." -msgstr "正在寫入 fstab。" +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "正在安裝資料。" #: src/modules/services-openrc/main.py:38 msgid "Configure OpenRC services" @@ -258,6 +268,40 @@ msgid "" "exist." msgstr "服務 {name!s} 的路徑為 {path!s},不存在。" +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "設定 Plymouth 主題" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "安裝軟體包。" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "正在處理軟體包 (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "正在安裝 %(num)d 軟體包。" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "正在移除 %(num)d 軟體包。" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "安裝開機載入程式。" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "正在設定硬體時鐘。" + #: src/modules/dracut/main.py:36 msgid "Creating initramfs with dracut." msgstr "正在使用 dracut 建立 initramfs。" @@ -270,72 +314,31 @@ msgstr "在目標上執行 dracut 失敗" msgid "The exit code was {}" msgstr "結束碼為 {}" -#: src/modules/grubcfg/main.py:37 -msgid "Configure GRUB." -msgstr "設定 GRUB。" - -#: src/modules/displaymanager/main.py:515 -msgid "Cannot write KDM configuration file" -msgstr "無法寫入 KDM 設定檔" - -#: src/modules/displaymanager/main.py:516 -msgid "KDM config file {!s} does not exist" -msgstr "KDM 設定檔 {!s} 不存在" - -#: src/modules/displaymanager/main.py:577 -msgid "Cannot write LXDM configuration file" -msgstr "無法寫入 LXDM 設定檔" - -#: src/modules/displaymanager/main.py:578 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM 設定檔 {!s} 不存在" - -#: src/modules/displaymanager/main.py:661 -msgid "Cannot write LightDM configuration file" -msgstr "無法寫入 LightDM 設定檔" - -#: src/modules/displaymanager/main.py:662 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM 設定檔 {!s} 不存在" - -#: src/modules/displaymanager/main.py:736 -msgid "Cannot configure LightDM" -msgstr "無法設定 LightDM" - -#: src/modules/displaymanager/main.py:737 -msgid "No LightDM greeter installed." -msgstr "未安裝 LightDM greeter。" - -#: src/modules/displaymanager/main.py:768 -msgid "Cannot write SLIM configuration file" -msgstr "無法寫入 SLIM 設定檔" - -#: src/modules/displaymanager/main.py:769 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM 設定檔 {!s} 不存在" +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "正在設定 initramfs。" -#: src/modules/displaymanager/main.py:895 -msgid "No display managers selected for the displaymanager module." -msgstr "未在顯示管理器模組中選取顯示管理器。" +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "正在設定 OpenRC dmcrypt 服務。" -#: src/modules/displaymanager/main.py:896 -msgid "" -"The displaymanagers list is empty or undefined in bothglobalstorage and " -"displaymanager.conf." -msgstr "顯示管理器清單為空或在全域儲存與 displaymanager.conf 中皆未定義。" +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "正在寫入 fstab。" -#: src/modules/displaymanager/main.py:978 -msgid "Display manager configuration was incomplete" -msgstr "顯示管理器設定不完整" +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "假的 python 工作。" -#: src/modules/initramfscfg/main.py:41 -msgid "Configuring initramfs." -msgstr "正在設定 initramfs。" +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "假的 python step {}" -#: src/modules/hwclock/main.py:35 -msgid "Setting hardware clock." -msgstr "正在設定硬體時鐘。" +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "正在設定語系。" -#: src/modules/rawfs/main.py:35 -msgid "Installing data." -msgstr "正在安裝資料。" +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "正在儲存網路設定。" From 45970fee27d01dc9e628de1143e91574296edc6b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 17:34:32 -0400 Subject: [PATCH 165/335] Changes: pre-release housekeeping - update the translations list, welcome Azerbaijani (in two variants) - this is a hotfix release due to UB --- CMakeLists.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6899c565c..5ed1d462b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,10 +46,10 @@ # TODO:3.3: Require CMake 3.12 cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.27 + VERSION 3.2.26.1 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # @@ -148,14 +148,14 @@ set( CALAMARES_DESCRIPTION_SUMMARY # copy these four lines to four backup lines, add "p", and then update # the original four lines with the current translations). # -# Total 62 languages -set( _tx_complete ca da fi_FI fr he hr ja lt sq tr_TR ) -set( _tx_good ast cs_CZ de es es_MX et gl hi hu id it_IT ko ml nl - pl pt_BR pt_PT ru sk zh_TW ) -set( _tx_ok ar as be bg el en_GB es_PR eu is mr nb ro sl sr - sr@latin sv th uk zh_CN ) -set( _tx_incomplete ca@valencia eo fa fr_CH gu kk kn lo mk ne_NP ur - uz ) +# Total 66 languages +set( _tx_complete az az_AZ ca he hi hr ja sq tr_TR uk zh_TW ) +set( _tx_good as ast be cs_CZ da de es fi_FI fr hu it_IT ko lt ml + nl pt_BR pt_PT ru sk sv zh_CN ) +set( _tx_ok ar bg el en_GB es_MX es_PR et eu fa gl id is mr nb pl + ro sl sr sr@latin th ) +set( _tx_incomplete bn ca@valencia eo fr_CH gu kk kn lo lv mk ne_NP + ur uz ) ### Required versions # From 4cdb6035800c91a00cd63c6c0340cacccdb81ed4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 10:43:49 +0200 Subject: [PATCH 166/335] Changes: pre-release housekeeping --- CHANGES | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGES b/CHANGES index 745afb289..cc8689e02 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,28 @@ This release contains contributions from (alphabetically by first name): - No module changes yet + # 3.2.26.1 (2020-06-23) # + +This is a hotfix release for undefined behavior caused by an +uninitialized integer variable. It includes new translations +and features as well since those arrived independently. + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Gaël PORTAY + +## Core ## + - Welcome to Azerbaijani translations. These are available + in two variations, *Azerbaijani* and *Azerbaijani (Azerbaijan)*. + [Wikipedia Azerbaijani](https://en.wikipedia.org/wiki/Azerbaijani_language#North_vs._South_Azerbaijani) + has a nice overview. + +## Modules ## + - *partitioning* has one case of undefined behavior (UB) due + to a missing integer-initialization. (Thanks Gaël) + - *keyboardq* QML module now works correctly. (Thanks Anke) + + # 3.2.26 (2020-06-18) # This release contains contributions from (alphabetically by first name): From b8e30e201fd941f084cf59335ffc80a79c22a972 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 10:45:11 +0200 Subject: [PATCH 167/335] CMake: drop reference to external os-* modules - The USE_* infrastructure is only **inside** the Calamares build tree (see `src/modules/CMakeLists.txt`) so there is no point in referring to external repositories. --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ed1d462b..b653f0996 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,8 +109,7 @@ option( BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON ) # This defaults to *none* so that nothing gets picked up and nothing # is packaged -- you must explicitly set it to empty to get all of # the modules, but that hardly makes sense. Note, too that there -# are no os-* modules shipped with Calamares. They live in the -# *calamares-extensions* repository. +# are currently no os-* modules shipped with Calamares. set( USE_services "" CACHE STRING "Select the services module to use" ) set( USE_os "none" CACHE STRING "Select the OS-specific module to include" ) From d6b0583baddcfac405433299e3fa6fab04834d2d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 11:08:55 +0200 Subject: [PATCH 168/335] [libcalamares] Compatibility-layer for QString::split - QString::split() api changed in 5.14, in 5.15 generates warnings, so introduce a compatibility value. --- src/libcalamares/utils/String.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/utils/String.h b/src/libcalamares/utils/String.h index d4bd33357..26df00b07 100644 --- a/src/libcalamares/utils/String.h +++ b/src/libcalamares/utils/String.h @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * @@ -33,6 +33,27 @@ #include +/* Qt 5.14 changed the API to QString::split(), adding new overloads + * that take a different enum, then Qt 5.15 deprecated the old ones. + * To avoid overly-many warnings related to the API change, introduce + * Calamares-specific constants that pull from the correct enum. + */ +constexpr static const auto SplitSkipEmptyParts = +#if QT_VERSION < QT_VERSION_CHECK( 5, 14, 0 ) + QString::SkipEmptyParts +#else + Qt::SkipEmptyParts +#endif + ; + +constexpr static const auto SplitKeepEmptyParts = +#if QT_VERSION < QT_VERSION_CHECK( 5, 14, 0 ) + QString::KeepEmptyParts +#else + Qt::KeepEmptyParts +#endif + ; + /** * @brief The CalamaresUtils namespace contains utility functions. */ From 192263cf9d0d9692f1f07dfb9deac24b9e7b5b71 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 11:13:55 +0200 Subject: [PATCH 169/335] [libcalamares][modules] Use compatibility for QString::split() - Use the compatibility value, which has an enum value suitable for the Qt version in use. --- src/libcalamares/geoip/Interface.cpp | 5 +++-- src/libcalamares/locale/TimeZone.cpp | 9 +++++---- src/modules/keyboard/Config.cpp | 7 ++++--- src/modules/keyboard/KeyboardPage.cpp | 7 ++++--- src/modules/keyboard/SetKeyboardLayoutJob.cpp | 3 ++- src/modules/keyboard/keyboardwidget/keyboardpreview.cpp | 6 ++++-- src/modules/partition/jobs/ClearMountsJob.cpp | 2 +- src/modules/partition/jobs/ClearTempMountsJob.cpp | 2 +- 8 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/libcalamares/geoip/Interface.cpp b/src/libcalamares/geoip/Interface.cpp index 82acb7950..f8649f37a 100644 --- a/src/libcalamares/geoip/Interface.cpp +++ b/src/libcalamares/geoip/Interface.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -23,6 +23,7 @@ #include "Interface.h" #include "utils/Logger.h" +#include "utils/String.h" namespace CalamaresUtils { @@ -43,7 +44,7 @@ splitTZString( const QString& tz ) timezoneString.remove( '\\' ); timezoneString.replace( ' ', '_' ); - QStringList tzParts = timezoneString.split( '/', QString::SkipEmptyParts ); + QStringList tzParts = timezoneString.split( '/', SplitSkipEmptyParts ); if ( tzParts.size() >= 2 ) { cDebug() << "GeoIP reporting" << timezoneString; diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 0c13a8c77..772a242fb 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -23,6 +23,7 @@ #include "TimeZone.h" #include "utils/Logger.h" +#include "utils/String.h" #include #include @@ -156,19 +157,19 @@ TZRegion::fromFile( const char* fileName ) QTextStream in( &file ); while ( !in.atEnd() ) { - QString line = in.readLine().trimmed().split( '#', QString::KeepEmptyParts ).first().trimmed(); + QString line = in.readLine().trimmed().split( '#', SplitKeepEmptyParts ).first().trimmed(); if ( line.isEmpty() ) { continue; } - QStringList list = line.split( QRegExp( "[\t ]" ), QString::SkipEmptyParts ); + QStringList list = line.split( QRegExp( "[\t ]" ), SplitSkipEmptyParts ); if ( list.size() < 3 ) { continue; } - QStringList timezoneParts = list.at( 2 ).split( '/', QString::SkipEmptyParts ); + QStringList timezoneParts = list.at( 2 ).split( '/', SplitSkipEmptyParts ); if ( timezoneParts.size() < 2 ) { continue; diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 06f7b3e81..64b253835 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -26,6 +26,7 @@ #include "JobQueue.h" #include "utils/Logger.h" #include "utils/Retranslator.h" +#include "utils/String.h" #include #include @@ -287,7 +288,7 @@ Config::init() if ( process.waitForFinished() ) { - const QStringList list = QString( process.readAll() ).split( "\n", QString::SkipEmptyParts ); + const QStringList list = QString( process.readAll() ).split( "\n", SplitSkipEmptyParts ); for ( QString line : list ) { @@ -300,7 +301,7 @@ Config::init() line = line.remove( "}" ).remove( "{" ).remove( ";" ); line = line.mid( line.indexOf( "\"" ) + 1 ); - QStringList split = line.split( "+", QString::SkipEmptyParts ); + QStringList split = line.split( "+", SplitSkipEmptyParts ); if ( split.size() >= 2 ) { currentLayout = split.at( 1 ); @@ -496,7 +497,7 @@ Config::onActivate() } if ( !lang.isEmpty() ) { - const auto langParts = lang.split( '_', QString::SkipEmptyParts ); + const auto langParts = lang.split( '_', SplitSkipEmptyParts ); // Note that this his string is not fit for display purposes! // It doesn't come from QLocale::nativeCountryName. diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 43d116146..e8997b915 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -32,6 +32,7 @@ #include "JobQueue.h" #include "utils/Logger.h" #include "utils/Retranslator.h" +#include "utils/String.h" #include #include @@ -113,7 +114,7 @@ KeyboardPage::init() if ( process.waitForFinished() ) { - const QStringList list = QString( process.readAll() ).split( "\n", QString::SkipEmptyParts ); + const QStringList list = QString( process.readAll() ).split( "\n", SplitSkipEmptyParts ); for ( QString line : list ) { @@ -126,7 +127,7 @@ KeyboardPage::init() line = line.remove( "}" ).remove( "{" ).remove( ";" ); line = line.mid( line.indexOf( "\"" ) + 1 ); - QStringList split = line.split( "+", QString::SkipEmptyParts ); + QStringList split = line.split( "+", SplitSkipEmptyParts ); if ( split.size() >= 2 ) { currentLayout = split.at( 1 ); @@ -366,7 +367,7 @@ KeyboardPage::onActivate() } if ( !lang.isEmpty() ) { - const auto langParts = lang.split( '_', QString::SkipEmptyParts ); + const auto langParts = lang.split( '_', SplitSkipEmptyParts ); // Note that this his string is not fit for display purposes! // It doesn't come from QLocale::nativeCountryName. diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.cpp b/src/modules/keyboard/SetKeyboardLayoutJob.cpp index 5223e8fae..537feeb8c 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.cpp +++ b/src/modules/keyboard/SetKeyboardLayoutJob.cpp @@ -28,6 +28,7 @@ #include "JobQueue.h" #include "utils/CalamaresUtilsSystem.h" #include "utils/Logger.h" +#include "utils/String.h" #include #include @@ -104,7 +105,7 @@ SetKeyboardLayoutJob::findLegacyKeymap() const continue; } - QStringList mapping = line.split( '\t', QString::SkipEmptyParts ); + QStringList mapping = line.split( '\t', SplitSkipEmptyParts ); if ( mapping.size() < 5 ) { continue; diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp index 26aa18d87..02ddd4186 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp @@ -21,9 +21,11 @@ * along with Calamares. If not, see . */ -#include "utils/Logger.h" #include "keyboardpreview.h" +#include "utils/Logger.h" +#include "utils/String.h" + KeyBoardPreview::KeyBoardPreview( QWidget* parent ) : QWidget( parent ) , layout( "us" ) @@ -129,7 +131,7 @@ bool KeyBoardPreview::loadCodes() { // Clear codes codes.clear(); - const QStringList list = QString(process.readAll()).split("\n", QString::SkipEmptyParts); + const QStringList list = QString(process.readAll()).split("\n", SplitSkipEmptyParts); for (const QString &line : list) { if (!line.startsWith("keycode") || !line.contains('=')) diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp index 16d8d0d90..eb61c34d8 100644 --- a/src/modules/partition/jobs/ClearMountsJob.cpp +++ b/src/modules/partition/jobs/ClearMountsJob.cpp @@ -73,7 +73,7 @@ getPartitionsForDevice( const QString& deviceName ) { // The fourth column (index from 0, so index 3) is the name of the device; // keep it if it is followed by something. - QStringList columns = in.readLine().split( ' ', QString::SkipEmptyParts ); + QStringList columns = in.readLine().split( ' ', SplitSkipEmptyParts ); if ( ( columns.count() >= 4 ) && ( columns[ 3 ].startsWith( deviceName ) ) && ( columns[ 3 ] != deviceName ) ) { diff --git a/src/modules/partition/jobs/ClearTempMountsJob.cpp b/src/modules/partition/jobs/ClearTempMountsJob.cpp index ba6f2df2d..24f7c4d59 100644 --- a/src/modules/partition/jobs/ClearTempMountsJob.cpp +++ b/src/modules/partition/jobs/ClearTempMountsJob.cpp @@ -66,7 +66,7 @@ ClearTempMountsJob::exec() QString lineIn = in.readLine(); while ( !lineIn.isNull() ) { - QStringList line = lineIn.split( ' ', QString::SkipEmptyParts ); + QStringList line = lineIn.split( ' ', SplitSkipEmptyParts ); cDebug() << line.join( ' ' ); QString device = line.at( 0 ); QString mountPoint = line.at( 1 ); From 916c10816b9913c1f695ada703a788a75bbe54a2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 12:29:18 +0200 Subject: [PATCH 170/335] [libcalamares] Logging-convenience for pointers - This reduces the amount of (void*) C-style casts in the code, and formats generic pointers more consistently. --- src/libcalamares/utils/Logger.h | 35 ++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index 69674bc68..2354155ed 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot @@ -37,8 +37,12 @@ struct FuncSuppressor const char* m_s; }; -struct NoQuote {}; -struct Quote {}; +struct NoQuote +{ +}; +struct Quote +{ +}; DLLEXPORT extern const FuncSuppressor Continuation; DLLEXPORT extern const FuncSuppressor SubEntry; @@ -206,6 +210,24 @@ public: const QVariantMap& map; }; +/** + * @brief Formatted logging of a pointer + * + * Pointers are printed as void-pointer, so just an address (unlike, say, + * QObject pointers which show an address and some metadata) preceded + * by an '@'. This avoids C-style (void*) casts in the code. + */ +struct Pointer +{ +public: + explicit Pointer( void* p ) + : ptr( p ) + { + } + + const void* ptr; +}; + /** @brief output operator for DebugRow */ template < typename T, typename U > inline QDebug& @@ -240,6 +262,13 @@ operator<<( QDebug& s, const DebugMap& t ) } return s; } + +inline QDebug& +operator<<( QDebug& s, const Pointer& p ) +{ + s << NoQuote {} << '@' << p.ptr << Quote {}; + return s; +} } // namespace Logger #define cDebug() Logger::CDebug( Logger::LOGDEBUG, Q_FUNC_INFO ) From 8a14316e164cb90094a9dbcd498810af89f23674 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 12:56:35 +0200 Subject: [PATCH 171/335] [calamares] be less chatty in startup - without the SubEntry part, the function name is printed each time. --- src/calamares/CalamaresApplication.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 43a48881c..d337f774c 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -76,7 +76,7 @@ CalamaresApplication::init() { Logger::setupLogfile(); cDebug() << "Calamares version:" << CALAMARES_VERSION; - cDebug() << " languages:" << QString( CALAMARES_TRANSLATION_LANGUAGES ).replace( ";", ", " ); + cDebug() << Logger::SubEntry << " languages:" << QString( CALAMARES_TRANSLATION_LANGUAGES ).replace( ";", ", " ); if ( !Calamares::Settings::instance() ) { @@ -91,11 +91,11 @@ CalamaresApplication::init() setQuitOnLastWindowClosed( false ); setWindowIcon( QIcon( Calamares::Branding::instance()->imagePath( Calamares::Branding::ProductIcon ) ) ); - cDebug() << "STARTUP: initSettings, initQmlPath, initBranding done"; + cDebug() << Logger::SubEntry << "STARTUP: initSettings, initQmlPath, initBranding done"; initModuleManager(); //also shows main window - cDebug() << "STARTUP: initModuleManager: module init started"; + cDebug() << Logger::SubEntry << "STARTUP: initModuleManager: module init started"; } From 22fdca8f44749c8b1957bffc5e3764c49173b5e5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 13:02:06 +0200 Subject: [PATCH 172/335] [libcalamares] Use Logger::Pointer for logging void-pointers --- src/libcalamares/partition/KPMManager.cpp | 4 ++-- src/libcalamaresui/modulesystem/ModuleManager.cpp | 2 +- src/modules/partition/core/PartUtils.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libcalamares/partition/KPMManager.cpp b/src/libcalamares/partition/KPMManager.cpp index 964b87859..00b4a6491 100644 --- a/src/libcalamares/partition/KPMManager.cpp +++ b/src/libcalamares/partition/KPMManager.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -74,7 +74,7 @@ InternalManager::InternalManager() else { auto* backend_p = CoreBackendManager::self()->backend(); - cDebug() << Logger::SubEntry << "Backend @" << (void*)backend_p << backend_p->id() << backend_p->version(); + cDebug() << Logger::SubEntry << "Backend" << Logger::Pointer(backend_p) << backend_p->id() << backend_p->version(); s_kpm_loaded = true; } } diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 0b83e4d9b..23df7ce8a 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -344,7 +344,7 @@ ModuleManager::addModule( Module *module ) } if ( !module->instanceKey().isValid() ) { - cWarning() << "Module" << module->location() << '@' << (void*)module << "has invalid instance key."; + cWarning() << "Module" << module->location() << Logger::Pointer(module) << "has invalid instance key."; return false; } if ( !checkModuleDependencies( *module ) ) diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 4cc59d518..4dd3dcbf3 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -459,7 +459,7 @@ isEfiBootable( const Partition* candidate ) while ( root && !root->isRoot() ) { root = root->parent(); - cDebug() << Logger::SubEntry << "moved towards root" << (void*)root; + cDebug() << Logger::SubEntry << "moved towards root" << Logger::Pointer(root); } // Strange case: no root found, no partition table node? @@ -469,7 +469,7 @@ isEfiBootable( const Partition* candidate ) } const PartitionTable* table = dynamic_cast< const PartitionTable* >( root ); - cDebug() << Logger::SubEntry << "partition table" << (void*)table << "type" + cDebug() << Logger::SubEntry << "partition table" << Logger::Pointer(table) << "type" << ( table ? table->type() : PartitionTable::TableType::unknownTableType ); return table && ( table->type() == PartitionTable::TableType::gpt ) && flags.testFlag( KPM_PARTITION_FLAG( Boot ) ); } From daf9451e6987883dab28da568d01e45435ba0d7f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 13:16:56 +0200 Subject: [PATCH 173/335] [welcome] Warnings-- --- src/modules/welcome/checker/GeneralRequirements.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp index ba6ebe89f..e7994f9a0 100644 --- a/src/modules/welcome/checker/GeneralRequirements.cpp +++ b/src/modules/welcome/checker/GeneralRequirements.cpp @@ -358,7 +358,7 @@ GeneralRequirements::checkEnoughRam( qint64 requiredRam ) // Ignore the guesstimate-factor; we get an under-estimate // which is probably the usable RAM for programs. quint64 availableRam = CalamaresUtils::System::instance()->getTotalMemoryB().first; - return availableRam >= requiredRam * 0.95; // because MemTotal is variable + return double(availableRam) >= double(requiredRam) * 0.95; // cast to silence 64-bit-int conversion to double } From 0bede0692ab319971e73d953f12a292aefe08247 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 13:18:30 +0200 Subject: [PATCH 174/335] [locale] Warnings-- on static_cast with no message --- src/modules/locale/timezonewidget/TimeZoneImage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.cpp b/src/modules/locale/timezonewidget/TimeZoneImage.cpp index eec939905..a60c9b7d7 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.cpp +++ b/src/modules/locale/timezonewidget/TimeZoneImage.cpp @@ -36,7 +36,7 @@ static_assert( TimeZoneImageList::zoneCount == ( sizeof( zoneNames ) / sizeof( z /* static constexpr */ const int TimeZoneImageList::zoneCount; /* static constexpr */ const QSize TimeZoneImageList::imageSize; -static_assert( TimeZoneImageList::zoneCount == 37 ); +static_assert( TimeZoneImageList::zoneCount == 37, "Incorrect number of zones" ); TimeZoneImageList::TimeZoneImageList() {} From 1dfb25372bd8f9a8df3e74624ef7fa2eac9181b4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 13:37:56 +0200 Subject: [PATCH 175/335] [tracking] Warnings-reduction - Give classes a virtual destructor that need them - Remove spurious ; - Refactor addJobs() because that doesn't need to be in a class - Remove redundant intermediate base-classes --- src/modules/tracking/Config.cpp | 6 + src/modules/tracking/Config.h | 5 +- src/modules/tracking/TrackingJobs.cpp | 128 +++++++++++----------- src/modules/tracking/TrackingJobs.h | 36 ++---- src/modules/tracking/TrackingViewStep.cpp | 6 +- 5 files changed, 87 insertions(+), 94 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 6d9dbb10b..9e8179905 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -112,6 +112,8 @@ InstallTrackingConfig::InstallTrackingConfig( QObject* parent ) setObjectName( "InstallTrackingConfig" ); } +InstallTrackingConfig::~InstallTrackingConfig() {} + void InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) { @@ -127,6 +129,8 @@ MachineTrackingConfig::MachineTrackingConfig( QObject* parent ) setObjectName( "MachineTrackingConfig" ); } +MachineTrackingConfig::~MachineTrackingConfig() {} + /** @brief Is @p s a valid machine-tracking style. */ static bool isValidMachineTrackingStyle( const QString& s ) @@ -151,6 +155,8 @@ UserTrackingConfig::UserTrackingConfig( QObject* parent ) setObjectName( "UserTrackingConfig" ); } +UserTrackingConfig::~UserTrackingConfig() {} + static bool isValidUserTrackingStyle( const QString& s ) { diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index fb279ea93..ad7d1d4f2 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -55,7 +55,7 @@ public: DisabledByUser, EnabledByUser }; - Q_ENUM( TrackingState ); + Q_ENUM( TrackingState ) public Q_SLOTS: TrackingState tracking() const { return m_state; } @@ -106,6 +106,7 @@ class InstallTrackingConfig : public TrackingStyleConfig { public: InstallTrackingConfig( QObject* parent ); + ~InstallTrackingConfig() override; void setConfigurationMap( const QVariantMap& configurationMap ); QString installTrackingUrl() { return m_installTrackingUrl; } @@ -125,6 +126,7 @@ class MachineTrackingConfig : public TrackingStyleConfig { public: MachineTrackingConfig( QObject* parent ); + ~MachineTrackingConfig() override; void setConfigurationMap( const QVariantMap& configurationMap ); QString machineTrackingStyle() { return m_machineTrackingStyle; } @@ -146,6 +148,7 @@ class UserTrackingConfig : public TrackingStyleConfig { public: UserTrackingConfig( QObject* parent ); + ~UserTrackingConfig() override; void setConfigurationMap( const QVariantMap& configurationMap ); QString userTrackingStyle() { return m_userTrackingStyle; } diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 2087804ec..00ef06e10 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -78,41 +78,7 @@ TrackingInstallJob::exec() return Calamares::JobResult::ok(); } -void -TrackingInstallJob::addJob( Calamares::JobList& list, InstallTrackingConfig* config ) -{ - if ( config->isEnabled() ) - { - const auto* s = CalamaresUtils::System::instance(); - QHash< QString, QString > map { std::initializer_list< std::pair< QString, QString > > { - { QStringLiteral( "CPU" ), s->getCpuDescription() }, - { QStringLiteral( "MEMORY" ), QString::number( s->getTotalMemoryB().first ) }, - { QStringLiteral( "DISK" ), QString::number( s->getTotalDiskB() ) } } }; - QString installUrl = KMacroExpander::expandMacros( config->installTrackingUrl(), map ); - - cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; - - list.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); - } -} - -void -TrackingMachineJob::addJob( Calamares::JobList& list, MachineTrackingConfig* config ) -{ - if ( config->isEnabled() ) - { - const auto style = config->machineTrackingStyle(); - if ( style == "updatemanager" ) - { - list.append( Calamares::job_ptr( new TrackingMachineUpdateManagerJob() ) ); - } - else - { - cWarning() << "Unsupported machine tracking style" << style; - } - } -} - +TrackingMachineUpdateManagerJob::~TrackingMachineUpdateManagerJob() {} QString TrackingMachineUpdateManagerJob::prettyName() const @@ -163,39 +129,14 @@ TrackingMachineUpdateManagerJob::exec() } } -void -TrackingUserJob::addJob( Calamares::JobList& list, UserTrackingConfig* config ) -{ - if ( config->isEnabled() ) - { - const auto* gs = Calamares::JobQueue::instance()->globalStorage(); - static const auto key = QStringLiteral( "username" ); - QString username = ( gs && gs->contains( key ) ) ? gs->value( key ).toString() : QString(); - - if ( username.isEmpty() ) - { - cWarning() << "No username is set in GlobalStorage, skipping user-tracking."; - return; - } - - const auto style = config->userTrackingStyle(); - if ( style == "kuserfeedback" ) - { - list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob( username, config->userTrackingAreas() ) ) ); - } - else - { - cWarning() << "Unsupported user tracking style" << style; - } - } -} - TrackingKUserFeedbackJob::TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ) : m_username( username ) , m_areas( areas ) { } +TrackingKUserFeedbackJob::~TrackingKUserFeedbackJob() {} + QString TrackingKUserFeedbackJob::prettyName() const { @@ -246,3 +187,66 @@ FeedbackLevel=16 return Calamares::JobResult::ok(); } + +void +addJob( Calamares::JobList& list, InstallTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto* s = CalamaresUtils::System::instance(); + QHash< QString, QString > map { std::initializer_list< std::pair< QString, QString > > { + { QStringLiteral( "CPU" ), s->getCpuDescription() }, + { QStringLiteral( "MEMORY" ), QString::number( s->getTotalMemoryB().first ) }, + { QStringLiteral( "DISK" ), QString::number( s->getTotalDiskB() ) } } }; + QString installUrl = KMacroExpander::expandMacros( config->installTrackingUrl(), map ); + + cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; + + list.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); + } +} + +void +addJob( Calamares::JobList& list, MachineTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto style = config->machineTrackingStyle(); + if ( style == "updatemanager" ) + { + list.append( Calamares::job_ptr( new TrackingMachineUpdateManagerJob() ) ); + } + else + { + cWarning() << "Unsupported machine tracking style" << style; + } + } +} + + +void +addJob( Calamares::JobList& list, UserTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto* gs = Calamares::JobQueue::instance()->globalStorage(); + static const auto key = QStringLiteral( "username" ); + QString username = ( gs && gs->contains( key ) ) ? gs->value( key ).toString() : QString(); + + if ( username.isEmpty() ) + { + cWarning() << "No username is set in GlobalStorage, skipping user-tracking."; + return; + } + + const auto style = config->userTrackingStyle(); + if ( style == "kuserfeedback" ) + { + list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob( username, config->userTrackingAreas() ) ) ); + } + else + { + cWarning() << "Unsupported user tracking style" << style; + } + } +} diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index c65c8f621..38349515a 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -58,53 +58,28 @@ public: QString prettyStatusMessage() const override; Calamares::JobResult exec() override; - static void addJob( Calamares::JobList& list, InstallTrackingConfig* config ); - private: const QString m_url; }; -/** @brief Base class for machine-tracking jobs - * - * Machine-tracking configuraiton depends on the distro / style of machine - * being tracked, so it has subclasses to switch on the relevant kind - * of tracking. A machine is tracked persistently. - */ -class TrackingMachineJob : public Calamares::Job -{ -public: - static void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); -}; - /** @brief Tracking machines, update-manager style * * The machine has a machine-id, and this is sed(1)'ed into the * update-manager configuration, to report the machine-id back * to distro servers. */ -class TrackingMachineUpdateManagerJob : public TrackingMachineJob +class TrackingMachineUpdateManagerJob : public Calamares::Job { Q_OBJECT public: + ~TrackingMachineUpdateManagerJob() override; + QString prettyName() const override; QString prettyDescription() const override; QString prettyStatusMessage() const override; Calamares::JobResult exec() override; }; -/** @brief Base class for user-tracking jobs - * - * User-tracking configuration depends on the distro / style of user - * tracking being implemented, so there are subclasses to switch on the - * relevant kind of tracking. Users are tracked persistently (the user - * can of course configure the tracking again once the system is restarted). - */ -class TrackingUserJob : public Calamares::Job -{ -public: - static void addJob( Calamares::JobList& list, UserTrackingConfig* config ); -}; - /** @brief Turn on KUserFeedback in target system * * This writes suitable files for turning on KUserFeedback for the @@ -115,6 +90,7 @@ class TrackingKUserFeedbackJob : public Calamares::Job { public: TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ); + ~TrackingKUserFeedbackJob() override; QString prettyName() const override; QString prettyDescription() const override; @@ -126,4 +102,8 @@ private: QStringList m_areas; }; +void addJob( Calamares::JobList& list, InstallTrackingConfig* config ); +void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); +void addJob( Calamares::JobList& list, UserTrackingConfig* config ); + #endif diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 8a80b2b57..da5d9108d 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -109,9 +109,9 @@ TrackingViewStep::jobs() const cDebug() << "Creating tracking jobs .."; Calamares::JobList l; - TrackingInstallJob::addJob( l, m_config->installTracking() ); - TrackingMachineJob::addJob( l, m_config->machineTracking() ); - TrackingUserJob::addJob( l, m_config->userTracking() ); + addJob( l, m_config->installTracking() ); + addJob( l, m_config->machineTracking() ); + addJob( l, m_config->userTracking() ); cDebug() << Logger::SubEntry << l.count() << "jobs queued."; return l; } From 3ee53435c59f1ba35e065c9d72f829cd33031b3a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 14:30:12 +0200 Subject: [PATCH 176/335] [libcalamares] Fix constness issue (gcc reported) --- src/libcalamares/utils/Logger.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index 2354155ed..91b2113b6 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -220,12 +220,12 @@ public: struct Pointer { public: - explicit Pointer( void* p ) + explicit Pointer( const void* p ) : ptr( p ) { } - const void* ptr; + const void* const ptr; }; /** @brief output operator for DebugRow */ From c3ff9edfa247533eafb1e321a95a6f6bee8a96fc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 14:43:26 +0200 Subject: [PATCH 177/335] [tracking] Add a test executable - just a stub, hardly tests useful functionality --- src/modules/tracking/CMakeLists.txt | 6 +++ src/modules/tracking/Tests.cpp | 60 +++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 src/modules/tracking/Tests.cpp diff --git a/src/modules/tracking/CMakeLists.txt b/src/modules/tracking/CMakeLists.txt index 11ccdb00b..894663426 100644 --- a/src/modules/tracking/CMakeLists.txt +++ b/src/modules/tracking/CMakeLists.txt @@ -15,3 +15,9 @@ calamares_add_plugin( tracking SHARED_LIB ) +calamares_add_test( + trackingtest + SOURCES + Tests.cpp + Config.cpp +) diff --git a/src/modules/tracking/Tests.cpp b/src/modules/tracking/Tests.cpp new file mode 100644 index 000000000..b7ed57ab1 --- /dev/null +++ b/src/modules/tracking/Tests.cpp @@ -0,0 +1,60 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + */ + +#include "Config.h" + +#include "utils/Logger.h" + +#include +#include + +class TrackingTests : public QObject +{ + Q_OBJECT +public: + TrackingTests(); + ~TrackingTests() override; + +private Q_SLOTS: + void initTestCase(); + void testEmptyConfig(); +}; + +TrackingTests::TrackingTests() + : QObject() +{ +} + +TrackingTests::~TrackingTests() +{ +} + +void TrackingTests::initTestCase() +{ + Logger::setupLogLevel( Logger::LOGDEBUG ); + cDebug() << "Tracking test started."; +} + +void TrackingTests::testEmptyConfig() +{ + Logger::setupLogLevel( Logger::LOGDEBUG ); + + Config* c = new Config; + QVERIFY( c->generalPolicy().isEmpty() ); + QVERIFY( c->installTracking() ); // not-nullptr + + cDebug() << "Install" << Logger::Pointer( c->installTracking() ); + + delete c; // also deletes the owned tracking-configs +} + + +QTEST_GUILESS_MAIN( TrackingTests ) + +#include "utils/moc-warnings.h" + +#include "Tests.moc" From e206eb086b99faf4708be7137810aadb71267890 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 17:05:08 +0200 Subject: [PATCH 178/335] [partition] Missing includes for Qt-compatibility --- src/modules/partition/jobs/ClearMountsJob.cpp | 1 + src/modules/partition/jobs/ClearTempMountsJob.cpp | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp index eb61c34d8..29f00ebd2 100644 --- a/src/modules/partition/jobs/ClearMountsJob.cpp +++ b/src/modules/partition/jobs/ClearMountsJob.cpp @@ -25,6 +25,7 @@ #include "partition/PartitionIterator.h" #include "partition/Sync.h" #include "utils/Logger.h" +#include "utils/String.h" // KPMcore #include diff --git a/src/modules/partition/jobs/ClearTempMountsJob.cpp b/src/modules/partition/jobs/ClearTempMountsJob.cpp index 24f7c4d59..cf2c71f0c 100644 --- a/src/modules/partition/jobs/ClearTempMountsJob.cpp +++ b/src/modules/partition/jobs/ClearTempMountsJob.cpp @@ -19,16 +19,15 @@ #include "ClearTempMountsJob.h" #include "utils/Logger.h" +#include "utils/String.h" -#include - -// KPMcore #include #include #include #include +#include ClearTempMountsJob::ClearTempMountsJob() : Calamares::Job() From e113c8cc9b89d3dfd118d3363a86ad689e08b321 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 17:05:25 +0200 Subject: [PATCH 179/335] Changes: fixup announcement --- CHANGES | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index cc8689e02..49e020363 100644 --- a/CHANGES +++ b/CHANGES @@ -15,7 +15,7 @@ This release contains contributions from (alphabetically by first name): - No module changes yet - # 3.2.26.1 (2020-06-23) # +# 3.2.26.1 (2020-06-23) # This is a hotfix release for undefined behavior caused by an uninitialized integer variable. It includes new translations @@ -30,6 +30,7 @@ This release contains contributions from (alphabetically by first name): in two variations, *Azerbaijani* and *Azerbaijani (Azerbaijan)*. [Wikipedia Azerbaijani](https://en.wikipedia.org/wiki/Azerbaijani_language#North_vs._South_Azerbaijani) has a nice overview. + - Warnings while building with Qt 5.15 have been much reduced. ## Modules ## - *partitioning* has one case of undefined behavior (UB) due From a4f9ac9aeaaf9388a214d651e9022aa73b5c20c9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 17:17:45 +0200 Subject: [PATCH 180/335] CI: update signing key The signing key expired some time ago, and while I made a new signing key, there's no indication that a different key is being used. Update the ID for future signatures. --- ci/RELEASE.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/RELEASE.sh b/ci/RELEASE.sh index ed1669ef7..69aaec0be 100755 --- a/ci/RELEASE.sh +++ b/ci/RELEASE.sh @@ -119,7 +119,7 @@ test -n "$V" || { echo "Could not obtain version in $BUILDDIR." ; exit 1 ; } # # This is the signing key ID associated with the GitHub account adriaandegroot, # which is used to create all "verified" tags in the Calamares repo. -KEY_ID="128F00873E05AF1D" +KEY_ID="61A7D26277E4D0DB" git tag -u "$KEY_ID" -m "Release v$V" "v$V" || { echo "Could not sign tag v$V." ; exit 1 ; } ### Create the tarball From 8a9e85db71cce9fade23fd17deaafe671cea8d2a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 04:53:22 -0400 Subject: [PATCH 181/335] Branding: shuffle around a bit, expand documentation --- src/branding/default/branding.desc | 63 ++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/src/branding/default/branding.desc b/src/branding/default/branding.desc index f8cc88295..fc0a16f7e 100644 --- a/src/branding/default/branding.desc +++ b/src/branding/default/branding.desc @@ -7,6 +7,12 @@ --- componentName: default + +### WELCOME / OVERALL WORDING +# +# These settings affect some overall phrasing and looks, +# which are most visible in the welcome page. + # This selects between different welcome texts. When false, uses # the traditional "Welcome to the %1 installer.", and when true, # uses "Welcome to the Calamares installer for %1." This allows @@ -20,6 +26,12 @@ welcomeStyleCalamares: false # may have surprising effects on HiDPI monitors). welcomeExpandingLogo: true +### WINDOW CONFIGURATION +# +# The settings here affect the placement of the Calamares +# window through hints to the window manager and initial +# sizing of the Calamares window. + # Size and expansion policy for Calamares. # - "normal" or unset, expand as needed, use *windowSize* # - "fullscreen", start as large as possible, ignore *windowSize* @@ -41,6 +53,14 @@ windowSize: 800px,520px # *windowExpanding* set to "fullscreen"). windowPlacement: center +### PANELS CONFIGURATION +# +# Calamares has a main content area, and two panels (navigation +# and progress / sidebar). The panels can be controlled individually, +# or switched off. If both panels are switched off, the layout of +# the main content area loses its margins, on the assumption that +# you're doing something special. + # Kind of sidebar (panel on the left, showing progress). # - "widget" or unset, use traditional sidebar (logo, items) # - "none", hide it entirely @@ -66,6 +86,12 @@ sidebar: widget # except the default is *bottom*. navigation: widget + +### STRINGS, IMAGES AND COLORS +# +# This section contains the "branding proper" of names +# and images, rather than global-look settings. + # These are strings shown to the user in the user interface. # There is no provision for translating them -- since they # are names, the string is included as-is. @@ -139,9 +165,28 @@ images: # productWallpaper: "wallpaper.png" productWelcome: "languages.png" +# Colors for text and background components. +# +# - sidebarBackground is the background of the sidebar +# - sidebarText is the (foreground) text color +# - sidebarTextHighlight sets the background of the selected (current) step. +# Optional, and defaults to the application palette. +# - sidebarSelect is the text color of the selected step. +# +# These colors can **also** be set through the stylesheet, if the +# branding component also ships a stylesheet.qss. Then they are +# the corresponding CSS attributes of #sidebarApp. +style: + sidebarBackground: "#292F34" + sidebarText: "#FFFFFF" + sidebarTextSelect: "#292F34" + sidebarTextHighlight: "#D35400" + +### SLIDESHOW +# # The slideshow is displayed during execution steps (e.g. when the # installer is actually writing to disk and doing other slow things). -# + # The slideshow can be a QML file (recommended) which can display # arbitrary things -- text, images, animations, or even play a game -- # during the execution step. The QML **is** abruptly stopped when the @@ -171,19 +216,3 @@ slideshow: "show.qml" slideshowAPI: 2 -# Colors for text and background components. -# -# - sidebarBackground is the background of the sidebar -# - sidebarText is the (foreground) text color -# - sidebarTextHighlight sets the background of the selected (current) step. -# Optional, and defaults to the application palette. -# - sidebarSelect is the text color of the selected step. -# -# These colors can **also** be set through the stylesheet, if the -# branding component also ships a stylesheet.qss. Then they are -# the corresponding CSS attributes of #sidebarApp. -style: - sidebarBackground: "#292F34" - sidebarText: "#FFFFFF" - sidebarTextSelect: "#292F34" - sidebarTextHighlight: "#D35400" From bfbb0f1c49ae6bd6f311fbf684aa7577517a9ee7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 04:59:19 -0400 Subject: [PATCH 182/335] [libcalamaresui] Mark some TODO for 3.3, in passing --- src/libcalamaresui/utils/CalamaresUtilsGui.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index 961ed5bc7..251741fad 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -87,6 +87,7 @@ UIDLLEXPORT QPixmap defaultPixmap( ImageType type, ImageMode mode = CalamaresUtils::Original, const QSize& size = QSize( 0, 0 ) ); +// TODO:3.3:This has only one consumer, move to ImageRegistry, make static /** * @brief createRoundedImage returns a rounded version of a pixmap. * @param avatar the input pixmap. @@ -103,6 +104,7 @@ UIDLLEXPORT QPixmap createRoundedImage( const QPixmap& avatar, const QSize& size */ UIDLLEXPORT void unmarginLayout( QLayout* layout ); +// TODO:3.3:This has only one consumer, move to LicensePage, make static /** * @brief clearLayout recursively walks the QLayout tree and deletes all the child * widgets and layouts. @@ -113,7 +115,7 @@ UIDLLEXPORT void clearLayout( QLayout* layout ); UIDLLEXPORT void setDefaultFontSize( int points ); UIDLLEXPORT int defaultFontSize(); // in points UIDLLEXPORT int defaultFontHeight(); // in pixels, DPI-specific -UIDLLEXPORT QFont defaultFont(); +UIDLLEXPORT QFont defaultFont(); // TODO:3.3:This has one consumer, move to BlankViewStep UIDLLEXPORT QFont largeFont(); UIDLLEXPORT QSize defaultIconSize(); From 4a6ee39f8bc8f64c740dbb4e92ea6ec58ade5df1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 11:08:31 +0200 Subject: [PATCH 183/335] [libcalamaresui] Blanket unmargin the content area --- src/libcalamaresui/ViewManager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index c78680418..e72c434f8 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -71,6 +71,7 @@ ViewManager::ViewManager( QObject* parent ) Q_ASSERT( !s_instance ); QBoxLayout* mainLayout = new QVBoxLayout; + mainLayout->setContentsMargins( 0, 0, 0, 0 ); m_widget->setObjectName( "viewManager" ); m_widget->setLayout( mainLayout ); From 347a25d13d264efc71fc74059a5e4e607badf9f1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 20:48:06 +0200 Subject: [PATCH 184/335] [libcalamaresui] Avoid nullptr deref - there's a check already there, and probably this means things are hopelessly broken anyway, but let's not crash here. --- src/libcalamaresui/ViewManager.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index e72c434f8..40e621ae8 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -128,15 +128,19 @@ ViewManager::insertViewStep( int before, ViewStep* step ) { cError() << "ViewStep" << step->moduleInstanceKey() << "has no widget."; } - - QLayout* layout = step->widget()->layout(); - if ( layout ) + else { - layout->setContentsMargins( 0, 0, 0, 0 ); + // step->adjustMargins() "some magic" + QLayout* layout = step->widget()->layout(); + if ( layout ) + { + layout->setContentsMargins( 0, 0, 0, 0 ); + } + + m_stack->insertWidget( before, step->widget() ); + m_stack->setCurrentIndex( 0 ); + step->widget()->setFocus(); } - m_stack->insertWidget( before, step->widget() ); - m_stack->setCurrentIndex( 0 ); - step->widget()->setFocus(); emit endInsertRows(); } From 748d76df4f0f9c4b34f491f1d75234cbc1d8896f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 21:15:37 +0200 Subject: [PATCH 185/335] [libcalamaresui] Add support for steps with own margins --- src/libcalamaresui/viewpages/ViewStep.cpp | 13 ++++++++ src/libcalamaresui/viewpages/ViewStep.h | 40 +++++++++++++++++++++-- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/libcalamaresui/viewpages/ViewStep.cpp b/src/libcalamaresui/viewpages/ViewStep.cpp index 82f8688dc..64979836f 100644 --- a/src/libcalamaresui/viewpages/ViewStep.cpp +++ b/src/libcalamaresui/viewpages/ViewStep.cpp @@ -19,6 +19,9 @@ #include "ViewStep.h" +#include +#include + namespace Calamares { @@ -85,4 +88,14 @@ ViewStep::checkRequirements() return RequirementsList(); } +QSize +ViewStep::widgetMargins( Qt::Orientations panelSides ) +{ + Q_UNUSED( panelSides ); + + // Application's default style + const auto* s = QApplication::style(); + return QSize( s->pixelMetric( QStyle::PM_LayoutLeftMargin ), s->pixelMetric( QStyle::PM_LayoutTopMargin ) ); +} + } // namespace Calamares diff --git a/src/libcalamaresui/viewpages/ViewStep.h b/src/libcalamaresui/viewpages/ViewStep.h index 707bc0b3b..59f307af2 100644 --- a/src/libcalamaresui/viewpages/ViewStep.h +++ b/src/libcalamaresui/viewpages/ViewStep.h @@ -52,27 +52,61 @@ public: explicit ViewStep( QObject* parent = nullptr ); virtual ~ViewStep() override; + /** @brief Human-readable name of the step + * + * This (translated) string is shown in the sidebar (progress) + * and during installation. There is no default. + */ virtual QString prettyName() const = 0; - /** + /** @brief Describe what this step will do during install + * * Optional. May return a non-empty string describing what this * step is going to do (should be translated). This is also used * in the summary page to describe what is going to be done. * Return an empty string to provide no description. + * + * The default implementation returns an empty string, so nothing + * will be displayed for this step when a summary is shown. */ virtual QString prettyStatus() const; - /** + /** @brief Return a long description what this step will do during install + * * Optional. May return a widget which will be inserted in the summary * page. The caller takes ownership of the widget. Return nullptr to * provide no widget. In general, this is only used for complicated * steps where prettyStatus() is not sufficient. + * + * The default implementation returns nullptr, so nothing + * will be displayed for this step when a summary is shown. */ virtual QWidget* createSummaryWidget() const; - //TODO: we might want to make this a QSharedPointer + /** @brief Get (or create) the widget for this view step + * + * While a view step **may** create the widget when it is loaded, + * it is recommended to wait with widget creation until the + * widget is actually asked for: a view step **may** be used + * without a UI. + */ virtual QWidget* widget() = 0; + /** @brief Get margins for this widget + * + * This is called by the layout manager to find the desired + * margins (width is used for left and right margin, height is + * used for top and bottom margins) for the widget. The + * @p panelSides indicates where there are panels in the overall + * layout: horizontally and / or vertically adjacent (or none!) + * to the view step's widget. + * + * Should return a size based also on QStyle metrics for layout. + * The default implementation just returns the default layout metrics + * (often 11 pixels on a side). + */ + virtual QSize widgetMargins( Qt::Orientations panelSides ); + /** * @brief Multi-page support, go next * From 1648f311fe18570ebafe89b25791b9c8655cf9f1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 21:26:22 +0200 Subject: [PATCH 186/335] [libcalamaresui] apidox touch-up --- src/libcalamaresui/ViewManager.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index cfff5abd9..73d1a0121 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -100,10 +100,11 @@ public: int currentStepIndex() const; /** - * @ brief Called when "Cancel" is clicked; asks for confirmation. + * @brief Called when "Cancel" is clicked; asks for confirmation. * Other means of closing Calamares also call this method, e.g. alt-F4. - * At the end of installation, no confirmation is asked. Returns true - * if the user confirms closing the window. + * At the end of installation, no confirmation is asked. + * + * @return @c true if the user confirms closing the window. */ bool confirmCancelInstallation(); From d7ed450dbfb334f24506915d5ee6a44de6965797 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 21:41:06 +0200 Subject: [PATCH 187/335] [libcalamaresui] Give ViewManager data about side-panels --- src/libcalamaresui/ViewManager.cpp | 1 + src/libcalamaresui/ViewManager.h | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index 40e621ae8..45baa2f59 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -67,6 +67,7 @@ ViewManager::ViewManager( QObject* parent ) : QAbstractListModel( parent ) , m_currentStep( -1 ) , m_widget( new QWidget() ) + , m_panelSides( Qt::Horizontal | Qt::Vertical ) { Q_ASSERT( !s_instance ); diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index 73d1a0121..0fb1cbb45 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -54,6 +54,9 @@ class UIDLLEXPORT ViewManager : public QAbstractListModel Q_PROPERTY( bool quitVisible READ quitVisible NOTIFY quitVisibleChanged FINAL ) + ///@brief Sides on which the ViewManager has side-panels + Q_PROPERTY( Qt::Orientations panelSides MEMBER m_panelSides ) + public: /** * @brief instance access to the ViewManager singleton. @@ -245,6 +248,8 @@ private: QString m_quitTooltip; bool m_quitVisible = true; + Qt::Orientations m_panelSides; + public: /** @section Model * From d952faf909bc423eb29df7e38e266460d1b9f0ff Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 22:12:59 +0200 Subject: [PATCH 188/335] [libcalamaresui] Set margins based on viewstep suggestion --- src/libcalamaresui/ViewManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index 45baa2f59..a39fc141f 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -131,11 +131,11 @@ ViewManager::insertViewStep( int before, ViewStep* step ) } else { - // step->adjustMargins() "some magic" QLayout* layout = step->widget()->layout(); if ( layout ) { - layout->setContentsMargins( 0, 0, 0, 0 ); + const auto margins = step->widgetMargins( m_panelSides ); + layout->setContentsMargins( margins.width(), margins.height(), margins.width(), margins.height() ); } m_stack->insertWidget( before, step->widget() ); From 68aecf6a26c3f2664e0974261c4dce714f184d4d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 24 Jun 2020 23:41:20 +0200 Subject: [PATCH 189/335] [libcalamaresui] Special margins for QML view steps If there are no surrounding panels, drop the margin around the QML on the assumption it needs to be full screen under special circumstances. --- src/libcalamaresui/viewpages/QmlViewStep.cpp | 16 ++++++++++++++++ src/libcalamaresui/viewpages/QmlViewStep.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/libcalamaresui/viewpages/QmlViewStep.cpp b/src/libcalamaresui/viewpages/QmlViewStep.cpp index 2234c230a..6318e47d8 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.cpp +++ b/src/libcalamaresui/viewpages/QmlViewStep.cpp @@ -151,6 +151,22 @@ QmlViewStep::widget() return m_widget; } +QSize +QmlViewStep::widgetMargins( Qt::Orientations panelSides ) +{ + // If any panels around it, use the standard, but if all the + // panels are hidden, like on full-screen with subsumed navigation, + // then no margins. + if ( panelSides ) + { + return ViewStep::widgetMargins( panelSides ); + } + else + { + return QSize( 0, 0 ); + } +} + void QmlViewStep::loadComplete() { diff --git a/src/libcalamaresui/viewpages/QmlViewStep.h b/src/libcalamaresui/viewpages/QmlViewStep.h index cad6bb395..e1f4caf28 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.h +++ b/src/libcalamaresui/viewpages/QmlViewStep.h @@ -55,6 +55,7 @@ public: virtual QString prettyName() const override; virtual QWidget* widget() override; + virtual QSize widgetMargins( Qt::Orientations panelSides ) override; virtual bool isNextEnabled() const override; virtual bool isBackEnabled() const override; From 8ced67680d2632a24f52a375ded2f5cf95e49b82 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 25 Jun 2020 00:00:13 +0200 Subject: [PATCH 190/335] [calamares] Allow get/set of panel-sides - Add access to the panel-sides membe of the view manager, and calculate which sides are populated by panels (if any). - Pass the calculated panel-sides to the view manager before it starts adding viewpages, so they get consistent margins. --- src/calamares/CalamaresWindow.cpp | 24 +++++++++++++++++------- src/libcalamaresui/ViewManager.h | 5 ++++- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp index a3775c44e..28b9df626 100644 --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp @@ -111,12 +111,12 @@ CalamaresWindow::getWidgetSidebar( QWidget* parent, int desiredWidth ) sideLayout->addWidget( debugWindowBtn ); debugWindowBtn->setFlat( true ); debugWindowBtn->setCheckable( true ); - connect( debugWindowBtn, &QPushButton::clicked, this, [ = ]( bool checked ) { + connect( debugWindowBtn, &QPushButton::clicked, this, [=]( bool checked ) { if ( checked ) { m_debugWindow = new Calamares::DebugWindow(); m_debugWindow->show(); - connect( m_debugWindow.data(), &Calamares::DebugWindow::closed, this, [ = ]() { + connect( m_debugWindow.data(), &Calamares::DebugWindow::closed, this, [=]() { m_debugWindow->deleteLater(); debugWindowBtn->setChecked( false ); } ); @@ -167,7 +167,7 @@ CalamaresWindow::getWidgetNavigation( QWidget* parent ) connect( back, &QPushButton::clicked, m_viewManager, &Calamares::ViewManager::back ); connect( m_viewManager, &Calamares::ViewManager::backEnabledChanged, back, &QPushButton::setEnabled ); connect( m_viewManager, &Calamares::ViewManager::backLabelChanged, back, &QPushButton::setText ); - connect( m_viewManager, &Calamares::ViewManager::backIconChanged, this, [ = ]( QString n ) { + connect( m_viewManager, &Calamares::ViewManager::backIconChanged, this, [=]( QString n ) { setButtonIcon( back, n ); } ); bottomLayout->addWidget( back ); @@ -179,7 +179,7 @@ CalamaresWindow::getWidgetNavigation( QWidget* parent ) connect( next, &QPushButton::clicked, m_viewManager, &Calamares::ViewManager::next ); connect( m_viewManager, &Calamares::ViewManager::nextEnabledChanged, next, &QPushButton::setEnabled ); connect( m_viewManager, &Calamares::ViewManager::nextLabelChanged, next, &QPushButton::setText ); - connect( m_viewManager, &Calamares::ViewManager::nextIconChanged, this, [ = ]( QString n ) { + connect( m_viewManager, &Calamares::ViewManager::nextIconChanged, this, [=]( QString n ) { setButtonIcon( next, n ); } ); bottomLayout->addWidget( next ); @@ -191,7 +191,7 @@ CalamaresWindow::getWidgetNavigation( QWidget* parent ) connect( quit, &QPushButton::clicked, m_viewManager, &Calamares::ViewManager::quit ); connect( m_viewManager, &Calamares::ViewManager::quitEnabledChanged, quit, &QPushButton::setEnabled ); connect( m_viewManager, &Calamares::ViewManager::quitLabelChanged, quit, &QPushButton::setText ); - connect( m_viewManager, &Calamares::ViewManager::quitIconChanged, this, [ = ]( QString n ) { + connect( m_viewManager, &Calamares::ViewManager::quitIconChanged, this, [=]( QString n ) { setButtonIcon( quit, n ); } ); connect( m_viewManager, &Calamares::ViewManager::quitTooltipChanged, quit, &QPushButton::setToolTip ); @@ -237,11 +237,13 @@ CalamaresWindow::getQmlNavigation( QWidget* parent ) } #else // Bogus to keep the linker happy -QWidget * CalamaresWindow::getQmlSidebar(QWidget* , int ) +QWidget* +CalamaresWindow::getQmlSidebar( QWidget*, int ) { return nullptr; } -QWidget * CalamaresWindow::getQmlNavigation(QWidget* ) +QWidget* +CalamaresWindow::getQmlNavigation( QWidget* ) { return nullptr; } @@ -401,6 +403,14 @@ CalamaresWindow::CalamaresWindow( QWidget* parent ) insertIf( mainLayout, PanelSide::Right, navigation, branding->navigationSide() ); insertIf( mainLayout, PanelSide::Right, sideBox, branding->sidebarSide() ); + // layout->count() returns number of things in it; above we have put + // at **least** the central widget, which comes from the view manager, + // both vertically and horizontally -- so if there's a panel along + // either axis, the count in that axis will be > 1. + m_viewManager->setPanelSides( + ( contentsLayout->count() > 1 ? Qt::Orientations( Qt::Horizontal ) : Qt::Orientations() ) + | ( mainLayout->count() > 1 ? Qt::Orientations( Qt::Vertical ) : Qt::Orientations() ) ); + CalamaresUtils::unmarginLayout( mainLayout ); CalamaresUtils::unmarginLayout( contentsLayout ); baseWidget->setLayout( mainLayout ); diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index 0fb1cbb45..683b335d1 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -55,7 +55,7 @@ class UIDLLEXPORT ViewManager : public QAbstractListModel Q_PROPERTY( bool quitVisible READ quitVisible NOTIFY quitVisibleChanged FINAL ) ///@brief Sides on which the ViewManager has side-panels - Q_PROPERTY( Qt::Orientations panelSides MEMBER m_panelSides ) + Q_PROPERTY( Qt::Orientations panelSides READ panelSides WRITE setPanelSides MEMBER m_panelSides ) public: /** @@ -111,6 +111,9 @@ public: */ bool confirmCancelInstallation(); + Qt::Orientations panelSides() const { return m_panelSides; } + void setPanelSides( Qt::Orientations panelSides ) { m_panelSides = panelSides; } + public Q_SLOTS: /** * @brief next moves forward to the next page of the current ViewStep (if any), From fa2f91aa46c1c354bde59ac4b9c49ae296c60286 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 25 Jun 2020 14:04:49 +0200 Subject: [PATCH 191/335] [libcalamaresui] Minor documentation improvements --- src/libcalamaresui/viewpages/QmlViewStep.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/libcalamaresui/viewpages/QmlViewStep.h b/src/libcalamaresui/viewpages/QmlViewStep.h index e1f4caf28..b15fbfa5c 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.h +++ b/src/libcalamaresui/viewpages/QmlViewStep.h @@ -35,6 +35,15 @@ namespace Calamares * This is generally a **base** class for other view steps, but * it can be used stand-alone for viewsteps that don't really have * any functionality. + * + * Most subclasses will override the following methods: + * - prettyName() to provide a meaningful human-readable name + * - jobs() if there is real work to be done during installation + * - getConfig() to return a meaningful configuration object + * + * For details on the interaction between the config object and + * the QML in the module, see the Calamares wiki: + * https://github.com/calamares/calamares/wiki/Develop-Design */ class QmlViewStep : public Calamares::ViewStep { From 6735ff1cd06d0c06e757cca62c1712336e6cf6eb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 25 Jun 2020 14:38:09 +0200 Subject: [PATCH 192/335] Docs: give up on PythonQt modules --- src/modules/README.md | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/src/modules/README.md b/src/modules/README.md index 2a9ef64c7..3e96d672d 100644 --- a/src/modules/README.md +++ b/src/modules/README.md @@ -9,20 +9,16 @@ Each Calamares module lives in its own directory. All modules are installed in `$DESTDIR/lib/calamares/modules`. There are two **types** of Calamares module: -* viewmodule, for user-visible modules. These may be in C++, or PythonQt. +* viewmodule, for user-visible modules. These use C++ and QWidgets or QML * jobmodule, for not-user-visible modules. These may be done in C++, Python, or as external processes. -A viewmodule exposes a UI to the user. The PythonQt-based modules -are considered experimental (and as of march 2019 may be on the -way out again as never-used-much and PythonQt is not packaged -on Debian anymore). +A viewmodule exposes a UI to the user. -There are three (four) **interfaces** for Calamares modules: +There are three **interfaces** for Calamares modules: * qtplugin (viewmodules, jobmodules), * python (jobmodules only), -* pythonqt (viewmodules, jobmodules, optional), -* process (jobmodules only). +* process (jobmodules only, not recommended). ## Module directory @@ -50,7 +46,7 @@ Module descriptors **must** have the following keys: - *interface* (see below for the different interfaces; generally we refer to the kinds of modules by their interface) -Module descriptors for Python and PythonQt modules **must** have the following key: +Module descriptors for Python modules **must** have the following key: - *script* (the name of the Python script to load, nearly always `main.py`) Module descriptors **may** have the following keys: @@ -139,9 +135,8 @@ nearly all cases can be described in CMake. Modules may use one of the python interfaces, which may be present in a Calamares installation (but also may not be). These modules must have -a `module.desc` file. The Python script must implement one or more of the -Python interfaces for Calamares -- either the python jobmodule interface, -or the experimental pythonqt job- and viewmodule interfaces. +a `module.desc` file. The Python script must implement the +Python jobmodule interface. To add a Python or process jobmodule, put it in a subdirectory and make sure it has a `module.desc`. It will be picked up automatically by our CMake magic. @@ -178,32 +173,20 @@ description if something went wrong. -## PythonQt modules +## PythonQt modules (deprecated) > Type: viewmodule, jobmodule > Interface: pythonqt -The PythonQt modules are considered experimental and may be removed again -due to low uptake. Their documentation is also almost completely lacking. - -### PythonQt Jobmodule - -A PythonQt jobmodule implements the experimental Job interface by defining -a subclass of something. - -### PythonQt Viewmodule - -A PythonQt viewmodule implements the experimental View interface by defining -a subclass of something. - -### Python API - -**TODO:** this needs documentation +The PythonQt modules are deprecated and will be removed in Calamares 3.3. +Their documentation is also almost completely lacking. ## Process jobmodules +Use of this kind of module is **not** recommended. + > Type: jobmodule > Interface: process From 31a1b710bcb92335a5d623cdd7adc33f83b89fe5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 25 Jun 2020 15:26:48 +0200 Subject: [PATCH 193/335] Docs: say something about QML modules --- src/libcalamaresui/viewpages/QmlViewStep.h | 4 +- src/modules/README.md | 55 +++++++++++++++++++++- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/libcalamaresui/viewpages/QmlViewStep.h b/src/libcalamaresui/viewpages/QmlViewStep.h index b15fbfa5c..dc2af650d 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.h +++ b/src/libcalamaresui/viewpages/QmlViewStep.h @@ -42,8 +42,8 @@ namespace Calamares * - getConfig() to return a meaningful configuration object * * For details on the interaction between the config object and - * the QML in the module, see the Calamares wiki: - * https://github.com/calamares/calamares/wiki/Develop-Design + * the QML in the module, see the module documentation: + * src/modules/README.md */ class QmlViewStep : public Calamares::ViewStep { diff --git a/src/modules/README.md b/src/modules/README.md index 3e96d672d..ee6e378d2 100644 --- a/src/modules/README.md +++ b/src/modules/README.md @@ -129,6 +129,59 @@ a `CMakeLists.txt` with a `calamares_add_plugin` call. It will be picked up automatically by our CMake magic. The `module.desc` file is not recommended: nearly all cases can be described in CMake. +### C++ Jobmodule + +**TODO:** this needs documentation + +### C++ Widgets Viewmodule + +**TODO:** this needs documentation + +### C++ QML Viewmodule + +A QML Viewmodule (or view step) puts much of the UI work in one or more +QML files; the files may be loaded from the branding directory or compiled +into the module. Which QML is used depends on the deployment and the +configuration files for Calamares. + +#### Explicit properties + +The QML can access data from the C++ framework though properties +exposed to QML. There are two libraries that need to be imported +explicitly: + +``` +import io.calamares.core 1.0 +import io.calamares.ui 1.0 +``` + +The *ui* library contains the *Branding* object, which corresponds to +the branding information set through `branding.desc`. The Branding +class (in `src/libcalamaresui/Branding.h` offers a QObject-property +based API, where the most important functions are `string()` and the +convenience functions `versionedName()` and similar. + +The *core* library contains both *ViewManager*, which handles overall +progress through the application, and *Global*, which holds global +storage information. Both objects have an extensive API. The *ViewManager* +can behave as a model for list views and the like. + +These explicit properties from libraries are shared across all the +QML modules (for global storage that goes without saying: it is +the mechanism to share information with other modules). + +#### Implicit properties + +Each module also has an implicit context property available to it. +No import is needed. The context property *config* (note lower case) +holds the Config object for the module. + +The Config object is the bridge between C++ and QML. + +A Config object must inherit QObject and should expose, as `Q_PROPERTY`, +all of the relevant configuration information for the module instance. +The general description how to do that is available +in the [Qt documentation](https://doc.qt.io/qt-5/qtqml-cppintegration-topic.html). ## Python modules @@ -183,7 +236,7 @@ Their documentation is also almost completely lacking. -## Process jobmodules +## Process modules Use of this kind of module is **not** recommended. From 3b5c4839e3913f2cecf7ad211e4a82de2ec6f8ba Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 26 Jun 2020 20:34:33 +0200 Subject: [PATCH 194/335] [libcalamaresui] Warnings-- --- src/libcalamaresui/viewpages/ViewStep.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcalamaresui/viewpages/ViewStep.cpp b/src/libcalamaresui/viewpages/ViewStep.cpp index 64979836f..ad86d06a4 100644 --- a/src/libcalamaresui/viewpages/ViewStep.cpp +++ b/src/libcalamaresui/viewpages/ViewStep.cpp @@ -91,7 +91,7 @@ ViewStep::checkRequirements() QSize ViewStep::widgetMargins( Qt::Orientations panelSides ) { - Q_UNUSED( panelSides ); + Q_UNUSED( panelSides ) // Application's default style const auto* s = QApplication::style(); From 08aa362c5c308ad8b0345aa5f5bf4950c542b017 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 27 Jun 2020 00:33:50 +0200 Subject: [PATCH 195/335] [license] Warnings-reduction - Don't do in code what is already done in the designer (.ui) file - setFrameStyle() is difficult because it mixes different enums into an int, which causes the warning from clang. --- src/modules/license/LicensePage.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 237e8d0dc..f2b1f4a50 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -107,10 +107,6 @@ LicensePage::LicensePage( QWidget* parent ) // ui->verticalLayout->insertSpacing( 1, CalamaresUtils::defaultFontHeight() ); CalamaresUtils::unmarginLayout( ui->verticalLayout ); - ui->mainText->setWordWrap( true ); - ui->mainText->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); - - ui->acceptFrame->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); ui->acceptFrame->setStyleSheet( mustAccept ); ui->acceptFrame->layout()->setMargin( CalamaresUtils::defaultFontHeight() / 2 ); From 8aa8ac2d2688d9723a6e04bdb3d53b7b09e8e9f8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 3 Jul 2020 21:51:39 +0200 Subject: [PATCH 196/335] [packages] Tidy up configuration - fix the schema so the schema is valid json-schema - the schema doesn't actually validate the *operations* yet - sort the named backends (needs a double-check that the list covers all the ones we currently support) SEE #1441 --- src/modules/packages/packages.conf | 16 ++++---- src/modules/packages/packages.schema.yaml | 50 +++++++++++------------ 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index 032794177..bcf313972 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -1,16 +1,18 @@ --- # # Which package manager to use, options are: -# - packagekit - PackageKit CLI tool -# - zypp - Zypp RPM frontend -# - yum - Yum RPM frontend -# - dnf - DNF, the new RPM frontend -# - urpmi - Mandriva package manager +# - apk - Alpine Linux package manager # - apt - APT frontend for DEB and RPM +# - dnf - DNF, the new RPM frontend +# - entropy - Sabayon package manager +# - packagekit - PackageKit CLI tool # - pacman - Pacman # - portage - Gentoo package manager -# - entropy - Sabayon package manager -# - apk = Alpine Linux package manager +# - urpmi - Mandriva package manager +# - yum - Yum RPM frontend +# - zypp - Zypp RPM frontend +# +# Not actually a package manager, but suitable for testing: # - dummy - Dummy manager, only logs # backend: dummy diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml index 8b8a9eb1d..24e1a271a 100644 --- a/src/modules/packages/packages.schema.yaml +++ b/src/modules/packages/packages.schema.yaml @@ -4,30 +4,26 @@ $id: https://calamares.io/schemas/packages additionalProperties: false type: object properties: - "backend": { type: string, required: true, enum: [packagekit, zypp, yum, dnf, urpmi, apt, pacman, portage, entropy] } - "update_db": { type: boolean, default: true } - "operations": - type: seq - sequence: - - type: map - mapping: - "install": - type: seq - sequence: - - { type: text } - "remove": - type: seq - sequence: - - { type: text } - "localInstall": - type: seq - sequence: - - { type: text } - "try_install": - type: seq - sequence: - - { type: text } - "try_remove": - type: seq - sequence: - - { type: text } + backend: + type: string + enum: + - apk + - apt + - dnf + - entropy + - packagekit + - pacman + - portage + - urpmi + - yum + - zypp + - dummy + + update_db: { type: boolean, default: true } + update_system: { type: boolean, default: false } + skip_if_no_internet: { type: boolean, default: false } + + operations: + type: array + +required: [ backend ] From d3f9415bc195e5b752f23a8c9de6ce63475ea4f7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 3 Jul 2020 22:06:57 +0200 Subject: [PATCH 197/335] [packages] Expand schema to cover the operations - Not complete, since the items in the operations aren't done --- src/modules/packages/packages.schema.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml index 24e1a271a..40f82bb35 100644 --- a/src/modules/packages/packages.schema.yaml +++ b/src/modules/packages/packages.schema.yaml @@ -25,5 +25,18 @@ properties: operations: type: array + items: + additionalProperties: false + type: object + properties: + # TODO: these are either-string-or-struct items, + # need their own little schema. + install: { type: array } + remove: { type: array } + try_install: { type: array } + try_remove: { type: array } + localInstall: { type: array } + source: { type: string } + required: [ backend ] From 46ad704ede0fa6aff65342814f46ec5e25619826 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 3 Jul 2020 22:33:00 +0200 Subject: [PATCH 198/335] [partition] Fix build for old KPMCore SEE #1444 --- src/modules/partition/jobs/FillGlobalStorageJob.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index d695a5f6a..e3f696bbc 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -93,8 +93,10 @@ mapForPartition( Partition* partition, const QString& uuid ) map[ "device" ] = partition->partitionPath(); map[ "partlabel" ] = partition->label(); map[ "partuuid" ] = partition->uuid(); +#ifdef WITH_KPMCORE42API map[ "parttype" ] = partition->type(); map[ "partattrs" ] = partition->attributes(); +#endif map[ "mountPoint" ] = PartitionInfo::mountPoint( partition ); map[ "fsName" ] = userVisibleFS( partition->fileSystem() ); map[ "fs" ] = untranslatedFS( partition->fileSystem() ); From d78cbfc6446a5934abf9017b3f9929a739700afb Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 5 Jul 2020 08:18:38 +0100 Subject: [PATCH 199/335] update example configurations and schema --- src/modules/packages/packages.conf | 1 + src/modules/packages/packages.schema.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index bcf313972..738117ea4 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -11,6 +11,7 @@ # - urpmi - Mandriva package manager # - yum - Yum RPM frontend # - zypp - Zypp RPM frontend +# - pamac - Manjaro package manager # # Not actually a package manager, but suitable for testing: # - dummy - Dummy manager, only logs diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml index 40f82bb35..cdb2fefdf 100644 --- a/src/modules/packages/packages.schema.yaml +++ b/src/modules/packages/packages.schema.yaml @@ -17,6 +17,7 @@ properties: - urpmi - yum - zypp + - pamac - dummy update_db: { type: boolean, default: true } From e29462bc05c08a18d37dd4addcf0be189eef0103 Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 5 Jul 2020 08:35:52 +0100 Subject: [PATCH 200/335] [pamac] rework db_lock --- src/modules/packages/main.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index b2000ab14..b1a94697e 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -309,32 +309,30 @@ class PMPacman(PackageManager): def update_system(self): check_target_env_call(["pacman", "-Su", "--noconfirm"]) - - + + class PMPamac(PackageManager): backend = "pamac" - - def check_db_lock(self, lock="/var/lib/pacman/db.lck"): + + def del_db_lock(self, lock="/var/lib/pacman/db.lck"): # In case some error or crash, the database will be locked, # resulting in remaining packages not being installed. - import os - if os.path.exists(lock): - check_target_env_call(["rm", lock]) + check_target_env_call(["rm", "-f", lock]) def install(self, pkgs, from_local=False): - self.check_db_lock() + self.del_db_lock() check_target_env_call([self.backend, "install", "--no-confirm"] + pkgs) def remove(self, pkgs): - self.check_db_lock() + self.del_db_lock() check_target_env_call([self.backend, "remove", "--no-confirm"] + pkgs) def update_db(self): - self.check_db_lock() + self.del_db_lock() check_target_env_call([self.backend, "update", "--no-confirm"]) def update_system(self): - self.check_db_lock() + self.del_db_lock() check_target_env_call([self.backend, "upgrade", "--no-confirm"]) From c16866fb885f98d047f208b916e14833733e293d Mon Sep 17 00:00:00 2001 From: Vitor Lopes Date: Sun, 5 Jul 2020 08:37:28 +0100 Subject: [PATCH 201/335] pep8 302 --- src/modules/packages/main.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index b1a94697e..4f746dccc 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -178,6 +178,7 @@ class PMPackageKit(PackageManager): def update_system(self): check_target_env_call(["pkcon", "-py", "update"]) + class PMZypp(PackageManager): backend = "zypp" @@ -198,6 +199,7 @@ class PMZypp(PackageManager): # Doesn't need to update the system explicitly pass + class PMYum(PackageManager): backend = "yum" @@ -215,6 +217,7 @@ class PMYum(PackageManager): def update_system(self): check_target_env_call(["yum", "-y", "upgrade"]) + class PMDnf(PackageManager): backend = "dnf" @@ -274,6 +277,7 @@ class PMApt(PackageManager): # Doesn't need to update the system explicitly pass + class PMXbps(PackageManager): backend = "xbps" @@ -289,6 +293,7 @@ class PMXbps(PackageManager): def update_system(self): check_target_env_call(["xbps", "-Suy"]) + class PMPacman(PackageManager): backend = "pacman" From 43ebcf8b616d408dec01b704d362a6533eab8bef Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 13:48:07 +0200 Subject: [PATCH 202/335] [packages] Keep package-manager list alphabetized --- src/modules/packages/packages.conf | 2 +- src/modules/packages/packages.schema.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index 738117ea4..df477e6e9 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -7,11 +7,11 @@ # - entropy - Sabayon package manager # - packagekit - PackageKit CLI tool # - pacman - Pacman +# - pamac - Manjaro package manager # - portage - Gentoo package manager # - urpmi - Mandriva package manager # - yum - Yum RPM frontend # - zypp - Zypp RPM frontend -# - pamac - Manjaro package manager # # Not actually a package manager, but suitable for testing: # - dummy - Dummy manager, only logs diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml index cdb2fefdf..ea0addd10 100644 --- a/src/modules/packages/packages.schema.yaml +++ b/src/modules/packages/packages.schema.yaml @@ -13,11 +13,11 @@ properties: - entropy - packagekit - pacman + - pamac - portage - urpmi - yum - zypp - - pamac - dummy update_db: { type: boolean, default: true } From 14fbfa72d34fc7294e17fb6891858aaf9593906b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 13:48:21 +0200 Subject: [PATCH 203/335] Changes: new contributions --- CHANGES | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 49e020363..594fd844c 100644 --- a/CHANGES +++ b/CHANGES @@ -6,13 +6,18 @@ website will have to do for older versions. # 3.2.27 (unreleased) # This release contains contributions from (alphabetically by first name): - - No external contributors yet + - Gaël PORTAY + - Vitor Lopes (new! welcome!) ## Core ## - - No core changes yet + - QML modules with no surrounding navigation -- this is basically a + special case for full-screen Calamares -- now have margins suitable + for full-screen use. + - PythonQt modules are increasingly on the way out. ## Modules ## - - No module changes yet + - The Manjaro package manager *pamac* has been added to those supported by + the *packages* module. # 3.2.26.1 (2020-06-23) # From 37ce49b00167a662f4b29e0154ca7945b0cbf8b4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 14:11:16 +0200 Subject: [PATCH 204/335] CMake: stop overwriting branding settings in the build dir - Only copy over branding files if they are newer Typically I have KDevelop open while working on Calamares; if I am editing settings in `branding.desc` in the build directory, then every time KDevelop runs CMake in the background, my changes (for testing branding things!) would be overwritten. Don't do that. For normal builds with a clean build directory, this doesn't change anything since the target is missing; changing a file in the source directory **will** copy it over the build directory version. --- CMakeModules/CalamaresAddBrandingSubdirectory.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index 9283b48a7..70fcd9279 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -70,7 +70,11 @@ function( calamares_add_branding NAME ) foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} ) set( _subpath ${_brand_dir}/${BRANDING_COMPONENT_FILE} ) if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_subpath} ) - configure_file( ${_subpath} ${_subpath} COPYONLY ) + set( _src ${CMAKE_CURRENT_SOURCE_DIR}/${_subpath} ) + set( _dst ${CMAKE_CURRENT_BINARY_DIR}/${_subpath} ) + if( ${_src} IS_NEWER_THAN ${_dst} ) + configure_file( ${_src} ${_dst} COPYONLY ) + endif() install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${_subpath} DESTINATION ${BRANDING_COMPONENT_DESTINATION}/${_subdir}/ ) From 67aa34c4a45cabf223e2f358a474f3a282d45a56 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 14:13:49 +0200 Subject: [PATCH 205/335] [calamares] Center the progress texts --- src/calamares/calamares-sidebar.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/calamares/calamares-sidebar.qml b/src/calamares/calamares-sidebar.qml index 183a9acb2..ee75c22c8 100644 --- a/src/calamares/calamares-sidebar.qml +++ b/src/calamares/calamares-sidebar.qml @@ -35,6 +35,7 @@ Rectangle { Text { anchors.verticalCenter: parent.verticalCenter; + anchors.horizontalCenter: parent.horizontalCenter; x: parent.x + 12; color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarTextSelect : Branding.SidebarText ); text: display; From 631923abf8c06289139895dbae96b07a547b550e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 15:12:50 +0200 Subject: [PATCH 206/335] [libcalamares] Console-logging follows -D flag exactly - Don't always log LOGEXTRA and below. --- src/libcalamares/utils/Logger.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index 494b88659..f4ff6af3c 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot @@ -95,7 +95,7 @@ log( const char* msg, unsigned int debugLevel ) logfile.flush(); } - if ( debugLevel <= LOGEXTRA || debugLevel < s_threshold ) + if ( logLevelEnabled(debugLevel) ) { QMutexLocker lock( &s_mutex ); From 3565b6806af4c578945322e44336adf3cce8e3f0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 15:25:25 +0200 Subject: [PATCH 207/335] [libcalamares] Massage the logger output - continuations, for the console, no longer print the date + level, which makes things easier to visually group and read. - the file log is mostly unchanged, except it contains more spaces now. --- src/libcalamares/utils/Logger.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index f4ff6af3c..72885d53f 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -50,7 +50,7 @@ static unsigned int s_threshold = static QMutex s_mutex; static const char s_Continuation[] = "\n "; -static const char s_SubEntry[] = " .. "; +static const char s_SubEntry[] = " .. "; namespace Logger @@ -79,7 +79,7 @@ logLevel() } static void -log( const char* msg, unsigned int debugLevel ) +log( const char* msg, unsigned int debugLevel, bool withTime = true ) { if ( true ) { @@ -95,13 +95,15 @@ log( const char* msg, unsigned int debugLevel ) logfile.flush(); } - if ( logLevelEnabled(debugLevel) ) + if ( logLevelEnabled( debugLevel ) ) { QMutexLocker lock( &s_mutex ); - - std::cout << QTime::currentTime().toString().toUtf8().data() << " [" - << QString::number( debugLevel ).toUtf8().data() << "]: " << msg << std::endl; - std::cout.flush(); + if ( withTime ) + { + std::cout << QTime::currentTime().toString().toUtf8().data() << " [" + << QString::number( debugLevel ).toUtf8().data() << "]: "; + } + std::cout << msg << std::endl; } } @@ -199,12 +201,15 @@ CDebug::CDebug( unsigned int debugLevel, const char* func ) CDebug::~CDebug() { - if ( m_funcinfo ) + if ( logLevelEnabled( m_debugLevel ) ) { - m_msg.prepend( s_Continuation ); // Prepending, so back-to-front - m_msg.prepend( m_funcinfo ); + if ( m_funcinfo ) + { + m_msg.prepend( s_Continuation ); // Prepending, so back-to-front + m_msg.prepend( m_funcinfo ); + } + log( m_msg.toUtf8().data(), m_debugLevel, m_funcinfo ); } - log( m_msg.toUtf8().data(), m_debugLevel ); } constexpr FuncSuppressor::FuncSuppressor( const char s[] ) From 2b2a69631fb73ed6585f0f8696e85c8f5e79ff0b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 15:29:13 +0200 Subject: [PATCH 208/335] [libcalamaresui] Suggestions for better naming of enum values --- src/libcalamaresui/Branding.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libcalamaresui/Branding.h b/src/libcalamaresui/Branding.h index e84e23680..764845fec 100644 --- a/src/libcalamaresui/Branding.h +++ b/src/libcalamaresui/Branding.h @@ -83,7 +83,9 @@ public: SidebarBackground, SidebarText, SidebarTextSelect, - SidebarTextHighlight + SidebarTextSelected = SidebarTextSelect, // TODO:3.3:Remove SidebarTextSelect + SidebarTextHighlight, + SidebarBackgroundSelected = SidebarTextHighlight // TODO:3.3:Remove SidebarTextHighlight }; Q_ENUM( StyleEntry ) From a78c3683679fef38658a04f2a489ad9635867495 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 16:11:18 +0200 Subject: [PATCH 209/335] [calamares] Tweak default QML sidebar - make the rectangles slightly larger - align text to center of the rectangle - make the rectangle fill out the column; without this, the width would collapse back to 0 after a change in the model, which would draw 0-width rectangles. FIXES #1453 --- src/calamares/calamares-sidebar.qml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/calamares/calamares-sidebar.qml b/src/calamares/calamares-sidebar.qml index ee75c22c8..85d1d506d 100644 --- a/src/calamares/calamares-sidebar.qml +++ b/src/calamares/calamares-sidebar.qml @@ -7,6 +7,7 @@ import QtQuick.Layouts 1.3 Rectangle { id: sideBar; color: Branding.styleString( Branding.SidebarBackground ); + anchors.fill: parent; ColumnLayout { anchors.fill: parent; @@ -27,17 +28,17 @@ Rectangle { Repeater { model: ViewManager Rectangle { - Layout.leftMargin: 12; - width: parent.width - 24; + Layout.leftMargin: 6; + Layout.rightMargin: 6; + Layout.fillWidth: true; height: 35; radius: 6; - color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarTextHighlight : Branding.SidebarBackground ); + color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarBackgroundSelected : Branding.SidebarBackground ); Text { anchors.verticalCenter: parent.verticalCenter; anchors.horizontalCenter: parent.horizontalCenter; - x: parent.x + 12; - color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarTextSelect : Branding.SidebarText ); + color: Branding.styleString( index == ViewManager.currentStepIndex ? Branding.SidebarTextSelected : Branding.SidebarText ); text: display; } } From 948c078e1a11d86d7f06aa2ba8968cd4869c3c85 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 23:03:12 +0200 Subject: [PATCH 210/335] [partition] winnow floppy drives - don't list floppy drives FIXES #1393 --- src/modules/partition/core/DeviceList.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 944940d9a..1eb7d26eb 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -92,6 +92,19 @@ isIso9660( const Device* device ) return false; } +static inline bool +isZRam( const Device* device ) +{ + const QString path = device->deviceNode(); + return path.startswith( "/dev/zram" ); +} + +static inline bool +isFloppyDrive( const Device* device ) +{ + const QString path = device->deviceNode(); + return path.startswith( "/dev/fd" ) || path.startswith( "/dev/floppy" ); +} static inline QDebug& operator<<( QDebug& s, QList< Device* >::iterator& it ) @@ -138,11 +151,16 @@ getDevices( DeviceType which, qint64 minimumSize ) cDebug() << Logger::SubEntry << "Skipping nullptr device"; it = erase( devices, it ); } - else if ( ( *it )->deviceNode().startsWith( "/dev/zram" ) ) + else if ( isZRam( *it ) ) { cDebug() << Logger::SubEntry << "Removing zram" << it; it = erase( devices, it ); } + else if ( isFloppyDrive( ( *it ) ) ) + { + cDebug() << Logger::SubEntry << "Removing floppy disk" << it; + it = erase( devices, it ); + } else if ( writableOnly && hasRootPartition( *it ) ) { cDebug() << Logger::SubEntry << "Removing device with root filesystem (/) on it" << it; From 313531bc4b7954c070f842c3ea223838151ed221 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 23:04:39 +0200 Subject: [PATCH 211/335] [partition] Remove unused parameter - there are no consumers for checking-the-capacity-of-the-drive This parameter was introduced in 3cd18fd285 as "preparatory work" but never completed. The architecture of the PartitionCoreModule makes it very difficult to get the necessary parameters to the right place, and it would probably be better to put a SortFilterProxyModel in front of a partitioning model anyway. Since the display code can already filter on size, just drop this one. --- src/modules/partition/core/DeviceList.cpp | 7 +------ src/modules/partition/core/DeviceList.h | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 1eb7d26eb..72786d5a5 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -125,7 +125,7 @@ erase( DeviceList& l, DeviceList::iterator& it ) } QList< Device* > -getDevices( DeviceType which, qint64 minimumSize ) +getDevices( DeviceType which ) { bool writableOnly = ( which == DeviceType::WritableOnly ); @@ -171,11 +171,6 @@ getDevices( DeviceType which, qint64 minimumSize ) cDebug() << Logger::SubEntry << "Removing device with iso9660 filesystem (probably a CD) on it" << it; it = erase( devices, it ); } - else if ( ( minimumSize >= 0 ) && !( ( *it )->capacity() > minimumSize ) ) - { - cDebug() << Logger::SubEntry << "Removing too-small" << it; - it = erase( devices, it ); - } else { ++it; diff --git a/src/modules/partition/core/DeviceList.h b/src/modules/partition/core/DeviceList.h index 6823d6951..51c71feeb 100644 --- a/src/modules/partition/core/DeviceList.h +++ b/src/modules/partition/core/DeviceList.h @@ -45,7 +45,7 @@ enum class DeviceType * greater than @p minimumSize will be returned. * @return a list of Devices meeting this criterium. */ -QList< Device* > getDevices( DeviceType which = DeviceType::All, qint64 minimumSize = -1 ); +QList< Device* > getDevices( DeviceType which = DeviceType::All ); } // namespace PartUtils From 7f1a59f02b207269916a5975b1672655fd371b59 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 7 Jul 2020 23:46:51 +0200 Subject: [PATCH 212/335] [partition] Fix typo --- src/modules/partition/core/DeviceList.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 72786d5a5..041801b9e 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -96,14 +96,14 @@ static inline bool isZRam( const Device* device ) { const QString path = device->deviceNode(); - return path.startswith( "/dev/zram" ); + return path.startsWith( "/dev/zram" ); } static inline bool isFloppyDrive( const Device* device ) { const QString path = device->deviceNode(); - return path.startswith( "/dev/fd" ) || path.startswith( "/dev/floppy" ); + return path.startsWith( "/dev/fd" ) || path.startsWith( "/dev/floppy" ); } static inline QDebug& From 240c703549c7f073590dc45783154c80f73903d4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 8 Jul 2020 11:12:27 +0200 Subject: [PATCH 213/335] [partition] Don't leak the PM core object --- src/modules/partition/gui/PartitionViewStep.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index a583a4b96..b0142a82a 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -122,6 +122,7 @@ PartitionViewStep::~PartitionViewStep() { m_manualPartitionPage->deleteLater(); } + delete m_core; } From a91edfef89b9323a1be8da99bb69dd985cb99379 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 8 Jul 2020 13:34:38 +0200 Subject: [PATCH 214/335] [netinstall] auto-resize the columns - previously, the first column (name) was sized to show the names **that were visible at startup**, which fails when there are long names hidden in groups that are not expanded immediately. - change the columns to resize according to the contents; this makes the descriptions jump to the right as the name column gets wider. FIXES #1448 --- src/modules/netinstall/NetInstallPage.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 80689e6d2..0d8dc5960 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -40,6 +40,7 @@ NetInstallPage::NetInstallPage( Config* c, QWidget* parent ) , ui( new Ui::Page_NetInst ) { ui->setupUi( this ); + ui->groupswidget->header()->setSectionResizeMode( QHeaderView::ResizeToContents ); ui->groupswidget->setModel( c->model() ); connect( c, &Config::statusChanged, this, &NetInstallPage::setStatus ); connect( c, &Config::statusReady, this, &NetInstallPage::expandGroups ); @@ -88,8 +89,6 @@ NetInstallPage::expandGroups() ui->groupswidget->setExpanded( index, true ); } } - // Make sure all the group names are visible - ui->groupswidget->resizeColumnToContents(0); } void From da1cc7c3a56102a06b2484ea958bb4419467fbac Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 9 Jul 2020 08:45:41 +0200 Subject: [PATCH 215/335] [libcalamaresui] Don't clear the map when inserting strings - the documentation doesn't say the map is cleared, and the one place this function is used doesn't need that either. - make type of config explicit --- src/libcalamaresui/Branding.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index a5909fd61..cf66097c9 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -132,9 +132,7 @@ loadStrings( QMap< QString, QString >& map, throw YAML::Exception( YAML::Mark(), std::string( "Branding configuration is not a map: " ) + key ); } - const auto& config = CalamaresUtils::yamlMapToVariant( doc[ key ] ); - - map.clear(); + const QVariantMap config = CalamaresUtils::yamlMapToVariant( doc[ key ] ); for ( auto it = config.constBegin(); it != config.constEnd(); ++it ) { map.insert( it.key(), transform( it.value().toString() ) ); From a58d59d86c86f9e0a58e2e98094d01bc2178b3aa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 9 Jul 2020 10:45:28 +0200 Subject: [PATCH 216/335] [libcalamares] Minor documentation on Yaml.* --- src/libcalamares/utils/Yaml.cpp | 6 ++---- src/libcalamares/utils/Yaml.h | 14 ++++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/libcalamares/utils/Yaml.cpp b/src/libcalamares/utils/Yaml.cpp index 0c7b6787f..af73e2825 100644 --- a/src/libcalamares/utils/Yaml.cpp +++ b/src/libcalamares/utils/Yaml.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * * Calamares is free software: you can redistribute it and/or modify @@ -17,8 +18,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * */ #include "Yaml.h" @@ -125,7 +124,6 @@ yamlToStringList( const YAML::Node& listNode ) return l; } - void explainYamlException( const YAML::Exception& e, const QByteArray& yamlData, const char* label ) { diff --git a/src/libcalamares/utils/Yaml.h b/src/libcalamares/utils/Yaml.h index c14639447..0f9631fa2 100644 --- a/src/libcalamares/utils/Yaml.h +++ b/src/libcalamares/utils/Yaml.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * * Calamares is free software: you can redistribute it and/or modify @@ -17,11 +18,16 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * */ +/* + * YAML conversions and YAML convenience header. + * + * Includes the system YAMLCPP headers without warnings (by switching off + * the expected warnings) and provides a handful of methods for + * converting between YAML and QVariant. + */ #ifndef UTILS_YAML_H #define UTILS_YAML_H @@ -50,7 +56,7 @@ class QFileInfo; #pragma clang diagnostic pop #endif -/// @brief Appends all te elements of @p node to the string list @p v +/// @brief Appends all the elements of @p node to the string list @p v void operator>>( const YAML::Node& node, QStringList& v ); namespace CalamaresUtils From e1f4224bedc5db2dc03be985f60417e27ab789e1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 9 Jul 2020 11:28:09 +0200 Subject: [PATCH 217/335] [libcalamaresui] Fix slideshowAPI loading In 022045ae05 a regression was introduced: if no *slideshowAPI* is specified in the branding file, Calamares refuses to start, with a YAML failure. Before the refactoring, we had `YAML::Node doc` and looked up the *slideshowAPI* in it with `doc["slideshowAPI"]`. After the refactoring, we had `const YAML::Node& doc`. The `const` makes all the difference: - subscripting a non-existent key in a mutable Node silently returns a Null node (and possibly inserts the key); - subscripting a non-existent key in a const Node returns an invalid or undefined node. Calling IsNull() or IsScalar() on a Null node works: the functions return a bool. Calling them on an invalid node throws an exception. So in the **const** case, this code can throws an exception that it doesn't in the non-const case: `doc[ "slideshowAPI" ].IsScalar()` - Massage the code to check for validity before checking for scalar - Add a `get()` that produces more useful exception types when looking up an invalid key - Use `get()` to lookup the slideshow node just once. --- src/libcalamaresui/Branding.cpp | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index cf66097c9..4cfe7ea40 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -367,7 +367,7 @@ Branding::WindowDimension::isValid() const } -/// @brief Guard against cases where the @p key doesn't exist in @p doc +/// @brief Get a string (empty is @p key doesn't exist) from @p key in @p doc static inline QString getString( const YAML::Node& doc, const char* key ) { @@ -378,6 +378,18 @@ getString( const YAML::Node& doc, const char* key ) return QString(); } +/// @brief Get a node (throws if @p key doesn't exist) from @p key in @p doc +static inline YAML::Node +get( const YAML::Node& doc, const char* key ) +{ + auto r = doc[ key ]; + if ( !r.IsDefined() ) + { + throw YAML::KeyNotFound( YAML::Mark::null_mark(), std::string( key ) ); + } + return r; +} + static inline void flavorAndSide( const YAML::Node& doc, const char* key, Branding::PanelFlavor& flavor, Branding::PanelSide& side ) { @@ -514,10 +526,11 @@ Branding::initSlideshowSettings( const YAML::Node& doc ) { QDir componentDir( componentDirectory() ); - if ( doc[ "slideshow" ].IsSequence() ) + auto slideshow = get( doc, "slideshow" ); + if ( slideshow.IsSequence() ) { QStringList slideShowPictures; - doc[ "slideshow" ] >> slideShowPictures; + slideshow >> slideShowPictures; for ( int i = 0; i < slideShowPictures.count(); ++i ) { QString pathString = slideShowPictures[ i ]; @@ -535,9 +548,9 @@ Branding::initSlideshowSettings( const YAML::Node& doc ) m_slideshowAPI = -1; } #ifdef WITH_QML - else if ( doc[ "slideshow" ].IsScalar() ) + else if ( slideshow.IsScalar() ) { - QString slideshowPath = QString::fromStdString( doc[ "slideshow" ].as< std::string >() ); + QString slideshowPath = QString::fromStdString( slideshow.as< std::string >() ); QFileInfo slideshowFi( componentDir.absoluteFilePath( slideshowPath ) ); if ( !slideshowFi.exists() || !slideshowFi.fileName().toLower().endsWith( ".qml" ) ) bail( m_descriptorPath, @@ -546,7 +559,9 @@ Branding::initSlideshowSettings( const YAML::Node& doc ) m_slideshowPath = slideshowFi.absoluteFilePath(); // API choice is relevant for QML slideshow - int api = doc[ "slideshowAPI" ].IsScalar() ? doc[ "slideshowAPI" ].as< int >() : -1; + // TODO:3.3: use get(), make slideshowAPI required + int api + = ( doc[ "slideshowAPI" ] && doc[ "slideshowAPI" ].IsScalar() ) ? doc[ "slideshowAPI" ].as< int >() : -1; if ( ( api < 1 ) || ( api > 2 ) ) { cWarning() << "Invalid or missing *slideshowAPI* in branding file."; @@ -555,7 +570,7 @@ Branding::initSlideshowSettings( const YAML::Node& doc ) m_slideshowAPI = api; } #else - else if ( doc[ "slideshow" ].IsScalar() ) + else if ( slideshow.IsScalar() ) { cWarning() << "Invalid *slideshow* setting, must be list of images."; } From cfb0bebe0edcaa4acbf51f83e2b969c9392e5566 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 11 Jul 2020 16:27:27 +0200 Subject: [PATCH 218/335] Changes: pre-release housekeeping --- CHANGES | 4 +++- CMakeLists.txt | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 594fd844c..12b7c36e1 100644 --- a/CHANGES +++ b/CHANGES @@ -3,7 +3,7 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. -# 3.2.27 (unreleased) # +# 3.2.27 (2020-07-11) # This release contains contributions from (alphabetically by first name): - Gaël PORTAY @@ -18,6 +18,8 @@ This release contains contributions from (alphabetically by first name): ## Modules ## - The Manjaro package manager *pamac* has been added to those supported by the *packages* module. + - The *netinstall* module has had some minor UI tweaks. + - Partitioning now tries harder to avoid floppy drives. # 3.2.26.1 (2020-06-23) # diff --git a/CMakeLists.txt b/CMakeLists.txt index b653f0996..7e049ca97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,7 @@ # TODO:3.3: Require CMake 3.12 cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.26.1 + VERSION 3.2.27 LANGUAGES C CXX ) set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development From 97bdb9b4f7014fafa4a7a9b171c68c9aff49614a Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sat, 11 Jul 2020 16:29:35 +0200 Subject: [PATCH 219/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_az.ts | 58 +++++++++++++++--------------- lang/calamares_az_AZ.ts | 58 +++++++++++++++--------------- lang/calamares_bn.ts | 2 +- lang/calamares_da.ts | 10 +++--- lang/calamares_de.ts | 14 ++++---- lang/calamares_fi_FI.ts | 22 +++++++----- lang/calamares_lt.ts | 12 +++---- lang/calamares_pt_BR.ts | 79 ++++++++++++++++++++++------------------- lang/calamares_sv.ts | 4 +-- 9 files changed, 136 insertions(+), 123 deletions(-) diff --git a/lang/calamares_az.ts b/lang/calamares_az.ts index c4ab24305..bfc079749 100644 --- a/lang/calamares_az.ts +++ b/lang/calamares_az.ts @@ -24,7 +24,7 @@ Master Boot Record of %1 - %1 Əsas ön yükləyici qurmaq + %1 əsas Ön yükləyici qurmaq @@ -132,7 +132,7 @@ Job failed (%1) - Tapşırığı yerinə yetirmək mümkün olmadı (%1) + (%1) Tapşırığı yerinə yetirmək mümkün olmadı @@ -199,7 +199,7 @@ Main script file %1 for python job %2 is not readable. - %1 Əsas əmrlər faylı %2 python işləri üçün açıla bilmir. + %1 əsas əmrlər faylı %2 python işləri üçün açıla bilmir. @@ -311,7 +311,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 quraşdırılmadı. Calamares konfiqurasiya edilmiş modulların hamısını yükləyə bilmədi. Bu Calamares'i sizin distribütör tərəfindən necə istifadə edilməsindən asılı olan bir problemdir. + %1 quraşdırılmadı. Calamares konfiqurasiya edilmiş modulların hamısını yükləyə bilmədi. Bu Calamares'i, sizin distribütör tərəfindən necə istifadə edilməsindən asılı olan bir problemdir. @@ -433,22 +433,22 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Unknown exception type - Naməlum istisna halı + Naməlum istisna hal unparseable Python error - görünməmiş python xətası + görünməmiş Python xətası unparseable Python traceback - görünməmiş python izi + görünməmiş Python izi Unfetchable Python error. - Oxunmayan python xətası. + Oxunmayan Python xətası.
@@ -530,7 +530,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - <strong>Əli ilə bölmək</strong><br/>Siz disk sahəsini özünüz bölə və ölçülərini təyin edə bilərsiniz. GPT disk bölmələri cədvəli və <strong>fat32 512Mb /boot bölməsi UEFI sistemi üçün vacibdir.</strong>ya da mövcud bir bölmə varsa onu istifadə edin, və ya başqa birini yaradın. + <strong>Əl ilə bölmək</strong><br/>Siz disk sahəsini özünüz bölə və ölçülərini təyin edə bilərsiniz. GPT disk bölmələri cədvəli və <strong>fat32 512Mb /boot bölməsi UEFI sistemi üçün vacibdir</strong>, ya da mövcud bir bölmə varsa onu istifadə edin, və ya başqa birini yaradın. @@ -583,7 +583,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - <strong>Diski təmizləmək</strong><br/> <font color="red">Silmək</font> hal-hazırda seçilmiş diskdəki bütün verilənləri siləcəkdir. + <strong>Diski təmizləmək</strong><br/> <font color="red">Silmək</font>seçimi hal-hazırda, seçilmiş diskdəki bütün verilənləri siləcəkdir. @@ -694,7 +694,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - Əmr quraşdırı mühitində icra olunur və kök qovluğa yolu bilinməlidir, lakin rootMountPoint aşkar edilmədi. + Əmr, quraşdırı mühitində icra olunur və kök qovluğa yolu bilinməlidir, lakin rootMountPoint - KökQoşulmaNöqtəsi - aşkar edilmədi. @@ -772,7 +772,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. This program will ask you some questions and set up %2 on your computer. - Bu proqram sizə bəi suallar verəcək və %2 sizin komputerinizə qurmağa kömək edəcək. + Bu proqram sizə bəzi suallar verəcək və %2 əməliyyat sistemini sizin komputerinizə qurmağa kömək edəcək. @@ -914,7 +914,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Creating a new partition table will delete all existing data on the disk. - Bölmələr Cədvəli yaratmaq bütün diskdə olan məlumatların hamısını siləcək. + Bölmələr Cədvəli yaratmaq, bütün diskdə olan məlumatların hamısını siləcək. @@ -1203,7 +1203,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Form - Forma + Format @@ -1223,7 +1223,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Please enter the same passphrase in both boxes. - Lütfən hər iki sahəyə eyni şifrəni daxil edin. + Lütfən, hər iki sahəyə eyni şifrəni daxil edin. @@ -1279,17 +1279,17 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - <h1>Hər şey hazırdır.</h1><br/>%1 sizin kopyuterə qurulacaqdır.<br/>Siz indi yeni sisteminizi başlada bilərsiniz. + <h1>Hər şey hazırdır.</h1><br/>%1 kompyuterinizə qurulub.<br/>Siz indi yeni sisteminizi başlada bilərsiniz. <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 setup program.</p></body></html> - <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcı proqramı bağladığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> + <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcı proqramı bağlatdığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> <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>Hər şey hazırdır.</h1><br/>%1 sizin kompyuterinizə quraşdırıldı.<br/>Siz yenidən başladaraq yeni sisteminizə daxil ola və ya %2 Canlı mühitini istifadə etməyə davam edə bilərsiniz. + <h1>Hər şey hazırdır.</h1><br/>%1 kompyuterinizə quraşdırıldı.<br/>Siz yenidən başladaraq yeni sisteminizə daxil ola və ya %2 Canlı mühitini istifadə etməyə davam edə bilərsiniz. @@ -1299,12 +1299,12 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. + <h1>Quraşdırılma alınmadı</h1><br/>%1 kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. + <h1>Quraşdırılma alınmadı</h1><br/>%1 kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. @@ -1332,7 +1332,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. The installation of %1 is complete. - %1in quraşdırılması başa çatdı. + %1-n quraşdırılması başa çatdı. @@ -1340,7 +1340,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Format partition %1 (file system: %2, size: %3 MiB) on %4. - %4-də %1 bölməsini format etmək (fayl sistemi: %2, ölçüsü: %3 MB). + %4 üzərində %1 bölməsini format etmək (fayl sistemi: %2, ölçüsü: %3 MB). @@ -1368,7 +1368,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. There is not enough drive space. At least %1 GiB is required. - Kifayət qədər disk sahəsi yoxdur. əƏn azı %1 QB tələb olunur. + Kifayət qədər disk sahəsi yoxdur. Ən azı %1 QB tələb olunur. @@ -1403,7 +1403,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. is running the installer as an administrator (root) - quraşdırıcı adminstrator (root) imtiyazları ilə başladılması + quraşdırıcını adminstrator (root) imtiyazları ilə başladılması @@ -1428,7 +1428,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. The screen is too small to display the installer. - Bu quarşdırıcını göstəmək üçün ekran çox kiçikdir. + Bu quarşdırıcını göstərmək üçün ekran çox kiçikdir. @@ -1680,7 +1680,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Zone: - Zona: + Saat qurşağı: @@ -3845,7 +3845,7 @@ Output: Layouts - Qatları + Qatlar @@ -3866,7 +3866,7 @@ Output: Test your keyboard - klaviaturanızı yoxlayın + Klaviaturanızı yoxlayın @@ -3879,7 +3879,7 @@ Output: Numbers and dates locale set to %1 - Yerli saylvə tarix formatlarını %1 qurmaq + Yerli say və tarix formatlarını %1 qurmaq diff --git a/lang/calamares_az_AZ.ts b/lang/calamares_az_AZ.ts index f329495fc..3368ce761 100644 --- a/lang/calamares_az_AZ.ts +++ b/lang/calamares_az_AZ.ts @@ -24,7 +24,7 @@ Master Boot Record of %1 - %1 Əsas ön yükləyici qurmaq + %1 əsas Ön yükləyici qurmaq @@ -132,7 +132,7 @@ Job failed (%1) - Tapşırığı yerinə yetirmək mümkün olmadı (%1) + (%1) Tapşırığı yerinə yetirmək mümkün olmadı @@ -199,7 +199,7 @@ Main script file %1 for python job %2 is not readable. - %1 Əsas əmrlər faylı %2 python işləri üçün açıla bilmir. + %1 əsas əmrlər faylı %2 python işləri üçün açıla bilmir. @@ -311,7 +311,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 quraşdırılmadı. Calamares konfiqurasiya edilmiş modulların hamısını yükləyə bilmədi. Bu Calamares'i sizin distribütör tərəfindən necə istifadə edilməsindən asılı olan bir problemdir. + %1 quraşdırılmadı. Calamares konfiqurasiya edilmiş modulların hamısını yükləyə bilmədi. Bu Calamares'i, sizin distribütör tərəfindən necə istifadə edilməsindən asılı olan bir problemdir. @@ -433,22 +433,22 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Unknown exception type - Naməlum istisna halı + Naməlum istisna hal unparseable Python error - görünməmiş python xətası + görünməmiş Python xətası unparseable Python traceback - görünməmiş python izi + görünməmiş Python izi Unfetchable Python error. - Oxunmayan python xətası. + Oxunmayan Python xətası. @@ -530,7 +530,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - <strong>Əli ilə bölmək</strong><br/>Siz disk sahəsini özünüz bölə və ölçülərini təyin edə bilərsiniz. GPT disk bölmələri cədvəli və <strong>fat32 512Mb /boot bölməsi UEFI sistemi üçün vacibdir.</strong>ya da mövcud bir bölmə varsa onu istifadə edin, və ya başqa birini yaradın. + <strong>Əl ilə bölmək</strong><br/>Siz disk sahəsini özünüz bölə və ölçülərini təyin edə bilərsiniz. GPT disk bölmələri cədvəli və <strong>fat32 512Mb /boot bölməsi UEFI sistemi üçün vacibdir</strong>, ya da mövcud bir bölmə varsa onu istifadə edin, və ya başqa birini yaradın. @@ -583,7 +583,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - <strong>Diski təmizləmək</strong><br/> <font color="red">Silmək</font> hal-hazırda seçilmiş diskdəki bütün verilənləri siləcəkdir. + <strong>Diski təmizləmək</strong><br/> <font color="red">Silmək</font>seçimi hal-hazırda, seçilmiş diskdəki bütün verilənləri siləcəkdir. @@ -694,7 +694,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - Əmr quraşdırı mühitində icra olunur və kök qovluğa yolu bilinməlidir, lakin rootMountPoint aşkar edilmədi. + Əmr, quraşdırı mühitində icra olunur və kök qovluğa yolu bilinməlidir, lakin rootMountPoint - KökQoşulmaNöqtəsi - aşkar edilmədi. @@ -772,7 +772,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. This program will ask you some questions and set up %2 on your computer. - Bu proqram sizə bəi suallar verəcək və %2 sizin komputerinizə qurmağa kömək edəcək. + Bu proqram sizə bəzi suallar verəcək və %2 əməliyyat sistemini sizin komputerinizə qurmağa kömək edəcək. @@ -914,7 +914,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Creating a new partition table will delete all existing data on the disk. - Bölmələr Cədvəli yaratmaq bütün diskdə olan məlumatların hamısını siləcək. + Bölmələr Cədvəli yaratmaq, bütün diskdə olan məlumatların hamısını siləcək. @@ -1203,7 +1203,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Form - Forma + Format @@ -1223,7 +1223,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Please enter the same passphrase in both boxes. - Lütfən hər iki sahəyə eyni şifrəni daxil edin. + Lütfən, hər iki sahəyə eyni şifrəni daxil edin. @@ -1279,17 +1279,17 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - <h1>Hər şey hazırdır.</h1><br/>%1 sizin kopyuterə qurulacaqdır.<br/>Siz indi yeni sisteminizi başlada bilərsiniz. + <h1>Hər şey hazırdır.</h1><br/>%1 kompyuterinizə qurulub.<br/>Siz indi yeni sisteminizi başlada bilərsiniz. <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 setup program.</p></body></html> - <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcı proqramı bağladığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> + <html><head/><body><p>Bu çərçivə işarələnərsə siz <span style="font-style:italic;">Hazır</span> düyməsinə vurduğunuz və ya quraşdırıcı proqramı bağlatdığınız zaman sisteminiz dərhal yenidən başladılacaqdır.</p></body></html> <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>Hər şey hazırdır.</h1><br/>%1 sizin kompyuterinizə quraşdırıldı.<br/>Siz yenidən başladaraq yeni sisteminizə daxil ola və ya %2 Canlı mühitini istifadə etməyə davam edə bilərsiniz. + <h1>Hər şey hazırdır.</h1><br/>%1 kompyuterinizə quraşdırıldı.<br/>Siz yenidən başladaraq yeni sisteminizə daxil ola və ya %2 Canlı mühitini istifadə etməyə davam edə bilərsiniz. @@ -1299,12 +1299,12 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. - <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. + <h1>Quraşdırılma alınmadı</h1><br/>%1 kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - <h1>Quraşdırılma alınmadı</h1><br/>%1 sizin kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. + <h1>Quraşdırılma alınmadı</h1><br/>%1 kompyuterinizə quraşdırıla bilmədi.<br/>Baş vermiş xəta: %2. @@ -1332,7 +1332,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. The installation of %1 is complete. - %1in quraşdırılması başa çatdı. + %1-n quraşdırılması başa çatdı. @@ -1340,7 +1340,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Format partition %1 (file system: %2, size: %3 MiB) on %4. - %4-də %1 bölməsini format etmək (fayl sistemi: %2, ölçüsü: %3 MB). + %4 üzərində %1 bölməsini format etmək (fayl sistemi: %2, ölçüsü: %3 MB). @@ -1368,7 +1368,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. There is not enough drive space. At least %1 GiB is required. - Kifayət qədər disk sahəsi yoxdur. əƏn azı %1 QB tələb olunur. + Kifayət qədər disk sahəsi yoxdur. Ən azı %1 QB tələb olunur. @@ -1403,7 +1403,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. is running the installer as an administrator (root) - quraşdırıcı adminstrator (root) imtiyazları ilə başladılması + quraşdırıcını adminstrator (root) imtiyazları ilə başladılması @@ -1428,7 +1428,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. The screen is too small to display the installer. - Bu quarşdırıcını göstəmək üçün ekran çox kiçikdir. + Bu quarşdırıcını göstərmək üçün ekran çox kiçikdir. @@ -1680,7 +1680,7 @@ Bu proqramdan çıxılacaq və bütün dəyişikliklər itiriləcəkdir. Zone: - Zona: + Saat qurşağı: @@ -3845,7 +3845,7 @@ Output: Layouts - Qatları + Qatlar @@ -3866,7 +3866,7 @@ Output: Test your keyboard - klaviaturanızı yoxlayın + Klaviaturanızı yoxlayın @@ -3879,7 +3879,7 @@ Output: Numbers and dates locale set to %1 - Yerli saylvə tarix formatlarını %1 qurmaq + Yerli say və tarix formatlarını %1 qurmaq diff --git a/lang/calamares_bn.ts b/lang/calamares_bn.ts index afb7f16ee..bd1c887c2 100644 --- a/lang/calamares_bn.ts +++ b/lang/calamares_bn.ts @@ -1763,7 +1763,7 @@ The installer will quit and all changes will be lost. Configuration Error - + কনফিগারেশন ত্রুটি diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 76995d9d6..e9b9ed1d0 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -1781,7 +1781,9 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Please select your preferred location on the map so the installer can suggest the locale and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. - + Vælg venligst din foretrukne placering på kortet, så installationsprogrammet kan foreslå lokalitets- + og tidszoneindstillinger til dig. Du kan finjustere de foreslåede indstillinger nedenfor. Søg på kortet ved ved at trække + for at flytte og brug knapperne +/- for at zoome ind/ud eller brug muserulning til at zoome. @@ -1932,7 +1934,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. - + For at kunne vælge en tidszone skal du sørge for at der er forbindelse til internettet. Genstart installationsprogrammet efter forbindelsen er blevet oprettet. Du kan finjustere sprog- og lokalitetsindstillinger nedenfor. @@ -3503,7 +3505,7 @@ setting Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. - + Sporing hjælper %1 med at se hvor ofte den installeres, hvilken hardware den installeres på og hvilke programmer der bruges. Klik på hjælpeikonet ved siden af hvert område for at se hvad der sendes. @@ -3518,7 +3520,7 @@ setting By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. - + Vælges dette sender du regelmæssigt information om din <b>bruger</b>installation, hardware, programmer og programmernes anvendelsesmønstre, til %1. diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index b59fe4f38..9098ab48c 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -777,17 +777,17 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. <h1>Welcome to the Calamares setup program for %1</h1> - + <h1>Willkommen bei Calamares, dem Installationsprogramm für %1</h1> <h1>Welcome to %1 setup</h1> - + <h1>Willkommen zur Installation von %1</h1> <h1>Welcome to the Calamares installer for %1</h1> - + <h1>Willkommen bei Calamares, dem Installationsprogramm für %1</h1> @@ -1927,7 +1927,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Timezone: %1 - + Zeitzone: %1 @@ -3866,17 +3866,17 @@ Liberating Software. System language set to %1 - + Systemsprache eingestellt auf %1 Numbers and dates locale set to %1 - + Zahlen- und Datumsformat eingestellt auf %1 Change - + Ändern diff --git a/lang/calamares_fi_FI.ts b/lang/calamares_fi_FI.ts index e3e1baf4a..ec44e74f7 100644 --- a/lang/calamares_fi_FI.ts +++ b/lang/calamares_fi_FI.ts @@ -1782,7 +1782,9 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.Please select your preferred location on the map so the installer can suggest the locale and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. - + Valitse sijainti kartalla, jotta asentaja voi ehdottaa paikalliset ja aikavyöhykeen asetukset. + Voit hienosäätää alla olevia asetuksia. Etsi kartalta vetämällä ja suurenna/pienennä +/- -painikkeella tai käytä +hiiren vieritystä skaalaamiseen. @@ -1933,7 +1935,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. - + Jos haluat valita aikavyöhykkeen niin varmista, että olet yhteydessä Internetiin. Käynnistä asennusohjelma uudelleen yhteyden muodostamisen jälkeen. Voit hienosäätää alla olevia kieli- ja kieliasetuksia. @@ -3493,7 +3495,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Napsauta tätä <span style=" font-weight:600;">jos et halua lähettää mitään</span> tietoja asennuksesta.</p></body></html> @@ -3503,22 +3505,22 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. - + Seuranta auttaa %1 näkemään, kuinka usein se asennetaan, mihin laitteistoon se on asennettu ja mihin sovelluksiin sitä käytetään. Jos haluat nähdä, mitä lähetetään, napsauta kunkin alueen vieressä olevaa ohjekuvaketta. By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. - + Valitsemalla tämän lähetät tietoja asennuksesta ja laitteistosta. Nämä tiedot lähetetään vain </b>kerran</b> asennuksen päätyttyä. By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. - + Valitsemalla tämän lähetät määräajoin tietoja <b>koneesi</b> asennuksesta, laitteistosta ja sovelluksista, %1:lle. By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. - + Valitsemalla tämän lähetät säännöllisesti tietoja <b>käyttäjän</b> asennuksesta, laitteistosta, sovelluksista ja sovellusten käyttötavoista %1:lle. @@ -3807,13 +3809,15 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä. <h1>Languages</h1> </br> The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. - + <h1>Kielet</h1> </br> + Järjestelmän sijaintiasetukset vaikuttaa joidenkin komentorivin käyttöliittymän elementtien kieliin ja merkistöihin. Nykyinen asetus on <strong>%1</strong>. <h1>Locales</h1> </br> The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. - + <h1>Sijainti</h1> </br> + Järjestelmän sijaintiasetukset vaikuttaa joidenkin komentorivin käyttöliittymän elementtien kieliin ja merkistöihin. Nykyinen asetus on <strong>%1</strong>. diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts index aa51d8669..261317f2c 100644 --- a/lang/calamares_lt.ts +++ b/lang/calamares_lt.ts @@ -781,22 +781,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. <h1>Welcome to the Calamares setup program for %1</h1> - + </h1>Jus sveikina Calamares sąrankos programa, skirta %1 sistemai.</h1> <h1>Welcome to %1 setup</h1> - + <h1>Jus sveikina %1 sąranka</h1> <h1>Welcome to the Calamares installer for %1</h1> - + <h1>Jus sveikina Calamares diegimo programa, skirta %1 sistemai</h1> <h1>Welcome to the %1 installer</h1> - + <h1>Jus sveikina %1 diegimo programa</h1> @@ -3870,7 +3870,7 @@ Išvestis: System language set to %1 - + Sistemos kalba nustatyta į %1 @@ -3880,7 +3880,7 @@ Išvestis: Change - + Keisti diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index ab98dc800..f65ecd0ee 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -230,7 +230,7 @@ Requirements checking for module <i>%1</i> is complete. - A verificação de requerimentos para o módulo <i>%1</i> está completa. + A verificação de requisitos para o módulo <i>%1</i> está completa. @@ -251,7 +251,7 @@ System-requirements checking is complete. - Verificação de requerimentos do sistema completa. + Verificação de requisitos do sistema completa. @@ -722,7 +722,7 @@ O instalador será fechado e todas as alterações serão perdidas. The numbers and dates locale will be set to %1. - O local dos números e datas será definido como %1. + A localidade dos números e datas será definida como %1. @@ -752,7 +752,7 @@ O instalador será fechado e todas as alterações serão perdidas. This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - Este computador não satisfaz os requerimentos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> + Este computador não satisfaz os requisitos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> @@ -762,7 +762,7 @@ O instalador será fechado e todas as alterações serão perdidas. This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - Este computador não satisfaz alguns dos requerimentos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funções podem ser desativadas. + Este computador não satisfaz alguns dos requisitos recomendados para configurar %1.<br/>A configuração pode continuar, mas alguns recursos podem ser desativados. @@ -777,22 +777,22 @@ O instalador será fechado e todas as alterações serão perdidas. <h1>Welcome to the Calamares setup program for %1</h1> - + <h1>Bem-vindo ao programa de configuração Calamares para %1</h1> <h1>Welcome to %1 setup</h1> - + <h1>Bem-vindo à configuração de %1</h1> <h1>Welcome to the Calamares installer for %1</h1> - + <h1>Bem-vindo ao instalador Calamares para %1</h1> <h1>Welcome to the %1 installer</h1> - + <h1>Bem-vindo ao instalador de %1</h1> @@ -1546,7 +1546,7 @@ O instalador será fechado e todas as alterações serão perdidas. 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>. - A configuração de localidade do sistema afeta a linguagem e o conjunto de caracteres para algumas linhas de comando e elementos da interface do usuário.<br/>A configuração atual é <strong>%1</strong>. + A configuração de localidade do sistema afeta o idioma e o conjunto de caracteres para algumas linhas de comando e elementos da interface do usuário.<br/>A configuração atual é <strong>%1</strong>. @@ -1696,7 +1696,7 @@ O instalador será fechado e todas as alterações serão perdidas. The numbers and dates locale will be set to %1. - O local dos números e datas será definido como %1. + A localidade dos números e datas será definida como %1. @@ -1781,7 +1781,9 @@ O instalador será fechado e todas as alterações serão perdidas.Please select your preferred location on the map so the installer can suggest the locale and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. - + Por favor selecione seu local preferido no mapa para que o instalador possa sugerir as configurações de localidade + e fuso horário para você. Você pode ajustar as configurações sugeridas abaixo. Procure no mapa arrastando + para mover e usando os botões +/- para aumentar/diminuir ou use a rolagem do mouse para dar zoom. @@ -1927,12 +1929,12 @@ O instalador será fechado e todas as alterações serão perdidas. Timezone: %1 - + Fuso horário: %1 To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. - + Para poder selecionar o fuso horário, tenha certeza que você está conectado à internet. Reinicie o instalador após conectar. Você pode ajustar as configurações de Idioma e Localidade abaixo. @@ -2837,7 +2839,8 @@ Saída: <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + <p>Este computador não satisfaz alguns dos requisitos recomendados para configurar %1.<br/> + A configuração pode continuar, mas alguns recursos podem ser desativados.</p> @@ -2948,13 +2951,15 @@ Saída: <p>This computer does not satisfy the minimum requirements for installing %1.<br/> Installation cannot continue.</p> - + <p>Este computador não satisfaz os requisitos mínimos para instalar %1.<br/> + A instalação não pode continuar.</p> <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + <p>Este computador não satisfaz alguns dos requisitos recomendados para configurar %1.<br/> + A configuração pode continuar, mas alguns recursos podem ser desativados.</p> @@ -3094,7 +3099,7 @@ Saída: This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> - Este computador não satisfaz os requerimentos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> + Este computador não satisfaz os requisitos mínimos para configurar %1.<br/>A configuração não pode continuar. <a href="#details">Detalhes...</a> @@ -3104,7 +3109,7 @@ Saída: This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. - Este computador não satisfaz alguns dos requerimentos recomendados para configurar %1.<br/>A configuração pode continuar, mas algumas funções podem ser desativadas. + Este computador não satisfaz alguns dos requisitos recomendados para configurar %1.<br/>A configuração pode continuar, mas alguns recursos podem ser desativados. @@ -3420,28 +3425,28 @@ Saída: KDE user feedback - + Feedback de usuário KDE Configuring KDE user feedback. - + Configurando feedback de usuário KDE. Error in KDE user feedback configuration. - + Erro na configuração do feedback de usuário KDE. Could not configure KDE user feedback correctly, script error %1. - + Não foi possível configurar o feedback de usuário KDE corretamente, erro de script %1. Could not configure KDE user feedback correctly, Calamares error %1. - + Não foi possível configurar o feedback de usuário KDE corretamente, erro do Calamares %1. @@ -3488,7 +3493,7 @@ Saída: <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Clique aqui para não enviar <span style=" font-weight:600;">nenhum tipo de informação</span> sobre sua instalação.</p></body></html> @@ -3498,22 +3503,22 @@ Saída: Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. - + O rastreamento ajuda %1 a ver quão frequentemente ele é instalado, em qual hardware ele é instalado e quais aplicações são usadas. Para ver o que será enviado, por favor, clique no ícone de ajuda próximo a cada área. By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. - + Ao selecionar isto você enviará informações sobre sua instalação e hardware. Essa informação será enviada apenas <b>uma vez</b> depois que a instalação terminar. By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. - + Ao selecionar isto você enviará periodicamente informações sobre a instalação da sua <b>máquina</b>, hardware e aplicações para %1. By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. - + Ao selecionar isto você enviará periodicamente informações sobre a instalação do seu <b>usuário</b>, hardware, aplicações e padrões de uso das aplicações para %1. @@ -3657,7 +3662,7 @@ Saída: Select application and system language - Selecione a aplicação e a linguagem do sistema + Selecione o idioma do sistema e das aplicações @@ -3722,7 +3727,7 @@ Saída: <h1>Welcome to the %1 installer.</h1> - <h1>Bem-vindo ao instalador %1 .</h1> + <h1>Bem-vindo ao instalador %1.</h1> @@ -3802,13 +3807,15 @@ Saída: <h1>Languages</h1> </br> The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. - + <h1>Idiomas</h1> </br> + A configuração de localidade do sistema afeta o idioma e o conjunto de caracteres para algumas linhas de comando e elementos da interface do usuário. A configuração atual é <strong>%1</strong>. <h1>Locales</h1> </br> The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. - + <h1>Localidades</h1> </br> + A configuração de localidade do sistema afeta o idioma e o conjunto de caracteres para algumas linhas de comando e elementos da interface do usuário. A configuração atual é <strong>%1</strong>. @@ -3866,17 +3873,17 @@ Saída: System language set to %1 - + Idioma do sistema definido como %1 Numbers and dates locale set to %1 - + A localidade de números e datas foi definida para %1 Change - + Modificar diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index 408f67634..7d51e3b82 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -1926,7 +1926,7 @@ Alla ändringar kommer att gå förlorade. Timezone: %1 - + Tidszon: %1 @@ -3875,7 +3875,7 @@ Utdata: Change - + Ändra From f5ada5e9ef26505cfd5375028da091974b01803e Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sat, 11 Jul 2020 16:29:35 +0200 Subject: [PATCH 220/335] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/calamares.desktop b/calamares.desktop index c385e3c91..78c943ddb 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -33,6 +33,10 @@ Name[bg]=Инсталирай системата Icon[bg]=calamares GenericName[bg]=Системен Инсталатор Comment[bg]=Calamares — Системен Инсталатор +Name[bn]=সিস্টেম ইনস্টল করুন +Icon[bn]=ক্যালামারেস +GenericName[bn]=সিস্টেম ইনস্টলার +Comment[bn]=ক্যালামারেস - সিস্টেম ইনস্টলার Name[ca]=Instal·la el sistema Icon[ca]=calamares GenericName[ca]=Instal·lador de sistema From 92a27a2c2d4afabb2fe8afabe10248e4c6c4db28 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sat, 11 Jul 2020 16:29:36 +0200 Subject: [PATCH 221/335] i18n: [python] Automatic merge of Transifex translations --- lang/python/bn/LC_MESSAGES/python.mo | Bin 380 -> 2333 bytes lang/python/bn/LC_MESSAGES/python.po | 29 ++++++++++++++++----------- lang/python/de/LC_MESSAGES/python.mo | Bin 8223 -> 8228 bytes lang/python/de/LC_MESSAGES/python.po | 8 ++++---- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/lang/python/bn/LC_MESSAGES/python.mo b/lang/python/bn/LC_MESSAGES/python.mo index b067dcf7187f1142e0012d7560c7ca481e0009bb..7faa09a2c0131e9cb69fb3bba3dd92224ad746b5 100644 GIT binary patch literal 2333 zcmb7ETW{P%7#*PHvOtlz2#Jd{=~FA}wRe*xo6SW^LJ|Tbjnbq%p=#D1Zwy|0WzRN= zR*M8eR0t3+jVdluRFOJS8d21TUL=(M10QuVH7RU4QS zQ1*TZOP#^WXTlloYqDEib9Wm88wVCfzFQE2H6o!IET(qNrJCsLJ z7*T0MJ3+e%k0P05K>(X(=y>irjd^t0vpJaz1J`S`BPP5spi|PXcgE?=;_?JMGaF8| z5GVJJ$u#qP@QIMNgBG(tqF$3VI6d9zo+i_t?|VUmwp-MNmG+H`WG-w6LSD33Bs|HB z!};*gma>Rbhr6E4#YH9~t%#3xRO0eU@x{DIE(jR{p$-Iex@0+MN(#lANe08R5-5$e z#!lDlbkAuc^-Q98J+P^(Q(E=J%HQgU5-vpHhujv%tYci{Q4HlZx-dTZ?)c0Uy*Raa zVfOrdVUf4ONEmZ*!*h&@b|W^H!Wu0soHrKvWl#DTZ!y7Zv}~0I4XbKcL$qYo`Ul>y z@GHE>Vqq*rEQoz3!l*_oR+Uxj7I%j#1J(dz{f=EJ4OU&twwc2!{1U>{t89RdI54U> zLxY2?jz8Bbm9g)y4wc-h&C2!4r6J3z^jl-+KwXwhL8Fak8B3fsYjlDK4d#3F%!&}L zxMrHGtE)vJg?KJsE81bx#I&&{S`(WBF0om*tT#($JuuG}=4R)n4r)>=S_KS^-~n=3 zZy{O1*M!;fnHLOWSXmTvF}l1oZB!5JB$dk}V=BPhqD?hgt$U&;vqtMdVZq0w`o?q^ zHRBo$T521QmWQc+96b}zzEN5_J6yXUwm(5UnkF|@Ot@`fv!!UVON7DEM!NlFnq0?I z0?W?)@?0ODuPOiAFzKc@wulml$a`tBkK0|P1G2G4Feu+jlO0@as0*-M(N_EFUT${a zNt6MeZmPtt;Yi=7$sO%~RNwI)2&af-ijq|pBrgs`exYSJ>A&`J=YoC()#|X{*v~N z8fZEBy-2D8_#WrYJEl|^RPf0@!0TTck;he2sYU&tA<5KGlgiKj;Ss=rI)%`q?}y^d b-(Tpvj|2UY&|<$;4Um)gUxu%v-u1r#1vW$E delta 69 zcmbO$^oPmfo)F7a1|VPrVi_P-0b*t#)&XJ=umEBwprj>`2C0F8$=8_DCNE>Y2LKuE B2!8+o diff --git a/lang/python/bn/LC_MESSAGES/python.po b/lang/python/bn/LC_MESSAGES/python.po index 529799daf..ee7b2e059 100644 --- a/lang/python/bn/LC_MESSAGES/python.po +++ b/lang/python/bn/LC_MESSAGES/python.po @@ -3,6 +3,9 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +# Translators: +# 508a8b0ef95404aa3dc5178f0ccada5e_017b8a4 , 2020 +# #, fuzzy msgid "" msgstr "" @@ -10,6 +13,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Last-Translator: 508a8b0ef95404aa3dc5178f0ccada5e_017b8a4 , 2020\n" "Language-Team: Bengali (https://www.transifex.com/calamares/teams/20061/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,11 +23,11 @@ msgstr "" #: src/modules/grubcfg/main.py:37 msgid "Configure GRUB." -msgstr "" +msgstr "কনফিগার করুন জিআরইউবি।" #: src/modules/mount/main.py:38 msgid "Mounting partitions." -msgstr "" +msgstr "মাউন্ট করছে পার্টিশনগুলো।" #: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 #: src/modules/initcpiocfg/main.py:209 @@ -35,28 +39,29 @@ msgstr "" #: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 #: src/modules/networkcfg/main.py:48 msgid "Configuration Error" -msgstr "" +msgstr "কনফিগারেশন ত্রুটি" #: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 #: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 #: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 #: src/modules/fstab/main.py:333 msgid "No partitions are defined for
{!s}
to use." -msgstr "" +msgstr "কোন পার্টিশন নির্দিষ্ট করা হয়নি
{!এস}
ব্যবহার করার জন্য।" #: src/modules/services-systemd/main.py:35 msgid "Configure systemd services" -msgstr "" +msgstr "কনফিগার করুন সিস্টেমডি সেবাগুলি" #: src/modules/services-systemd/main.py:68 #: src/modules/services-openrc/main.py:102 msgid "Cannot modify service" -msgstr "" +msgstr "সেবা পরিবর্তন করতে পারে না" #: src/modules/services-systemd/main.py:69 msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"সিস্টেমসিটিএল {এআরজি!এস}সিএইচরুট ফেরত ত্রুটি কোড দে{NUM! গুলি}।" #: src/modules/services-systemd/main.py:72 #: src/modules/services-systemd/main.py:76 @@ -83,27 +88,27 @@ msgstr "" #: src/modules/umount/main.py:40 msgid "Unmount file systems." -msgstr "" +msgstr "আনমাউন্ট ফাইল সিস্টেমগুলি করুন।" #: src/modules/unpackfs/main.py:44 msgid "Filling up filesystems." -msgstr "" +msgstr "ফাইলসিস্টেমগুলিপূরণ করছে।" #: src/modules/unpackfs/main.py:257 msgid "rsync failed with error code {}." -msgstr "" +msgstr "ত্রুটি কোড সহ আরসিঙ্ক ব্যর্থ হয়েছে {}।" #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "চিত্র আনপ্যাক করছে {} / {}, ফাইল {} / {}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" -msgstr "" +msgstr "আনপ্যাক করা শুরু করছে {}" #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "চিত্র আনপ্যাক করতে ব্যর্থ হয়েছে \"{}\"" #: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" diff --git a/lang/python/de/LC_MESSAGES/python.mo b/lang/python/de/LC_MESSAGES/python.mo index 64f71d6aaa9ce142ed1d17db48427716ecd97787..beb4ce7b3d137615d5b5238fb0ea631315b6e1ab 100644 GIT binary patch delta 653 zcmYk(zb`{k6u|LALz{ z*u)k*zzMvb^_t$2TOG)Yjz-?85-@B5L7B7{*7OMR$hZ?4+}d zx?l(Oz#BC16SW{G4K;}mTQP)fXrU(F#$~)iE!f9(%wYf{xKr>QHJ_jB(fP3iodlgL z)C5K|@2V46jxn4;8~u2T`nI|3W=XfR$+WF#G-;S|W6DmY(uRLY39gv&-juzReX4Xg coVGC$i&?9t8BNEn?1yKrwCvx&ZlL+)7xN}pkN^Mx delta 648 zcmXZZJuCxp7{~F)OLUTYt!lj-2_i~Rl8S~aDkK(k6GNq^Ep-ygdNFpe(3LL4NOX{t z!OJcYiP<3WGFWZm``1e@_xbPGKA7 zFobvL!?HS&F!tN-;w1UT&QdSZMV>|-O&r2=9L6^cpvNWF|Aj@D2+v9esUgSc#Y@{q zY$AVQ4>}q|{OCsxiF0a33mfqWTkr~1p%<(|r@OdcLz5hETOxfd&bXjDenC~}*WT#m zZK^RpG8~z~0bD{giGA$F0`}tvQcD^=#Rdm(oNSZ!>QKSKUk7e)c^nh diff --git a/lang/python/de/LC_MESSAGES/python.po b/lang/python/de/LC_MESSAGES/python.po index 25e2e98d3..107847889 100644 --- a/lang/python/de/LC_MESSAGES/python.po +++ b/lang/python/de/LC_MESSAGES/python.po @@ -4,9 +4,9 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Adriaan de Groot , 2019 # Christian Spaan, 2020 # Andreas Eitel , 2020 +# Adriaan de Groot , 2020 # #, fuzzy msgid "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-18 15:42+0200\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Andreas Eitel , 2020\n" +"Last-Translator: Adriaan de Groot , 2020\n" "Language-Team: German (https://www.transifex.com/calamares/teams/20061/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -105,7 +105,7 @@ msgstr "rsync fehlgeschlagen mit Fehlercode {}." #: src/modules/unpackfs/main.py:302 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "Bild Entpacken {}/{}, Datei {}/{}" +msgstr "Abbilddatei Entpacken {}/{}, Datei {}/{}" #: src/modules/unpackfs/main.py:317 msgid "Starting to unpack {}" @@ -113,7 +113,7 @@ msgstr "Beginn des Entpackens {}" #: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 msgid "Failed to unpack image \"{}\"" -msgstr "Entpacken des Image \"{}\" fehlgeschlagen" +msgstr "Entpacken der Abbilddatei \"{}\" fehlgeschlagen" #: src/modules/unpackfs/main.py:415 msgid "No mount point for root partition" From 724b92ee603fd745a47e329c2c5da5752e515507 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 11 Jul 2020 16:35:54 +0200 Subject: [PATCH 222/335] [partition] Drop documentation of vanished parameter --- src/modules/partition/core/DeviceList.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/modules/partition/core/DeviceList.h b/src/modules/partition/core/DeviceList.h index 51c71feeb..306d90739 100644 --- a/src/modules/partition/core/DeviceList.h +++ b/src/modules/partition/core/DeviceList.h @@ -40,9 +40,6 @@ enum class DeviceType * the system, filtering out those that do not meet a criterium. * If set to WritableOnly, only devices which can be overwritten * safely are returned (e.g. RO-media are ignored, as are mounted partitions). - * @param minimumSize Can be used to filter devices based on their - * size (in bytes). If non-negative, only devices with a size - * greater than @p minimumSize will be returned. * @return a list of Devices meeting this criterium. */ QList< Device* > getDevices( DeviceType which = DeviceType::All ); From 4e4ffde604773975c8fd10d957b1f8f77603b190 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 11 Jul 2020 17:00:36 +0200 Subject: [PATCH 223/335] Changes: post-release housekeeping --- CHANGES | 12 ++++++++++++ CMakeLists.txt | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 12b7c36e1..d7510976a 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,18 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. +# 3.2.28 (unreleased) # + +This release contains contributions from (alphabetically by first name): + - No external contributors yet + +## Core ## + - No core changes yet + +## Modules ## + - No module changes yet + + # 3.2.27 (2020-07-11) # This release contains contributions from (alphabetically by first name): diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e049ca97..fb3ccf699 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,10 +46,10 @@ # TODO:3.3: Require CMake 3.12 cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.27 + VERSION 3.2.28 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From e1c85340e40a09756a0d60d79179ea1f26e4a967 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 20 Jul 2020 12:05:55 +0200 Subject: [PATCH 224/335] i18n: [calamares] Automatic merge of Transifex translations FIXES #1455 --- lang/calamares_cs_CZ.ts | 8 ++++---- lang/calamares_pt_BR.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/calamares_cs_CZ.ts b/lang/calamares_cs_CZ.ts index e38f1ff69..e1a62eb13 100644 --- a/lang/calamares_cs_CZ.ts +++ b/lang/calamares_cs_CZ.ts @@ -781,7 +781,7 @@ Instalační program bude ukončen a všechny změny ztraceny. <h1>Welcome to the Calamares setup program for %1</h1> - + <h1>Vítejte v Calamares instalačním programu pro %1.</h1> @@ -796,7 +796,7 @@ Instalační program bude ukončen a všechny změny ztraceny. <h1>Welcome to the %1 installer</h1> - + <h1>Vítejte v instalátoru %1.</h1>
@@ -3424,7 +3424,7 @@ Výstup: KDE user feedback - + Zpětná vazba uživatele KDE @@ -3445,7 +3445,7 @@ Výstup: Could not configure KDE user feedback correctly, Calamares error %1. - + Nepodařilo se správně nastavit zpětnou vazbu KDE uživatele, chyba Calamares %1. diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index f65ecd0ee..27d8803a3 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -3549,7 +3549,7 @@ Saída: Your username must start with a lowercase letter or underscore. - Seu nome de usuário deve começar com uma letra maiúscula ou com um sublinhado. + Seu nome de usuário deve começar com uma letra minúscula ou com um sublinhado. From 0d5db2dd062c13c542c02a0a5750e8e8393c6e84 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 12:36:58 +0200 Subject: [PATCH 225/335] [localeq] Config-handling is a total bodge-job, disable --- src/modules/localeq/LocaleQmlViewStep.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index fd5e72734..4354cb7bd 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -65,7 +65,7 @@ LocaleQmlViewStep::fetchGeoIpTimezone() } } - m_config->setLocaleInfo(m_startingTimezone.first, m_startingTimezone.second, m_localeGenPath); + // m_config->setLocaleInfo(m_startingTimezone.first, m_startingTimezone.second, m_localeGenPath); } Calamares::RequirementsList LocaleQmlViewStep::checkRequirements() @@ -138,6 +138,7 @@ void LocaleQmlViewStep::onActivate() void LocaleQmlViewStep::onLeave() { +#if 0 if ( true ) { m_jobs = m_config->createJobs(); @@ -157,6 +158,7 @@ void LocaleQmlViewStep::onLeave() m_jobs.clear(); Calamares::JobQueue::instance()->globalStorage()->remove( "localeConf" ); } +#endif } void LocaleQmlViewStep::setConfigurationMap(const QVariantMap& configurationMap) From 8119c7e72a861df5d85394cd602963d86e059cc9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 12:37:27 +0200 Subject: [PATCH 226/335] [locale] Reset Config object The Config object wasn't being used at all in the locale module; reset it to empty and start using it in locale, so that configuration functionality can be added to it as-needed, and with the necessary refactoring built-in. --- src/modules/locale/Config.cpp | 306 +------------------------- src/modules/locale/Config.h | 56 +---- src/modules/locale/LocaleViewStep.cpp | 4 +- src/modules/locale/LocaleViewStep.h | 10 +- 4 files changed, 17 insertions(+), 359 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index cde0a5e09..ae8595734 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020, Adriaan de Groot - * Copyright 2020, Camilo Higuita + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,313 +20,16 @@ #include "Config.h" -#include "LCLocaleDialog.h" -#include "SetTimezoneJob.h" -#include "timezonewidget/timezonewidget.h" - -#include "GlobalStorage.h" -#include "JobQueue.h" -#include "Settings.h" - -#include "locale/Label.h" -#include "locale/TimeZone.h" -#include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" -#include "utils/Retranslator.h" - -#include -#include -#include Config::Config( QObject* parent ) : QObject( parent ) - , m_regionList( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) - , m_regionModel( new CalamaresUtils::Locale::CStringListModel( m_regionList ) ) - , m_zonesModel( new CalamaresUtils::Locale::CStringListModel() ) - , m_blockTzWidgetSet( false ) { - connect( m_regionModel, &CalamaresUtils::Locale::CStringListModel::currentIndexChanged, [&]() { - m_zonesModel->setList( static_cast< const CalamaresUtils::Locale::TZRegion* >( - m_regionModel->item( m_regionModel->currentIndex() ) ) - ->zones() ); - updateLocaleLabels(); - } ); - - connect( - m_zonesModel, &CalamaresUtils::Locale::CStringListModel::currentIndexChanged, [&]() { updateLocaleLabels(); } ); } -Config::~Config() -{ - qDeleteAll( m_regionList ); -} - -CalamaresUtils::Locale::CStringListModel* -Config::zonesModel() const -{ - return m_zonesModel; -} - -CalamaresUtils::Locale::CStringListModel* -Config::regionModel() const -{ - return m_regionModel; -} +Config::~Config() {} void -Config::setLocaleInfo( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) -{ - using namespace CalamaresUtils::Locale; - - cDebug() << "REGION MODEL SIZE" << initialRegion << initialZone; - auto* region = m_regionList.find< TZRegion >( initialRegion ); - if ( region && region->zones().find< TZZone >( initialZone ) ) - { - m_regionModel->setCurrentIndex( m_regionModel->indexOf( initialRegion ) ); - m_zonesModel->setList( region->zones() ); - m_zonesModel->setCurrentIndex( m_zonesModel->indexOf( initialZone ) ); - } - else - { - m_regionModel->setCurrentIndex( m_regionModel->indexOf( "America" ) ); - m_zonesModel->setList( - static_cast< const TZRegion* >( m_regionModel->item( m_regionModel->currentIndex() ) )->zones() ); - m_zonesModel->setCurrentIndex( m_zonesModel->indexOf( "New_York" ) ); - } - - // Some distros come with a meaningfully commented and easy to parse locale.gen, - // and others ship a separate file /usr/share/i18n/SUPPORTED with a clean list of - // supported locales. We first try that one, and if it doesn't exist, we fall back - // to parsing the lines from locale.gen - m_localeGenLines.clear(); - QFile supported( "/usr/share/i18n/SUPPORTED" ); - QByteArray ba; - - if ( supported.exists() && supported.open( QIODevice::ReadOnly | QIODevice::Text ) ) - { - ba = supported.readAll(); - supported.close(); - - const auto lines = ba.split( '\n' ); - for ( const QByteArray& line : lines ) - { - m_localeGenLines.append( QString::fromLatin1( line.simplified() ) ); - } - } - else - { - QFile localeGen( localeGenPath ); - if ( localeGen.open( QIODevice::ReadOnly | QIODevice::Text ) ) - { - ba = localeGen.readAll(); - localeGen.close(); - } - else - { - cWarning() << "Cannot open file" << localeGenPath - << ". Assuming the supported languages are already built into " - "the locale archive."; - QProcess localeA; - localeA.start( "locale", QStringList() << "-a" ); - localeA.waitForFinished(); - ba = localeA.readAllStandardOutput(); - } - const auto lines = ba.split( '\n' ); - for ( const QByteArray& line : lines ) - { - if ( line.startsWith( "## " ) || line.startsWith( "# " ) || line.simplified() == "#" ) - { - continue; - } - - QString lineString = QString::fromLatin1( line.simplified() ); - if ( lineString.startsWith( "#" ) ) - { - lineString.remove( '#' ); - } - lineString = lineString.simplified(); - - if ( lineString.isEmpty() ) - { - continue; - } - - m_localeGenLines.append( lineString ); - } - } - - if ( m_localeGenLines.isEmpty() ) - { - cWarning() << "cannot acquire a list of available locales." - << "The locale and localecfg modules will be broken as long as this " - "system does not provide" - << "\n\t " - << "* a well-formed" << supported.fileName() << "\n\tOR" - << "* a well-formed" - << ( localeGenPath.isEmpty() ? QLatin1String( "/etc/locale.gen" ) : localeGenPath ) << "\n\tOR" - << "* a complete pre-compiled locale-gen database which allows complete locale -a output."; - return; // something went wrong and there's nothing we can do about it. - } - - // Assuming we have a list of supported locales, we usually only want UTF-8 ones - // because it's not 1995. - for ( auto it = m_localeGenLines.begin(); it != m_localeGenLines.end(); ) - { - if ( !it->contains( "UTF-8", Qt::CaseInsensitive ) && !it->contains( "utf8", Qt::CaseInsensitive ) ) - { - it = m_localeGenLines.erase( it ); - } - else - { - ++it; - } - } - - // We strip " UTF-8" from "en_US.UTF-8 UTF-8" because it's redundant redundant. - for ( auto it = m_localeGenLines.begin(); it != m_localeGenLines.end(); ++it ) - { - if ( it->endsWith( " UTF-8" ) ) - { - it->chop( 6 ); - } - *it = it->simplified(); - } - updateGlobalStorage(); - updateLocaleLabels(); -} - -void -Config::updateGlobalLocale() -{ - auto* gs = Calamares::JobQueue::instance()->globalStorage(); - const QString bcp47 = m_selectedLocaleConfiguration.toBcp47(); - gs->insert( "locale", bcp47 ); -} - -void -Config::updateGlobalStorage() -{ - auto* gs = Calamares::JobQueue::instance()->globalStorage(); - - const auto* location = currentLocation(); - bool locationChanged = ( location->region() != gs->value( "locationRegion" ) ) - || ( location->zone() != gs->value( "locationZone" ) ); -#ifdef DEBUG_TIMEZONES - if ( locationChanged ) - { - cDebug() << "Location changed" << gs->value( "locationRegion" ) << ',' << gs->value( "locationZone" ) << "to" - << location->region() << ',' << location->zone(); - } -#endif - gs->insert( "locationRegion", location->region() ); - gs->insert( "locationZone", location->zone() ); - - updateGlobalLocale(); - - // If we're in chroot mode (normal install mode), then we immediately set the - // timezone on the live system. When debugging timezones, don't bother. -#ifndef DEBUG_TIMEZONES - if ( locationChanged && Calamares::Settings::instance()->doChroot() ) - { - QProcess::execute( "timedatectl", // depends on systemd - { "set-timezone", location->region() + '/' + location->zone() } ); - } -#endif - - // Preserve those settings that have been made explicit. - auto newLocale = guessLocaleConfiguration(); - if ( !m_selectedLocaleConfiguration.isEmpty() && m_selectedLocaleConfiguration.explicit_lang ) - { - newLocale.setLanguage( m_selectedLocaleConfiguration.language() ); - } - if ( !m_selectedLocaleConfiguration.isEmpty() && m_selectedLocaleConfiguration.explicit_lc ) - { - newLocale.lc_numeric = m_selectedLocaleConfiguration.lc_numeric; - newLocale.lc_time = m_selectedLocaleConfiguration.lc_time; - newLocale.lc_monetary = m_selectedLocaleConfiguration.lc_monetary; - newLocale.lc_paper = m_selectedLocaleConfiguration.lc_paper; - newLocale.lc_name = m_selectedLocaleConfiguration.lc_name; - newLocale.lc_address = m_selectedLocaleConfiguration.lc_address; - newLocale.lc_telephone = m_selectedLocaleConfiguration.lc_telephone; - newLocale.lc_measurement = m_selectedLocaleConfiguration.lc_measurement; - newLocale.lc_identification = m_selectedLocaleConfiguration.lc_identification; - } - newLocale.explicit_lang = m_selectedLocaleConfiguration.explicit_lang; - newLocale.explicit_lc = m_selectedLocaleConfiguration.explicit_lc; - - m_selectedLocaleConfiguration = newLocale; - updateLocaleLabels(); -} - -void -Config::updateLocaleLabels() -{ - LocaleConfiguration lc - = m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration() : m_selectedLocaleConfiguration; - auto labels = prettyLocaleStatus( lc ); - emit prettyStatusChanged(); -} - - -std::pair< QString, QString > -Config::prettyLocaleStatus( const LocaleConfiguration& lc ) const -{ - using CalamaresUtils::Locale::Label; - - Label lang( lc.language(), Label::LabelFormat::AlwaysWithCountry ); - Label num( lc.lc_numeric, Label::LabelFormat::AlwaysWithCountry ); - - return std::make_pair< QString, QString >( - 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() ) ); -} - -Calamares::JobList -Config::createJobs() -{ - QList< Calamares::job_ptr > list; - const CalamaresUtils::Locale::TZZone* location = currentLocation(); - - Calamares::Job* j = new SetTimezoneJob( location->region(), location->zone() ); - list.append( Calamares::job_ptr( j ) ); - - return list; -} - -LocaleConfiguration -Config::guessLocaleConfiguration() const -{ - return LocaleConfiguration::fromLanguageAndLocation( - QLocale().name(), m_localeGenLines, currentLocation() ? currentLocation()->country() : "" ); -} - -QMap< QString, QString > -Config::localesMap() -{ - return m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration().toMap() - : m_selectedLocaleConfiguration.toMap(); -} - -QString -Config::prettyStatus() const -{ - QString status; - status += tr( "Set timezone to %1/%2.
" ) - .arg( m_regionModel->item( m_regionModel->currentIndex() )->tr() ) - .arg( m_zonesModel->item( m_zonesModel->currentIndex() )->tr() ); - - LocaleConfiguration lc - = m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration() : m_selectedLocaleConfiguration; - auto labels = prettyLocaleStatus( lc ); - status += labels.first + "
"; - status += labels.second + "
"; - - return status; -} - - -const CalamaresUtils::Locale::TZZone* -Config::currentLocation() const +Config::setConfigurationMap( const QVariantMap& ) { - return static_cast< const CalamaresUtils::Locale::TZZone* >( m_zonesModel->item( m_zonesModel->currentIndex() ) ); } diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index cfbed7bae..fcfc22a98 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020, Adriaan de Groot - * Copyright 2020, Camilo Higuita + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,66 +21,17 @@ #ifndef LOCALE_CONFIG_H #define LOCALE_CONFIG_H -#include "LocaleConfiguration.h" - -#include "Job.h" -#include "locale/TimeZone.h" - -#include #include -#include - class Config : public QObject { Q_OBJECT - Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* zonesModel READ zonesModel CONSTANT FINAL ) - Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* regionModel READ regionModel CONSTANT FINAL ) - Q_PROPERTY( QString prettyStatus READ prettyStatus NOTIFY prettyStatusChanged FINAL ) public: Config( QObject* parent = nullptr ); ~Config(); - CalamaresUtils::Locale::CStringListModel* regionModel() const; - CalamaresUtils::Locale::CStringListModel* zonesModel() const; - - void setLocaleInfo( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ); - - Calamares::JobList createJobs(); - QMap< QString, QString > localesMap(); - QString prettyStatus() const; - -private: - CalamaresUtils::Locale::CStringPairList m_regionList; - CalamaresUtils::Locale::CStringListModel* m_regionModel; - CalamaresUtils::Locale::CStringListModel* m_zonesModel; - - LocaleConfiguration m_selectedLocaleConfiguration; - - QStringList m_localeGenLines; - int m_currentRegion = -1; - - bool m_blockTzWidgetSet; - - LocaleConfiguration guessLocaleConfiguration() const; - - // For the given locale config, return two strings describing - // the settings for language and numbers. - std::pair< QString, QString > prettyLocaleStatus( const LocaleConfiguration& ) const; - - /** @brief Update the GS *locale* key with the selected system language. - * - * This uses whatever is set in m_selectedLocaleConfiguration as the language, - * and writes it to GS *locale* key (as a string, in BCP47 format). - */ - void updateGlobalLocale(); - void updateGlobalStorage(); - void updateLocaleLabels(); - - const CalamaresUtils::Locale::TZZone* currentLocation() const; -signals: - void prettyStatusChanged(); + void setConfigurationMap( const QVariantMap& ); }; diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 3a8c37673..880f42a7d 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -34,7 +34,6 @@ #include #include -#include CALAMARES_PLUGIN_FACTORY_DEFINITION( LocaleViewStepFactory, registerPlugin< LocaleViewStep >(); ) @@ -45,6 +44,7 @@ LocaleViewStep::LocaleViewStep( QObject* parent ) , m_actualWidget( nullptr ) , m_nextEnabled( false ) , m_geoip( nullptr ) + , m_config( std::make_unique< Config >() ) { QBoxLayout* mainLayout = new QHBoxLayout; m_widget->setLayout( mainLayout ); @@ -221,6 +221,8 @@ LocaleViewStep::setConfigurationMap( const QVariantMap& configurationMap ) cWarning() << "GeoIP Style" << style << "is not recognized."; } } + + m_config->setConfigurationMap( configurationMap ); } Calamares::RequirementsList diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index 841aba97f..4e6c3d262 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -20,16 +20,14 @@ #ifndef LOCALEVIEWSTEP_H #define LOCALEVIEWSTEP_H +#include "Config.h" + +#include "DllMacro.h" #include "geoip/Handler.h" #include "geoip/Interface.h" #include "utils/PluginFactory.h" #include "viewpages/ViewStep.h" -#include "DllMacro.h" - -#include -#include - #include class LocalePage; @@ -79,6 +77,8 @@ private: Calamares::JobList m_jobs; std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; + + std::unique_ptr< Config > m_config; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( LocaleViewStepFactory ) From b6b5c449968c72c76ba60819f1f66054f46739b8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 12:55:07 +0200 Subject: [PATCH 227/335] [locale] Load supported locales in Config --- src/modules/locale/Config.cpp | 126 +++++++++++++++++++++++++++++++++- src/modules/locale/Config.h | 4 ++ 2 files changed, 129 insertions(+), 1 deletion(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index ae8595734..d886f1eec 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -21,6 +21,124 @@ #include "Config.h" #include "utils/Logger.h" +#include "utils/Variant.h" + +#include +#include + +/** @brief Load supported locale keys + * + * If i18n/SUPPORTED exists, read the lines from that and return those + * as supported locales; otherwise, try the file at @p localeGenPath + * and get lines from that. Failing both, try the output of `locale -a`. + * + * This gives us a list of locale identifiers (e.g. en_US.UTF-8), which + * are not particularly human-readable. + * + * Only UTF-8 locales are returned (even if the system claims to support + * other, non-UTF-8, locales). + */ +static QStringList +loadLocales( const QString& localeGenPath ) +{ + QStringList localeGenLines; + + // Some distros come with a meaningfully commented and easy to parse locale.gen, + // and others ship a separate file /usr/share/i18n/SUPPORTED with a clean list of + // supported locales. We first try that one, and if it doesn't exist, we fall back + // to parsing the lines from locale.gen + localeGenLines.clear(); + QFile supported( "/usr/share/i18n/SUPPORTED" ); + QByteArray ba; + + if ( supported.exists() && supported.open( QIODevice::ReadOnly | QIODevice::Text ) ) + { + ba = supported.readAll(); + supported.close(); + + const auto lines = ba.split( '\n' ); + for ( const QByteArray& line : lines ) + { + localeGenLines.append( QString::fromLatin1( line.simplified() ) ); + } + } + else + { + QFile localeGen( localeGenPath ); + if ( localeGen.open( QIODevice::ReadOnly | QIODevice::Text ) ) + { + ba = localeGen.readAll(); + localeGen.close(); + } + else + { + cWarning() << "Cannot open file" << localeGenPath + << ". Assuming the supported languages are already built into " + "the locale archive."; + QProcess localeA; + localeA.start( "locale", QStringList() << "-a" ); + localeA.waitForFinished(); + ba = localeA.readAllStandardOutput(); + } + const auto lines = ba.split( '\n' ); + for ( const QByteArray& line : lines ) + { + if ( line.startsWith( "## " ) || line.startsWith( "# " ) || line.simplified() == "#" ) + { + continue; + } + + QString lineString = QString::fromLatin1( line.simplified() ); + if ( lineString.startsWith( "#" ) ) + { + lineString.remove( '#' ); + } + lineString = lineString.simplified(); + + if ( lineString.isEmpty() ) + { + continue; + } + + localeGenLines.append( lineString ); + } + } + + if ( localeGenLines.isEmpty() ) + { + cWarning() << "cannot acquire a list of available locales." + << "The locale and localecfg modules will be broken as long as this " + "system does not provide" + << "\n\t " + << "* a well-formed" << supported.fileName() << "\n\tOR" + << "* a well-formed" + << ( localeGenPath.isEmpty() ? QLatin1String( "/etc/locale.gen" ) : localeGenPath ) << "\n\tOR" + << "* a complete pre-compiled locale-gen database which allows complete locale -a output."; + return localeGenLines; // something went wrong and there's nothing we can do about it. + } + + // Assuming we have a list of supported locales, we usually only want UTF-8 ones + // because it's not 1995. + auto notUtf8 = []( const QString& s ) { + return !s.contains( "UTF-8", Qt::CaseInsensitive ) && !s.contains( "utf8", Qt::CaseInsensitive ); + }; + auto it = std::remove_if( localeGenLines.begin(), localeGenLines.end(), notUtf8 ); + localeGenLines.erase( it, localeGenLines.end() ); + + // We strip " UTF-8" from "en_US.UTF-8 UTF-8" because it's redundant redundant. + // Also simplify whitespace. + auto unredundant = []( QString& s ) { + if ( s.endsWith( " UTF-8" ) ) + { + s.chop( 6 ); + } + s = s.simplified(); + }; + std::for_each( localeGenLines.begin(), localeGenLines.end(), unredundant ); + + return localeGenLines; +} + Config::Config( QObject* parent ) : QObject( parent ) @@ -30,6 +148,12 @@ Config::Config( QObject* parent ) Config::~Config() {} void -Config::setConfigurationMap( const QVariantMap& ) +Config::setConfigurationMap( const QVariantMap& configurationMap ) { + QString localeGenPath = CalamaresUtils::getString( configurationMap, "localeGenPath" ); + if ( localeGenPath.isEmpty() ) + { + localeGenPath = QStringLiteral( "/etc/locale.gen" ); + } + m_localeGenLines = loadLocales( localeGenPath ); } diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index fcfc22a98..53e4d5561 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -32,6 +32,10 @@ public: ~Config(); void setConfigurationMap( const QVariantMap& ); + +private: + /// A list of supported locale identifiers (e.g. "en_US.UTF-8") + QStringList m_localeGenLines; }; From 338635146f792f448ab59448fc72d01a078634b5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 12:58:35 +0200 Subject: [PATCH 228/335] [locale] Hand the Config object also to the page --- src/modules/locale/LocalePage.cpp | 5 +++-- src/modules/locale/LocalePage.h | 7 ++++++- src/modules/locale/LocaleViewStep.cpp | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 53d97ea02..faeae7edc 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -19,6 +19,7 @@ #include "LocalePage.h" +#include "Config.h" #include "SetTimezoneJob.h" #include "timezonewidget/timezonewidget.h" @@ -26,7 +27,6 @@ #include "JobQueue.h" #include "LCLocaleDialog.h" #include "Settings.h" - #include "locale/Label.h" #include "locale/TimeZone.h" #include "utils/CalamaresUtilsGui.h" @@ -40,8 +40,9 @@ #include #include -LocalePage::LocalePage( QWidget* parent ) +LocalePage::LocalePage( Config* config, QWidget* parent ) : QWidget( parent ) + , m_config( config ) , m_regionList( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( m_regionList ) ) , m_blockTzWidgetSet( false ) diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index f31d81fb6..1e2052223 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -32,13 +32,15 @@ class QComboBox; class QLabel; class QPushButton; + +class Config; class TimeZoneWidget; class LocalePage : public QWidget { Q_OBJECT public: - explicit LocalePage( QWidget* parent = nullptr ); + explicit LocalePage( class Config* config, QWidget* parent = nullptr ); virtual ~LocalePage(); void init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ); @@ -54,6 +56,9 @@ public: private: LocaleConfiguration guessLocaleConfiguration() const; + /// @brief Non-owning pointer to the ViewStep's config + Config* m_config; + // For the given locale config, return two strings describing // the settings for language and numbers. std::pair< QString, QString > prettyLocaleStatus( const LocaleConfiguration& ) const; diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 880f42a7d..173532bf8 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -68,7 +68,7 @@ LocaleViewStep::setUpPage() { if ( !m_actualWidget ) { - m_actualWidget = new LocalePage(); + m_actualWidget = new LocalePage( m_config.get() ); } m_actualWidget->init( m_startingTimezone.first, m_startingTimezone.second, m_localeGenPath ); m_widget->layout()->addWidget( m_actualWidget ); From 25ba1bb767ae2ae32d53caba820917cf02d20e4f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 13:22:38 +0200 Subject: [PATCH 229/335] [locale] Remove localeGenLines from page - the Config object took over loading of the string list - expose the list as a property - drop loading code from the page. --- src/modules/locale/Config.h | 4 ++ src/modules/locale/LocalePage.cpp | 100 ++------------------------ src/modules/locale/LocalePage.h | 4 +- src/modules/locale/LocaleViewStep.cpp | 2 +- 4 files changed, 10 insertions(+), 100 deletions(-) diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 53e4d5561..34aa8b92f 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -26,6 +26,7 @@ class Config : public QObject { Q_OBJECT + Q_PROPERTY( const QStringList& supportedLocales READ supportedLocales CONSTANT FINAL ) public: Config( QObject* parent = nullptr ); @@ -33,6 +34,9 @@ public: void setConfigurationMap( const QVariantMap& ); +public Q_SLOTS: + const QStringList& supportedLocales() const { return m_localeGenLines; } + private: /// A list of supported locale identifiers (e.g. "en_US.UTF-8") QStringList m_localeGenLines; diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index faeae7edc..fa04d1058 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -138,7 +138,7 @@ LocalePage::updateLocaleLabels() } void -LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ) +LocalePage::init( const QString& initialRegion, const QString& initialZone ) { using namespace CalamaresUtils::Locale; @@ -155,98 +155,6 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons m_tzWidget->setCurrentLocation( "America", "New_York" ); } - // Some distros come with a meaningfully commented and easy to parse locale.gen, - // and others ship a separate file /usr/share/i18n/SUPPORTED with a clean list of - // supported locales. We first try that one, and if it doesn't exist, we fall back - // to parsing the lines from locale.gen - m_localeGenLines.clear(); - QFile supported( "/usr/share/i18n/SUPPORTED" ); - QByteArray ba; - - if ( supported.exists() && supported.open( QIODevice::ReadOnly | QIODevice::Text ) ) - { - ba = supported.readAll(); - supported.close(); - - const auto lines = ba.split( '\n' ); - for ( const QByteArray& line : lines ) - { - m_localeGenLines.append( QString::fromLatin1( line.simplified() ) ); - } - } - else - { - QFile localeGen( localeGenPath ); - if ( localeGen.open( QIODevice::ReadOnly | QIODevice::Text ) ) - { - ba = localeGen.readAll(); - localeGen.close(); - } - else - { - cWarning() << "Cannot open file" << localeGenPath - << ". Assuming the supported languages are already built into " - "the locale archive."; - QProcess localeA; - localeA.start( "locale", QStringList() << "-a" ); - localeA.waitForFinished(); - ba = localeA.readAllStandardOutput(); - } - const auto lines = ba.split( '\n' ); - for ( const QByteArray& line : lines ) - { - if ( line.startsWith( "## " ) || line.startsWith( "# " ) || line.simplified() == "#" ) - { - continue; - } - - QString lineString = QString::fromLatin1( line.simplified() ); - if ( lineString.startsWith( "#" ) ) - { - lineString.remove( '#' ); - } - lineString = lineString.simplified(); - - if ( lineString.isEmpty() ) - { - continue; - } - - m_localeGenLines.append( lineString ); - } - } - - if ( m_localeGenLines.isEmpty() ) - { - cWarning() << "cannot acquire a list of available locales." - << "The locale and localecfg modules will be broken as long as this " - "system does not provide" - << "\n\t " - << "* a well-formed" << supported.fileName() << "\n\tOR" - << "* a well-formed" - << ( localeGenPath.isEmpty() ? QLatin1String( "/etc/locale.gen" ) : localeGenPath ) << "\n\tOR" - << "* a complete pre-compiled locale-gen database which allows complete locale -a output."; - return; // something went wrong and there's nothing we can do about it. - } - - // Assuming we have a list of supported locales, we usually only want UTF-8 ones - // because it's not 1995. - auto notUtf8 = []( const QString& s ) { - return !s.contains( "UTF-8", Qt::CaseInsensitive ) && !s.contains( "utf8", Qt::CaseInsensitive ); - }; - auto it = std::remove_if( m_localeGenLines.begin(), m_localeGenLines.end(), notUtf8 ); - m_localeGenLines.erase( it, m_localeGenLines.end() ); - - // We strip " UTF-8" from "en_US.UTF-8 UTF-8" because it's redundant redundant. - // Also simplify whitespace. - auto unredundant = []( QString& s ) { - if ( s.endsWith( " UTF-8" ) ) - { - s.chop( 6 ); - } - s = s.simplified(); - }; - std::for_each( m_localeGenLines.begin(), m_localeGenLines.end(), unredundant ); updateGlobalStorage(); } @@ -319,7 +227,7 @@ LocaleConfiguration LocalePage::guessLocaleConfiguration() const { return LocaleConfiguration::fromLanguageAndLocation( - QLocale().name(), m_localeGenLines, m_tzWidget->currentLocation()->country() ); + QLocale().name(), m_config->supportedLocales(), m_tzWidget->currentLocation()->country() ); } @@ -446,7 +354,7 @@ LocalePage::changeLocale() LCLocaleDialog* dlg = new LCLocaleDialog( m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration().language() : m_selectedLocaleConfiguration.language(), - m_localeGenLines, + m_config->supportedLocales(), this ); dlg->exec(); if ( dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) @@ -467,7 +375,7 @@ LocalePage::changeFormats() LCLocaleDialog* dlg = new LCLocaleDialog( m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration().lc_numeric : m_selectedLocaleConfiguration.lc_numeric, - m_localeGenLines, + m_config->supportedLocales(), this ); dlg->exec(); if ( dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 1e2052223..ea41f5233 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -43,7 +43,7 @@ public: explicit LocalePage( class Config* config, QWidget* parent = nullptr ); virtual ~LocalePage(); - void init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath ); + void init( const QString& initialRegion, const QString& initialZone ); QString prettyStatus() const; @@ -95,8 +95,6 @@ private: LocaleConfiguration m_selectedLocaleConfiguration; - QStringList m_localeGenLines; - bool m_blockTzWidgetSet; }; diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 173532bf8..e35b5a112 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -70,7 +70,7 @@ LocaleViewStep::setUpPage() { m_actualWidget = new LocalePage( m_config.get() ); } - m_actualWidget->init( m_startingTimezone.first, m_startingTimezone.second, m_localeGenPath ); + m_actualWidget->init( m_startingTimezone.first, m_startingTimezone.second ); m_widget->layout()->addWidget( m_actualWidget ); ensureSize( m_actualWidget->sizeHint() ); From 931ce20f304075e737bfd44632752a0c852ccf18 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 13:38:20 +0200 Subject: [PATCH 230/335] [locale] Reduce API surface - getLocationPosition doesn't need to be a method, since it calls out to a static function of TimeZoneImageList anyway. --- src/modules/locale/timezonewidget/timezonewidget.cpp | 7 +++++++ src/modules/locale/timezonewidget/timezonewidget.h | 5 ----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index b81e0414c..05ee8f54d 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -34,6 +34,13 @@ #define ZONE_NAME QStringLiteral( "zone" ) #endif +static QPoint +getLocationPosition( const CalamaresUtils::Locale::TZZone* l ) +{ + return TimeZoneImageList::getLocationPosition( l->longitude(), l->latitude() ); +} + + TimeZoneWidget::TimeZoneWidget( QWidget* parent ) : QWidget( parent ) , timeZoneImages( TimeZoneImageList::fromQRC() ) diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index afebbfd7b..08a0491ee 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -53,11 +53,6 @@ private: TimeZoneImageList timeZoneImages; const TZZone* m_currentLocation = nullptr; // Not owned by me - QPoint getLocationPosition( const TZZone* l ) - { - return timeZoneImages.getLocationPosition( l->longitude(), l->latitude() ); - } - void paintEvent( QPaintEvent* event ); void mousePressEvent( QMouseEvent* event ); }; From 439f828d9b31a63841761a0b982bd9be6f73a910 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 13:47:23 +0200 Subject: [PATCH 231/335] [locale] Document TZ widget --- .../locale/timezonewidget/timezonewidget.h | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 08a0491ee..7ef29d72d 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -31,6 +31,22 @@ #include #include +/** @brief The TimeZoneWidget shows a map and reports where clicks happen + * + * This widget shows a map (unspecified whether it's a whole world map + * or can show regionsvia some kind of internal state). Mouse clicks are + * translated into timezone locations (e.g. the zone for America/New_York). + * + * The current location can be changed programmatically, by name + * or through a pointer to a location. If a pointer is used, take care + * that the pointer is to a zone in the same model as used by the + * widget. + * + * When a location is chosen -- by mouse click or programmatically -- + * the locationChanged() signal is emitted with the new location. + * + * NOTE: the widget currently uses the globally cached TZRegion::fromZoneTab() + */ class TimeZoneWidget : public QWidget { Q_OBJECT @@ -39,10 +55,19 @@ public: explicit TimeZoneWidget( QWidget* parent = nullptr ); + /** @brief Sets a location by name + * + * @p region should be "America" or the like, while @p zone + * names a zone within that region. + */ void setCurrentLocation( QString region, QString zone ); + /** @brief Sets a location by pointer + * + * Pointer should be within the same model as the widget uses. + */ void setCurrentLocation( const TZZone* location ); - const TZZone* currentLocation() { return m_currentLocation; } + const TZZone* currentLocation() { return m_currentLocation; } signals: void locationChanged( const TZZone* location ); From 51b7ec875f7c952ab0bce1e616784006b709dd8f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 13:55:00 +0200 Subject: [PATCH 232/335] [locale] Don't need own copy of zones list --- src/modules/locale/LocalePage.cpp | 8 +++----- src/modules/locale/LocalePage.h | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index fa04d1058..9903b2693 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -43,8 +43,7 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) : QWidget( parent ) , m_config( config ) - , m_regionList( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) - , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( m_regionList ) ) + , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) ) , m_blockTzWidgetSet( false ) { QBoxLayout* mainLayout = new QVBoxLayout; @@ -118,7 +117,6 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) LocalePage::~LocalePage() { - qDeleteAll( m_regionList ); } @@ -145,7 +143,7 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone ) m_regionCombo->setModel( m_regionModel.get() ); m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); - auto* region = m_regionList.find< TZRegion >( initialRegion ); + auto* region = CalamaresUtils::Locale::TZRegion::fromZoneTab().find< TZRegion >( initialRegion ); if ( region && region->zones().find< TZZone >( initialZone ) ) { m_tzWidget->setCurrentLocation( initialRegion, initialZone ); @@ -297,7 +295,7 @@ LocalePage::regionChanged( int currentIndex ) Q_UNUSED( currentIndex ) QString selectedRegion = m_regionCombo->currentData().toString(); - TZRegion* region = m_regionList.find< TZRegion >( selectedRegion ); + TZRegion* region = CalamaresUtils::Locale::TZRegion::fromZoneTab().find< TZRegion >( selectedRegion ); if ( !region ) { return; diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index ea41f5233..5d40f7fc8 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -79,7 +79,6 @@ private: void changeFormats(); // Dynamically, QList< TZRegion* > - CalamaresUtils::Locale::CStringPairList m_regionList; std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_regionModel; TimeZoneWidget* m_tzWidget; From e8282f27a3af0827d3993ba702612e5a500c0fc8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 14:06:21 +0200 Subject: [PATCH 233/335] Docs: update RELEASE.md with some GPG-info and remove old steps --- ci/RELEASE.md | 112 +++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 61 deletions(-) diff --git a/ci/RELEASE.md b/ci/RELEASE.md index 524a67a65..7fa19c26a 100644 --- a/ci/RELEASE.md +++ b/ci/RELEASE.md @@ -1,21 +1,13 @@ # Calamares Release Process > Calamares releases are now rolling when-they-are-ready releases. -> Releases are made from *master* and tagged there. When, in future, +> Releases are made from *calamares* and tagged there. When, in future, > LTS releases resume, these steps may be edited again. > > Most things are automated through the release script [RELEASE.sh](RELEASE.sh) -## (0) A week in advance +## (1) Preparation -* Run [Coverity scan][coverity], fix what's relevant. The Coverity scan runs - automatically once a week on master. The badge is displayed on the - project front page and in the wiki. -* Build with clang -Weverything, fix what's relevant. - ``` - rm -rf build ; mkdir build ; cd build - CC=clang CXX=clang++ cmake .. && make - ``` * Make sure all tests pass. ``` make @@ -25,16 +17,6 @@ an additional environment variable to be set for some tests, which will destroy an attached disk. This is not always desirable. There are some sample config-files that are empty and which fail the config-tests. -* Notify [translators][transifex]. In the dashboard there is an *Announcements* - link that you can use to send a translation announcement. Note that regular - use of `txpush.sh` will notify translators as well of any changes. - -[coverity]: https://scan.coverity.com/projects/calamares-calamares?tab=overview -[transifex]: https://www.transifex.com/calamares/calamares/dashboard/ - - -## (1) Preparation - * Pull latest translations from Transifex. We only push / pull translations from master, so longer-lived branches (e.g. 3.1.x) don't get translation updates. This is to keep the translation workflow simple. The script @@ -47,13 +29,8 @@ fairly complete translations, or use `ci/txstats.py` for an automated suggestion. If there are changes, commit them. * Push the changes. -* Drop the RC variable to 0 in `CMakeLists.txt`, *CALAMARES_VERSION_RC*. -* Check `README.md` and the - [Coding Guide](https://github.com/calamares/calamares/wiki/Develop-Code), - make sure it's all still - relevant. Run `ci/calamaresstyle` to check the C++ code style. - Run pycodestyle on recently-modified Python modules, fix what makes sense. * Check defaults in `settings.conf` and other configuration files. +* Drop the RC variable to 0 in `CMakeLists.txt`, *CALAMARES_VERSION_RC*. * Edit `CHANGES` and set the date of the release. * Commit both. This is usually done with commit-message *Changes: pre-release housekeeping*. @@ -73,44 +50,16 @@ On success, it prints out a suitable signature- and SHA256 blurb for use in the release announcement. -### (2.1) Buld and Test - -* Build with gcc. If available, build again with Clang and double-check - any warnings Clang produces. -* Run the tests; `make test` in the build directory should have no - failures (or if there are, know why they are there). +## (3) Release -### (2.2) Tag +Follow the instructions printed by the release script. -* `git tag -s v1.1.0` Make sure the signing key is known in GitHub, so that the - tag is shown as a verified tag. Do not sign -rc tags. - You can use `make show-version` in the build directory to get the right - version number -- this will fail if you didn't follow step (1). - -### (2.3) Tarball - -* Create tarball: `git-archive-all -v calamares-1.1-rc1.tar.gz` or without - the helper script, - ``` - V=calamares-3.1.5 - git archive -o $V.tar.gz --prefix $V/ master - ``` - Double check that the tarball matches the version number. -* Test tarball (e.g. unpack somewhere else and run the tests from step 0). - - -## (3) Housekeeping - -* Generate MD5 and SHA256 checksums. -* Upload tarball. -* Announce on mailing list, notify packagers. -* Write release article. -* Publish tarball. -* Update download page. +* Push the tags. +* Create a new release on GitHub. +* Upload tarball and signature. * Publish release article on `calamares.io`. -* Publicize on social networks. -* Close associated milestone on GitHub if this is the actual release. -* Publish blog post. +* Close associated milestone on GitHub if it's entirely done. +* Update topic on #calamares IRC channel. ## (4) Post-Release @@ -133,3 +82,44 @@ This release contains contributions from (alphabetically by first name): ## Modules ## - No module changes yet ``` + +# Related Material + +> This section isn't directly related to any specific release, +> but bears on all releases. + +## GPG Key Maintainence + +Calamares uses GPG Keys for signing the tarballs and some commits +(tags, mostly). Calamares uses the **maintainer's** personal GPG +key for this. This section details some GPG activities that the +maintainer should do with those keys. + +- Signing sub-key. It's convenient to use a signing sub-key specifically + for the signing of Calamares. To do so, add a key to the private key. + It's recommended to use key expiry, and to update signing keys periodically. + - Run `gpg -K` to find the key ID of your personal GPG secret key. + - Run `gpg --edit-key ` to edit that personal GPG key. + - In gpg edit-mode, use `addkey`, then pick a key type that is *sign-only* + (e.g. type 4, *RSA (sign only)*), then pick a keysize (3072 seems ok + as of 2020) and set a key expiry time, (e.g. in 18 months time). + - After generation, the secret key information is printed again, now + including the new signing subkey: + ``` +ssb rsa3072/0xCFDDC96F12B1915C + created: 2020-07-11 expires: 2022-01-02 usage: S +``` +- Update the `RELEASE.sh` script with a new signing sub-key ID when a new + one is generated. Also announce the change of signing sub-key (e.g. on + the Calmares site or as part of a release announcement). + - Send the updated key to keyservers with `gpg --send-keys ` + - Optional: sanitize the keyring for use in development machines. + Export the current subkeys of the master key and keep **only** those + secret keys around. There is documentation + [here](https://blog.tinned-software.net/create-gnupg-key-with-sub-keys-to-sign-encrypt-authenticate/) + but be careful. + - Export the public key material with `gpg --export --armor `, + possibly also setting an output file. + - Upload that public key to the relevant GitHub profile. + - Upload that public key to the Calamares site. + From 88d1d255f6a61080ce45d86116c4b662bc78eca5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 16:13:08 +0200 Subject: [PATCH 234/335] [locale] Add regions & zones models to Config - The models are constant pointers, even if their contents aren't. - Make the top-level (region) model point to the global TZ list. --- src/modules/locale/Config.cpp | 3 +++ src/modules/locale/Config.h | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index d886f1eec..52378b0b4 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -142,6 +142,9 @@ loadLocales( const QString& localeGenPath ) Config::Config( QObject* parent ) : QObject( parent ) + , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( + CalamaresUtils::Locale::TZRegion::fromZoneTab() ) ) + , m_zonesModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >() ) { } diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 34aa8b92f..a98ecc73d 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -21,12 +21,18 @@ #ifndef LOCALE_CONFIG_H #define LOCALE_CONFIG_H +#include "locale/TimeZone.h" + #include +#include + class Config : public QObject { Q_OBJECT Q_PROPERTY( const QStringList& supportedLocales READ supportedLocales CONSTANT FINAL ) + Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* zonesModel READ zonesModel CONSTANT FINAL ) + Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* regionModel READ regionModel CONSTANT FINAL ) public: Config( QObject* parent = nullptr ); @@ -36,10 +42,17 @@ public: public Q_SLOTS: const QStringList& supportedLocales() const { return m_localeGenLines; } + CalamaresUtils::Locale::CStringListModel* regionModel() const { return m_regionModel.get(); } + CalamaresUtils::Locale::CStringListModel* zonesModel() const { return m_zonesModel.get(); } private: /// A list of supported locale identifiers (e.g. "en_US.UTF-8") QStringList m_localeGenLines; + + /// The regions (America, Asia, Europe ..) + std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_regionModel; + /// The zones for the current region (e.g. America/New_York) + std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_zonesModel; }; From 4d5ff6d5c4d049ddf94921ffe49a48886ff79a98 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 16:27:15 +0200 Subject: [PATCH 235/335] [locale] Make the Page use the region model from Config --- src/modules/locale/LocalePage.cpp | 3 +-- src/modules/locale/LocalePage.h | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 9903b2693..2d0832758 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -43,7 +43,6 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) : QWidget( parent ) , m_config( config ) - , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( CalamaresUtils::Locale::TZRegion::fromZoneTab() ) ) , m_blockTzWidgetSet( false ) { QBoxLayout* mainLayout = new QVBoxLayout; @@ -140,7 +139,7 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone ) { using namespace CalamaresUtils::Locale; - m_regionCombo->setModel( m_regionModel.get() ); + m_regionCombo->setModel( m_config->regionModel() ); m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); auto* region = CalamaresUtils::Locale::TZRegion::fromZoneTab().find< TZRegion >( initialRegion ); diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 5d40f7fc8..6c7fed1d6 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -78,9 +78,6 @@ private: void changeLocale(); void changeFormats(); - // Dynamically, QList< TZRegion* > - std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_regionModel; - TimeZoneWidget* m_tzWidget; QComboBox* m_regionCombo; QComboBox* m_zoneCombo; From f0cac7d6692c472931f4224de95540d402077478 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 16:54:44 +0200 Subject: [PATCH 236/335] [locale] Hook tz widget up to the Config's data --- src/modules/locale/Config.cpp | 16 ++++++++++++++-- src/modules/locale/Config.h | 3 +++ src/modules/locale/LocalePage.cpp | 2 +- .../locale/timezonewidget/timezonewidget.cpp | 8 ++++---- .../locale/timezonewidget/timezonewidget.h | 4 +++- 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 52378b0b4..39ae8732b 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -139,17 +139,29 @@ loadLocales( const QString& localeGenPath ) return localeGenLines; } +static inline const CalamaresUtils::Locale::CStringPairList& +timezoneData() +{ + return CalamaresUtils::Locale::TZRegion::fromZoneTab(); +} + Config::Config( QObject* parent ) : QObject( parent ) - , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( - CalamaresUtils::Locale::TZRegion::fromZoneTab() ) ) + , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( ::timezoneData() ) ) , m_zonesModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >() ) { } Config::~Config() {} +const CalamaresUtils::Locale::CStringPairList& +Config::timezoneData() const +{ + return ::timezoneData(); +} + + void Config::setConfigurationMap( const QVariantMap& configurationMap ) { diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index a98ecc73d..4f8c9bc64 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -33,6 +33,7 @@ class Config : public QObject Q_PROPERTY( const QStringList& supportedLocales READ supportedLocales CONSTANT FINAL ) Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* zonesModel READ zonesModel CONSTANT FINAL ) Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* regionModel READ regionModel CONSTANT FINAL ) + Q_PROPERTY( const CalamaresUtils::Locale::CStringPairList& timezoneData READ timezoneData CONSTANT FINAL ) public: Config( QObject* parent = nullptr ); @@ -44,6 +45,8 @@ public Q_SLOTS: const QStringList& supportedLocales() const { return m_localeGenLines; } CalamaresUtils::Locale::CStringListModel* regionModel() const { return m_regionModel.get(); } CalamaresUtils::Locale::CStringListModel* zonesModel() const { return m_zonesModel.get(); } + // Underlying data for the models + const CalamaresUtils::Locale::CStringPairList& timezoneData() const; private: /// A list of supported locale identifiers (e.g. "en_US.UTF-8") diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 2d0832758..2a4212fca 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -48,7 +48,7 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) QBoxLayout* mainLayout = new QVBoxLayout; QBoxLayout* tzwLayout = new QHBoxLayout; - m_tzWidget = new TimeZoneWidget( this ); + m_tzWidget = new TimeZoneWidget( config->timezoneData(), this ); tzwLayout->addStretch(); tzwLayout->addWidget( m_tzWidget ); tzwLayout->addStretch(); diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 05ee8f54d..149ad6590 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -41,9 +41,10 @@ getLocationPosition( const CalamaresUtils::Locale::TZZone* l ) } -TimeZoneWidget::TimeZoneWidget( QWidget* parent ) +TimeZoneWidget::TimeZoneWidget( const CalamaresUtils::Locale::CStringPairList& zones, QWidget* parent ) : QWidget( parent ) , timeZoneImages( TimeZoneImageList::fromQRC() ) + , m_zonesData( zones ) { setMouseTracking( false ); setCursor( Qt::PointingHandCursor ); @@ -67,8 +68,7 @@ void TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) { using namespace CalamaresUtils::Locale; - const auto& regions = TZRegion::fromZoneTab(); - auto* region = regions.find< TZRegion >( regionName ); + auto* region = m_zonesData.find< TZRegion >( regionName ); if ( !region ) { return; @@ -201,7 +201,7 @@ TimeZoneWidget::mousePressEvent( QMouseEvent* event ) using namespace CalamaresUtils::Locale; const TZZone* closest = nullptr; - for ( const auto* region_p : TZRegion::fromZoneTab() ) + for ( const auto* region_p : m_zonesData ) { const auto* region = dynamic_cast< const TZRegion* >( region_p ); if ( region ) diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index 7ef29d72d..c070b4cd4 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -53,7 +53,7 @@ class TimeZoneWidget : public QWidget public: using TZZone = CalamaresUtils::Locale::TZZone; - explicit TimeZoneWidget( QWidget* parent = nullptr ); + explicit TimeZoneWidget( const CalamaresUtils::Locale::CStringPairList& zones, QWidget* parent = nullptr ); /** @brief Sets a location by name * @@ -76,6 +76,8 @@ private: QFont font; QImage background, pin, currentZoneImage; TimeZoneImageList timeZoneImages; + + const CalamaresUtils::Locale::CStringPairList& m_zonesData; const TZZone* m_currentLocation = nullptr; // Not owned by me void paintEvent( QPaintEvent* event ); From 8c21b5985396af73dc51f1c8b486f3553cdde409 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 18:13:33 +0200 Subject: [PATCH 237/335] [locale] Remove unused localegen (moved to Config earlier) --- src/modules/locale/LocaleViewStep.cpp | 6 ------ src/modules/locale/LocaleViewStep.h | 5 ++--- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index e35b5a112..d71523da1 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -201,12 +201,6 @@ LocaleViewStep::setConfigurationMap( const QVariantMap& configurationMap ) = CalamaresUtils::GeoIP::RegionZonePair( QStringLiteral( "America" ), QStringLiteral( "New_York" ) ); } - m_localeGenPath = CalamaresUtils::getString( configurationMap, "localeGenPath" ); - if ( m_localeGenPath.isEmpty() ) - { - m_localeGenPath = QStringLiteral( "/etc/locale.gen" ); - } - bool ok = false; QVariantMap geoip = CalamaresUtils::getSubMap( configurationMap, "geoip", ok ); if ( ok ) diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index 4e6c3d262..24764b172 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -72,10 +72,9 @@ private: bool m_nextEnabled; QString m_prettyStatus; - CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; - QString m_localeGenPath; - Calamares::JobList m_jobs; + + CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; std::unique_ptr< Config > m_config; From 5a6a9a0d45d95ebef47019a6632effeead0cd67b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 22:21:29 +0200 Subject: [PATCH 238/335] [locale] Move job-creation to Config - since Config knows what settings there are, it should create the jobs to run later -- not the Page. - this doesn't work yet, because the Config does **not** know what the selected timezone is yet. --- src/modules/locale/Config.cpp | 17 +++++++++++++++++ src/modules/locale/Config.h | 2 ++ src/modules/locale/LocalePage.cpp | 17 +---------------- src/modules/locale/LocalePage.h | 2 -- src/modules/locale/LocaleViewStep.cpp | 2 +- 5 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 39ae8732b..2e0eb8173 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -20,6 +20,8 @@ #include "Config.h" +#include "SetTimezoneJob.h" + #include "utils/Logger.h" #include "utils/Variant.h" @@ -172,3 +174,18 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) } m_localeGenLines = loadLocales( localeGenPath ); } + +Calamares::JobList +Config::createJobs() +{ + Calamares::JobList list; + const CalamaresUtils::Locale::TZZone* location = nullptr; // TODO: m_tzWidget->currentLocation(); + + if ( location ) + { + Calamares::Job* j = new SetTimezoneJob( location->region(), location->zone() ); + list.append( Calamares::job_ptr( j ) ); + } + + return list; +} diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 4f8c9bc64..8e1f29cf7 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -21,6 +21,7 @@ #ifndef LOCALE_CONFIG_H #define LOCALE_CONFIG_H +#include "Job.h" #include "locale/TimeZone.h" #include @@ -40,6 +41,7 @@ public: ~Config(); void setConfigurationMap( const QVariantMap& ); + Calamares::JobList createJobs(); public Q_SLOTS: const QStringList& supportedLocales() const { return m_localeGenLines; } diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 2a4212fca..b3fa8e8e9 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -114,9 +114,7 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) } -LocalePage::~LocalePage() -{ -} +LocalePage::~LocalePage() {} void @@ -185,19 +183,6 @@ LocalePage::prettyStatus() const } -Calamares::JobList -LocalePage::createJobs() -{ - QList< Calamares::job_ptr > list; - const CalamaresUtils::Locale::TZZone* location = m_tzWidget->currentLocation(); - - Calamares::Job* j = new SetTimezoneJob( location->region(), location->zone() ); - list.append( Calamares::job_ptr( j ) ); - - return list; -} - - QMap< QString, QString > LocalePage::localesMap() { diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 6c7fed1d6..c8312309e 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -47,8 +47,6 @@ public: QString prettyStatus() const; - Calamares::JobList createJobs(); - QMap< QString, QString > localesMap(); void onActivate(); diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index d71523da1..81162d843 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -166,7 +166,7 @@ LocaleViewStep::onLeave() { if ( m_actualWidget ) { - m_jobs = m_actualWidget->createJobs(); + m_jobs = m_config->createJobs(); m_prettyStatus = m_actualWidget->prettyStatus(); auto map = m_actualWidget->localesMap(); From 726f88218525b7fa91dca8410b372d2d15be99b4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 20 Jul 2020 23:06:12 +0200 Subject: [PATCH 239/335] [locale] Move current-location to Config --- src/modules/locale/Config.cpp | 25 ++++++++++++++++++ src/modules/locale/Config.h | 22 ++++++++++++++++ src/modules/locale/LocalePage.cpp | 26 ++++++++----------- .../locale/timezonewidget/timezonewidget.cpp | 20 +++----------- .../locale/timezonewidget/timezonewidget.h | 10 ++----- 5 files changed, 63 insertions(+), 40 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 2e0eb8173..5a97339a8 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -163,6 +163,31 @@ Config::timezoneData() const return ::timezoneData(); } +void +Config::setCurrentLocation( const QString& regionName, const QString& zoneName ) +{ + using namespace CalamaresUtils::Locale; + auto* region = timezoneData().find< TZRegion >( regionName ); + auto* zone = region ? region->zones().find< TZZone >( zoneName ) : nullptr; + if ( zone ) + { + setCurrentLocation( zone ); + } + else + { + setCurrentLocation( QStringLiteral("America"), QStringLiteral("New_York") ); + } +} + +void +Config::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) +{ + if ( location != m_currentLocation ) + { + m_currentLocation = location; + emit currentLocationChanged( m_currentLocation ); + } +} void Config::setConfigurationMap( const QVariantMap& configurationMap ) diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 8e1f29cf7..44e7c9142 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -35,6 +35,7 @@ class Config : public QObject Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* zonesModel READ zonesModel CONSTANT FINAL ) Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* regionModel READ regionModel CONSTANT FINAL ) Q_PROPERTY( const CalamaresUtils::Locale::CStringPairList& timezoneData READ timezoneData CONSTANT FINAL ) + Q_PROPERTY( const CalamaresUtils::Locale::TZZone* currentLocation READ currentLocation WRITE setCurrentLocation NOTIFY currentLocationChanged ) public: Config( QObject* parent = nullptr ); @@ -50,6 +51,23 @@ public Q_SLOTS: // Underlying data for the models const CalamaresUtils::Locale::CStringPairList& timezoneData() const; + /** @brief Sets a location by name + * + * @p region should be "America" or the like, while @p zone + * names a zone within that region. + */ + void setCurrentLocation( const QString& region, const QString& zone ); + /** @brief Sets a location by pointer + * + * Pointer should be within the same model as the widget uses. + */ + void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ); + + const CalamaresUtils::Locale::TZZone* currentLocation() const { return m_currentLocation; } + +signals: + void currentLocationChanged( const CalamaresUtils::Locale::TZZone* location ); + private: /// A list of supported locale identifiers (e.g. "en_US.UTF-8") QStringList m_localeGenLines; @@ -58,6 +76,10 @@ private: std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_regionModel; /// The zones for the current region (e.g. America/New_York) std::unique_ptr< CalamaresUtils::Locale::CStringListModel > m_zonesModel; + + /// The location, points into the timezone data + const CalamaresUtils::Locale::TZZone* m_currentLocation = nullptr; + }; diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index b3fa8e8e9..d4d24afef 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -104,9 +104,13 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) setMinimumWidth( m_tzWidget->width() ); setLayout( mainLayout ); + connect( config, &Config::currentLocationChanged, m_tzWidget, &TimeZoneWidget::setCurrentLocation ); + connect( config, &Config::currentLocationChanged, this, &LocalePage::locationChanged ); + connect( m_tzWidget, &TimeZoneWidget::locationChanged, config, QOverload< const CalamaresUtils::Locale::TZZone* >::of( &Config::setCurrentLocation ) ); + connect( m_regionCombo, QOverload< int >::of( &QComboBox::currentIndexChanged ), this, &LocalePage::regionChanged ); connect( m_zoneCombo, QOverload< int >::of( &QComboBox::currentIndexChanged ), this, &LocalePage::zoneChanged ); - connect( m_tzWidget, &TimeZoneWidget::locationChanged, this, &LocalePage::locationChanged ); + connect( m_localeChangeButton, &QPushButton::clicked, this, &LocalePage::changeLocale ); connect( m_formatsChangeButton, &QPushButton::clicked, this, &LocalePage::changeFormats ); @@ -140,16 +144,7 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone ) m_regionCombo->setModel( m_config->regionModel() ); m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); - auto* region = CalamaresUtils::Locale::TZRegion::fromZoneTab().find< TZRegion >( initialRegion ); - if ( region && region->zones().find< TZZone >( initialZone ) ) - { - m_tzWidget->setCurrentLocation( initialRegion, initialZone ); - } - else - { - m_tzWidget->setCurrentLocation( "America", "New_York" ); - } - + m_config->setCurrentLocation( initialRegion, initialZone ); updateGlobalStorage(); } @@ -209,7 +204,7 @@ LocaleConfiguration LocalePage::guessLocaleConfiguration() const { return LocaleConfiguration::fromLanguageAndLocation( - QLocale().name(), m_config->supportedLocales(), m_tzWidget->currentLocation()->country() ); + QLocale().name(), m_config->supportedLocales(), m_config->currentLocation()->country() ); } @@ -227,7 +222,7 @@ LocalePage::updateGlobalStorage() { auto* gs = Calamares::JobQueue::instance()->globalStorage(); - const auto* location = m_tzWidget->currentLocation(); + const auto* location = m_config->currentLocation(); bool locationChanged = ( location->region() != gs->value( "locationRegion" ) ) || ( location->zone() != gs->value( "locationZone" ) ); @@ -296,9 +291,10 @@ LocalePage::zoneChanged( int currentIndex ) { Q_UNUSED( currentIndex ) if ( !m_blockTzWidgetSet ) - m_tzWidget->setCurrentLocation( m_regionCombo->currentData().toString(), + { + m_config->setCurrentLocation( m_regionCombo->currentData().toString(), m_zoneCombo->currentData().toString() ); - + } updateGlobalStorage(); } diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 149ad6590..df1142e17 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -65,26 +65,13 @@ TimeZoneWidget::TimeZoneWidget( const CalamaresUtils::Locale::CStringPairList& z void -TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName ) +TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) { - using namespace CalamaresUtils::Locale; - auto* region = m_zonesData.find< TZRegion >( regionName ); - if ( !region ) + if ( location == m_currentLocation ) { return; } - auto* zone = region->zones().find< TZZone >( zoneName ); - if ( zone ) - { - setCurrentLocation( zone ); - } -} - - -void -TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) -{ m_currentLocation = location; // Set zone @@ -100,7 +87,6 @@ TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* locati // Repaint widget repaint(); - emit locationChanged( m_currentLocation ); } @@ -229,6 +215,6 @@ TimeZoneWidget::mousePressEvent( QMouseEvent* event ) // Set zone image and repaint widget setCurrentLocation( closest ); // Emit signal - emit locationChanged( m_currentLocation ); + emit locationChanged( closest ); } } diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index c070b4cd4..6bb94c0dd 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -55,21 +55,15 @@ public: explicit TimeZoneWidget( const CalamaresUtils::Locale::CStringPairList& zones, QWidget* parent = nullptr ); - /** @brief Sets a location by name - * - * @p region should be "America" or the like, while @p zone - * names a zone within that region. - */ - void setCurrentLocation( QString region, QString zone ); +public Q_SLOTS: /** @brief Sets a location by pointer * * Pointer should be within the same model as the widget uses. */ void setCurrentLocation( const TZZone* location ); - const TZZone* currentLocation() { return m_currentLocation; } - signals: + /** @brief The location has changed by mouse click */ void locationChanged( const TZZone* location ); private: From 98f912f80a59a0e3b61a902d0771e9f05c66833d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 00:11:16 +0200 Subject: [PATCH 240/335] [locale] Drop LocalePage:;init - setting the initial location is something the Config-object should do - setting up the combo-boxes can be done in the constructor --- src/modules/locale/LocalePage.cpp | 17 ++++------------- src/modules/locale/LocalePage.h | 2 -- src/modules/locale/LocaleViewStep.cpp | 2 +- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index d4d24afef..f0a2418ac 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -115,6 +115,10 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) connect( m_formatsChangeButton, &QPushButton::clicked, this, &LocalePage::changeFormats ); CALAMARES_RETRANSLATE_SLOT( &LocalePage::updateLocaleLabels ) + + m_regionCombo->setModel( m_config->regionModel() ); + m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); + updateGlobalStorage(); } @@ -136,19 +140,6 @@ LocalePage::updateLocaleLabels() m_formatsLabel->setText( labels.second ); } -void -LocalePage::init( const QString& initialRegion, const QString& initialZone ) -{ - using namespace CalamaresUtils::Locale; - - m_regionCombo->setModel( m_config->regionModel() ); - m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); - - m_config->setCurrentLocation( initialRegion, initialZone ); - - updateGlobalStorage(); -} - std::pair< QString, QString > LocalePage::prettyLocaleStatus( const LocaleConfiguration& lc ) const { diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index c8312309e..3d4b1d03f 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -43,8 +43,6 @@ public: explicit LocalePage( class Config* config, QWidget* parent = nullptr ); virtual ~LocalePage(); - void init( const QString& initialRegion, const QString& initialZone ); - QString prettyStatus() const; QMap< QString, QString > localesMap(); diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 81162d843..e17c7b004 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -70,7 +70,7 @@ LocaleViewStep::setUpPage() { m_actualWidget = new LocalePage( m_config.get() ); } - m_actualWidget->init( m_startingTimezone.first, m_startingTimezone.second ); + m_config->setCurrentLocation( m_startingTimezone.first, m_startingTimezone.second ); m_widget->layout()->addWidget( m_actualWidget ); ensureSize( m_actualWidget->sizeHint() ); From 0645a46b42da350ed25d08d65ade6bdb110583db Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 00:21:16 +0200 Subject: [PATCH 241/335] [libcalamares] Expand RAII conveniences --- src/libcalamares/utils/RAII.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/utils/RAII.h b/src/libcalamares/utils/RAII.h index dae85e84a..28e57ff9e 100644 --- a/src/libcalamares/utils/RAII.h +++ b/src/libcalamares/utils/RAII.h @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -24,6 +24,7 @@ #define UTILS_RAII_H #include +#include #include @@ -44,4 +45,21 @@ struct cqDeleter } }; +/// @brief Sets a bool to @p value and resets to !value on destruction +template < bool value > +struct cBoolSetter +{ + bool& m_b; + + cBoolSetter( bool& b ) + : m_b( b ) + { + m_b = value; + } + ~cBoolSetter() { m_b = !value; } +}; + +/// @brief Blocks signals on a QObject until destruction +using cSignalBlocker = QSignalBlocker; + #endif From 81520bbbf9c60e21329dd3d38cb10804b3486bd3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 00:21:42 +0200 Subject: [PATCH 242/335] [locale] Chase RAII conveniences - several early-return paths would leave the TZ widget blocked - use the zones data from config --- src/modules/locale/LocalePage.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index f0a2418ac..abb4b63bc 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -31,6 +31,7 @@ #include "locale/TimeZone.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" +#include "utils/RAII.h" #include "utils/Retranslator.h" #include @@ -106,7 +107,10 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) connect( config, &Config::currentLocationChanged, m_tzWidget, &TimeZoneWidget::setCurrentLocation ); connect( config, &Config::currentLocationChanged, this, &LocalePage::locationChanged ); - connect( m_tzWidget, &TimeZoneWidget::locationChanged, config, QOverload< const CalamaresUtils::Locale::TZZone* >::of( &Config::setCurrentLocation ) ); + connect( m_tzWidget, + &TimeZoneWidget::locationChanged, + config, + QOverload< const CalamaresUtils::Locale::TZZone* >::of( &Config::setCurrentLocation ) ); connect( m_regionCombo, QOverload< int >::of( &QComboBox::currentIndexChanged ), this, &LocalePage::regionChanged ); connect( m_zoneCombo, QOverload< int >::of( &QComboBox::currentIndexChanged ), this, &LocalePage::zoneChanged ); @@ -265,15 +269,17 @@ LocalePage::regionChanged( int currentIndex ) Q_UNUSED( currentIndex ) QString selectedRegion = m_regionCombo->currentData().toString(); - TZRegion* region = CalamaresUtils::Locale::TZRegion::fromZoneTab().find< TZRegion >( selectedRegion ); + TZRegion* region = m_config->timezoneData().find< TZRegion >( selectedRegion ); if ( !region ) { return; } - m_zoneCombo->blockSignals( true ); - m_zoneCombo->setModel( new CStringListModel( region->zones() ) ); - m_zoneCombo->blockSignals( false ); + { + cSignalBlocker b( m_zoneCombo ); + m_zoneCombo->setModel( new CStringListModel( region->zones() ) ); + } + m_zoneCombo->currentIndexChanged( m_zoneCombo->currentIndex() ); } @@ -283,8 +289,7 @@ LocalePage::zoneChanged( int currentIndex ) Q_UNUSED( currentIndex ) if ( !m_blockTzWidgetSet ) { - m_config->setCurrentLocation( m_regionCombo->currentData().toString(), - m_zoneCombo->currentData().toString() ); + m_config->setCurrentLocation( m_regionCombo->currentData().toString(), m_zoneCombo->currentData().toString() ); } updateGlobalStorage(); } @@ -292,7 +297,7 @@ LocalePage::zoneChanged( int currentIndex ) void LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location ) { - m_blockTzWidgetSet = true; + cBoolSetter< true > b( m_blockTzWidgetSet ); // Set region index int index = m_regionCombo->findData( location->region() ); @@ -312,8 +317,6 @@ LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location ) m_zoneCombo->setCurrentIndex( index ); - m_blockTzWidgetSet = false; - updateGlobalStorage(); } From a307217d83d9fcd4e1aa418331b70e954e896135 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 11:08:17 +0200 Subject: [PATCH 243/335] [locale] Tidy LocaleConfiguration - expand API documentation - minor coding-style adjustments --- src/modules/locale/LocaleConfiguration.cpp | 4 +-- src/modules/locale/LocaleConfiguration.h | 37 ++++++++++++++++------ 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/modules/locale/LocaleConfiguration.cpp b/src/modules/locale/LocaleConfiguration.cpp index f1810fb83..055907228 100644 --- a/src/modules/locale/LocaleConfiguration.cpp +++ b/src/modules/locale/LocaleConfiguration.cpp @@ -37,7 +37,7 @@ LocaleConfiguration::LocaleConfiguration( const QString& localeName, const QStri lc_numeric = lc_time = lc_monetary = lc_paper = lc_name = lc_address = lc_telephone = lc_measurement = lc_identification = formatsName; - (void)setLanguage( localeName ); + setLanguage( localeName ); } @@ -83,7 +83,7 @@ LocaleConfiguration::fromLanguageAndLocation( const QString& languageLocale, if ( language == "pt" || language == "zh" ) { QString proposedLocale = QString( "%1_%2" ).arg( language ).arg( countryCode ); - foreach ( QString line, linesForLanguage ) + for ( const QString& line : linesForLanguage ) { if ( line.contains( proposedLocale ) ) { diff --git a/src/modules/locale/LocaleConfiguration.h b/src/modules/locale/LocaleConfiguration.h index 4f4fc6b21..2e02bc02a 100644 --- a/src/modules/locale/LocaleConfiguration.h +++ b/src/modules/locale/LocaleConfiguration.h @@ -26,36 +26,53 @@ class LocaleConfiguration { -public: - /// @brief Create an empty locale, with nothing set - explicit LocaleConfiguration(); - /// @brief Create a locale with everything set to the given @p localeName +public: // TODO: private (but need to be public for tests) + /** @brief Create a locale with everything set to the given @p localeName + * + * Consumers should use fromLanguageAndLocation() instead. + */ explicit LocaleConfiguration( const QString& localeName /* "en_US.UTF-8" */ ) : LocaleConfiguration( localeName, localeName ) { } - /// @brief Create a locale with language and formats separate + /** @brief Create a locale with language and formats separate + * + * Consumers should use fromLanguageAndLocation() instead. + */ explicit LocaleConfiguration( const QString& localeName, const QString& formatsName ); + /// @brief Create an empty locale, with nothing set + explicit LocaleConfiguration(); + + /** @brief Create a "sensible" locale configuration for @p language and @p countryCode + * + * This method applies some heuristics to pick a good locale (from the list + * @p availableLocales), along with a good language (for instance, in + * large countries with many languages, picking a generally used one). + */ static LocaleConfiguration fromLanguageAndLocation( const QString& language, const QStringList& availableLocales, const QString& countryCode ); + /// Is this an empty (default-constructed and not modified) configuration? bool isEmpty() const; - /** @brief sets lang and the BCP47 representation + /** @brief sets language to @p localeName * - * Note that the documentation how this works is in packages.conf + * The language may be regionalized, e.g. "nl_BE". Both the language + * (with region) and BCP47 representation (without region, lowercase) + * are updated. The BCP47 representation is used by the packages module. + * See also `packages.conf` for a discussion of how this is used. */ void setLanguage( const QString& localeName ); + /// Current language (including region) QString language() const { return m_lang; } - - // Note that the documentation how this works is in packages.conf + /// Current language (lowercase, BCP47 format, no region) QString toBcp47() const { return m_languageLocaleBcp47; } QMap< QString, QString > toMap() const; // These become all uppercase in locale.conf, but we keep them lowercase here to - // avoid confusion with locale.h. + // avoid confusion with , which defines (e.g.) LC_NUMERIC macro. QString lc_numeric, lc_time, lc_monetary, lc_paper, lc_name, lc_address, lc_telephone, lc_measurement, lc_identification; From 66eacce654402371439babdce599165b2a3acf24 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 13:16:52 +0200 Subject: [PATCH 244/335] [locale] Move localeconfiguration to Config object - the language and LC settings migrate from page to config - add API for explicitly setting language (which is then preserved when clicking new locations) --- src/modules/locale/Config.cpp | 61 ++++++++++++++++++++++- src/modules/locale/Config.h | 33 ++++++++++++- src/modules/locale/LocalePage.cpp | 82 +++++-------------------------- src/modules/locale/LocalePage.h | 3 -- 4 files changed, 104 insertions(+), 75 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 5a97339a8..c19569d43 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -175,7 +175,8 @@ Config::setCurrentLocation( const QString& regionName, const QString& zoneName ) } else { - setCurrentLocation( QStringLiteral("America"), QStringLiteral("New_York") ); + // Recursive, but America/New_York always exists. + setCurrentLocation( QStringLiteral( "America" ), QStringLiteral( "New_York" ) ); } } @@ -185,10 +186,66 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) if ( location != m_currentLocation ) { m_currentLocation = location; + // Overwrite those settings that have not been made explicit. + auto newLocale = automaticLocaleConfiguration(); + if ( !m_selectedLocaleConfiguration.explicit_lang ) + { + m_selectedLocaleConfiguration.setLanguage( newLocale.language() ); + } + if ( !m_selectedLocaleConfiguration.explicit_lc ) + { + m_selectedLocaleConfiguration.lc_numeric = newLocale.lc_numeric; + m_selectedLocaleConfiguration.lc_time = newLocale.lc_time; + m_selectedLocaleConfiguration.lc_monetary = newLocale.lc_monetary; + m_selectedLocaleConfiguration.lc_paper = newLocale.lc_paper; + m_selectedLocaleConfiguration.lc_name = newLocale.lc_name; + m_selectedLocaleConfiguration.lc_address = newLocale.lc_address; + m_selectedLocaleConfiguration.lc_telephone = newLocale.lc_telephone; + m_selectedLocaleConfiguration.lc_measurement = newLocale.lc_measurement; + m_selectedLocaleConfiguration.lc_identification = newLocale.lc_identification; + } emit currentLocationChanged( m_currentLocation ); } } + +LocaleConfiguration +Config::automaticLocaleConfiguration() const +{ + return LocaleConfiguration::fromLanguageAndLocation( + QLocale().name(), supportedLocales(), currentLocation()->country() ); +} + +LocaleConfiguration +Config::localeConfiguration() const +{ + return m_selectedLocaleConfiguration.isEmpty() ? automaticLocaleConfiguration() : m_selectedLocaleConfiguration; +} + +void +Config::setLanguageExplicitly( const QString& language ) +{ + m_selectedLocaleConfiguration.setLanguage( language ); + m_selectedLocaleConfiguration.explicit_lang = true; +} + +void +Config::setLCLocaleExplicitly( const QString& locale ) +{ + // TODO: improve the granularity of this setting. + m_selectedLocaleConfiguration.lc_numeric = locale; + m_selectedLocaleConfiguration.lc_time = locale; + m_selectedLocaleConfiguration.lc_monetary = locale; + m_selectedLocaleConfiguration.lc_paper = locale; + m_selectedLocaleConfiguration.lc_name = locale; + m_selectedLocaleConfiguration.lc_address = locale; + m_selectedLocaleConfiguration.lc_telephone = locale; + m_selectedLocaleConfiguration.lc_measurement = locale; + m_selectedLocaleConfiguration.lc_identification = locale; + m_selectedLocaleConfiguration.explicit_lc = true; +} + + void Config::setConfigurationMap( const QVariantMap& configurationMap ) { @@ -204,7 +261,7 @@ Calamares::JobList Config::createJobs() { Calamares::JobList list; - const CalamaresUtils::Locale::TZZone* location = nullptr; // TODO: m_tzWidget->currentLocation(); + const CalamaresUtils::Locale::TZZone* location = currentLocation(); if ( location ) { diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 44e7c9142..ff9125c13 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -21,6 +21,8 @@ #ifndef LOCALE_CONFIG_H #define LOCALE_CONFIG_H +#include "LocaleConfiguration.h" + #include "Job.h" #include "locale/TimeZone.h" @@ -35,7 +37,8 @@ class Config : public QObject Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* zonesModel READ zonesModel CONSTANT FINAL ) Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* regionModel READ regionModel CONSTANT FINAL ) Q_PROPERTY( const CalamaresUtils::Locale::CStringPairList& timezoneData READ timezoneData CONSTANT FINAL ) - Q_PROPERTY( const CalamaresUtils::Locale::TZZone* currentLocation READ currentLocation WRITE setCurrentLocation NOTIFY currentLocationChanged ) + Q_PROPERTY( const CalamaresUtils::Locale::TZZone* currentLocation READ currentLocation WRITE setCurrentLocation + NOTIFY currentLocationChanged ) public: Config( QObject* parent = nullptr ); @@ -60,11 +63,29 @@ public Q_SLOTS: /** @brief Sets a location by pointer * * Pointer should be within the same model as the widget uses. + * This can update the locale configuration -- the automatic one + * follows the current location, and otherwise only explicitly-set + * values will ignore changes to the location. */ void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ); + /** @brief The currently selected location (timezone) + * + * The location is a pointer into the date that timezoneData() returns. + * It is possible to return nullptr, if no location has been picked yet. + */ const CalamaresUtils::Locale::TZZone* currentLocation() const { return m_currentLocation; } + /// locale configuration (LC_* and LANG) based solely on the current location. + LocaleConfiguration automaticLocaleConfiguration() const; + /// locale configuration that takes explicit settings into account + LocaleConfiguration localeConfiguration() const; + + /// Set a language by user-choice, overriding future location changes + void setLanguageExplicitly( const QString& language ); + /// Set LC (formats) by user-choice, overriding future location changes + void setLCLocaleExplicitly( const QString& locale ); + signals: void currentLocationChanged( const CalamaresUtils::Locale::TZZone* location ); @@ -80,6 +101,16 @@ private: /// The location, points into the timezone data const CalamaresUtils::Locale::TZZone* m_currentLocation = nullptr; + /** @brief Specific locale configurations + * + * "Automatic" locale configuration based on the location (e.g. + * Europe/Amsterdam means Dutch language and Dutch locale) leave + * this empty; if the user explicitly sets something, then + * this configuration is non-empty and takes precedence over the + * automatic location settings (so a user in Amsterdam can still + * pick Ukranian settings, for instance). + */ + LocaleConfiguration m_selectedLocaleConfiguration; }; diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index abb4b63bc..d09d38540 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -137,8 +137,7 @@ LocalePage::updateLocaleLabels() m_localeChangeButton->setText( tr( "&Change..." ) ); m_formatsChangeButton->setText( tr( "&Change..." ) ); - LocaleConfiguration lc - = m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration() : m_selectedLocaleConfiguration; + LocaleConfiguration lc = m_config->localeConfiguration(); auto labels = prettyLocaleStatus( lc ); m_localeLabel->setText( labels.first ); m_formatsLabel->setText( labels.second ); @@ -163,8 +162,7 @@ LocalePage::prettyStatus() const QString status; status += tr( "Set timezone to %1/%2.
" ).arg( m_regionCombo->currentText() ).arg( m_zoneCombo->currentText() ); - LocaleConfiguration lc - = m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration() : m_selectedLocaleConfiguration; + LocaleConfiguration lc = m_config->localeConfiguration(); auto labels = prettyLocaleStatus( lc ); status += labels.first + "
"; status += labels.second + "
"; @@ -176,8 +174,7 @@ LocalePage::prettyStatus() const QMap< QString, QString > LocalePage::localesMap() { - return m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration().toMap() - : m_selectedLocaleConfiguration.toMap(); + return m_config->localeConfiguration().toMap(); } @@ -185,21 +182,8 @@ void LocalePage::onActivate() { m_regionCombo->setFocus(); - if ( m_selectedLocaleConfiguration.isEmpty() || !m_selectedLocaleConfiguration.explicit_lang ) - { - auto newLocale = guessLocaleConfiguration(); - m_selectedLocaleConfiguration.setLanguage( newLocale.language() ); - updateGlobalLocale(); - updateLocaleLabels(); - } -} - - -LocaleConfiguration -LocalePage::guessLocaleConfiguration() const -{ - return LocaleConfiguration::fromLanguageAndLocation( - QLocale().name(), m_config->supportedLocales(), m_config->currentLocation()->country() ); + updateGlobalLocale(); + updateLocaleLabels(); } @@ -207,7 +191,7 @@ void LocalePage::updateGlobalLocale() { auto* gs = Calamares::JobQueue::instance()->globalStorage(); - const QString bcp47 = m_selectedLocaleConfiguration.toBcp47(); + const QString bcp47 = m_config->localeConfiguration().toBcp47(); gs->insert( "locale", bcp47 ); } @@ -236,28 +220,6 @@ LocalePage::updateGlobalStorage() } #endif - // Preserve those settings that have been made explicit. - auto newLocale = guessLocaleConfiguration(); - if ( !m_selectedLocaleConfiguration.isEmpty() && m_selectedLocaleConfiguration.explicit_lang ) - { - newLocale.setLanguage( m_selectedLocaleConfiguration.language() ); - } - if ( !m_selectedLocaleConfiguration.isEmpty() && m_selectedLocaleConfiguration.explicit_lc ) - { - newLocale.lc_numeric = m_selectedLocaleConfiguration.lc_numeric; - newLocale.lc_time = m_selectedLocaleConfiguration.lc_time; - newLocale.lc_monetary = m_selectedLocaleConfiguration.lc_monetary; - newLocale.lc_paper = m_selectedLocaleConfiguration.lc_paper; - newLocale.lc_name = m_selectedLocaleConfiguration.lc_name; - newLocale.lc_address = m_selectedLocaleConfiguration.lc_address; - newLocale.lc_telephone = m_selectedLocaleConfiguration.lc_telephone; - newLocale.lc_measurement = m_selectedLocaleConfiguration.lc_measurement; - newLocale.lc_identification = m_selectedLocaleConfiguration.lc_identification; - } - newLocale.explicit_lang = m_selectedLocaleConfiguration.explicit_lang; - newLocale.explicit_lc = m_selectedLocaleConfiguration.explicit_lc; - - m_selectedLocaleConfiguration = newLocale; updateLocaleLabels(); } @@ -324,17 +286,13 @@ void LocalePage::changeLocale() { LCLocaleDialog* dlg - = new LCLocaleDialog( m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration().language() - : m_selectedLocaleConfiguration.language(), - m_config->supportedLocales(), - this ); + = new LCLocaleDialog( m_config->localeConfiguration().language(), m_config->supportedLocales(), this ); dlg->exec(); if ( dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) { - m_selectedLocaleConfiguration.setLanguage( dlg->selectedLCLocale() ); - m_selectedLocaleConfiguration.explicit_lang = true; - this->updateGlobalLocale(); - this->updateLocaleLabels(); + m_config->setLanguageExplicitly( dlg->selectedLCLocale() ); + updateGlobalLocale(); + updateLocaleLabels(); } dlg->deleteLater(); @@ -345,26 +303,12 @@ void LocalePage::changeFormats() { LCLocaleDialog* dlg - = new LCLocaleDialog( m_selectedLocaleConfiguration.isEmpty() ? guessLocaleConfiguration().lc_numeric - : m_selectedLocaleConfiguration.lc_numeric, - m_config->supportedLocales(), - this ); + = new LCLocaleDialog( m_config->localeConfiguration().lc_numeric, m_config->supportedLocales(), this ); dlg->exec(); if ( dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) { - // TODO: improve the granularity of this setting. - m_selectedLocaleConfiguration.lc_numeric = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_time = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_monetary = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_paper = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_name = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_address = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_telephone = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_measurement = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.lc_identification = dlg->selectedLCLocale(); - m_selectedLocaleConfiguration.explicit_lc = true; - - this->updateLocaleLabels(); + m_config->setLCLocaleExplicitly( dlg->selectedLCLocale() ); + updateLocaleLabels(); } dlg->deleteLater(); diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 3d4b1d03f..9690c4d97 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -50,8 +50,6 @@ public: void onActivate(); private: - LocaleConfiguration guessLocaleConfiguration() const; - /// @brief Non-owning pointer to the ViewStep's config Config* m_config; @@ -85,7 +83,6 @@ private: QLabel* m_formatsLabel; QPushButton* m_formatsChangeButton; - LocaleConfiguration m_selectedLocaleConfiguration; bool m_blockTzWidgetSet; }; From abc98cfa796f4c783cc0d1088000f9b98b44de5f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 14:57:09 +0200 Subject: [PATCH 245/335] [locale] Simplify allocation, guard against crashes if the dialog is deleted. --- src/modules/locale/LocalePage.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index d09d38540..98383b429 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -285,31 +286,31 @@ LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location ) void LocalePage::changeLocale() { - LCLocaleDialog* dlg - = new LCLocaleDialog( m_config->localeConfiguration().language(), m_config->supportedLocales(), this ); + QPointer< LCLocaleDialog > dlg( + new LCLocaleDialog( m_config->localeConfiguration().language(), m_config->supportedLocales(), this ) ); dlg->exec(); - if ( dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) + if ( dlg && dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) { m_config->setLanguageExplicitly( dlg->selectedLCLocale() ); updateGlobalLocale(); updateLocaleLabels(); } - dlg->deleteLater(); + delete dlg; } void LocalePage::changeFormats() { - LCLocaleDialog* dlg - = new LCLocaleDialog( m_config->localeConfiguration().lc_numeric, m_config->supportedLocales(), this ); + QPointer< LCLocaleDialog > dlg( + new LCLocaleDialog( m_config->localeConfiguration().lc_numeric, m_config->supportedLocales(), this ) ); dlg->exec(); - if ( dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) + if ( dlg && dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) { m_config->setLCLocaleExplicitly( dlg->selectedLCLocale() ); updateLocaleLabels(); } - dlg->deleteLater(); + delete dlg; } From 855b21a7dbcf67a4f391886fa3c8ea36d93ee0bd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 15:35:38 +0200 Subject: [PATCH 246/335] [locale] Remove redundant method - configuration information lives in the Config object --- src/modules/locale/LocalePage.cpp | 8 -------- src/modules/locale/LocalePage.h | 2 -- src/modules/locale/LocaleViewStep.cpp | 2 +- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 98383b429..58ea4a81c 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -171,14 +171,6 @@ LocalePage::prettyStatus() const return status; } - -QMap< QString, QString > -LocalePage::localesMap() -{ - return m_config->localeConfiguration().toMap(); -} - - void LocalePage::onActivate() { diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 9690c4d97..3a4dd93a9 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -45,8 +45,6 @@ public: QString prettyStatus() const; - QMap< QString, QString > localesMap(); - void onActivate(); private: diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index e17c7b004..c7ed8766b 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -169,7 +169,7 @@ LocaleViewStep::onLeave() m_jobs = m_config->createJobs(); m_prettyStatus = m_actualWidget->prettyStatus(); - auto map = m_actualWidget->localesMap(); + auto map = m_config->localeConfiguration().toMap(); QVariantMap vm; for ( auto it = map.constBegin(); it != map.constEnd(); ++it ) { From ef08ff6ac09cb3f10937a6001f2dd08d6c198980 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 15:51:49 +0200 Subject: [PATCH 247/335] [locale] Move status strings from Page to Config - the config knows the status and how to describe it, fetch the strings from there. --- src/modules/locale/Config.cpp | 28 +++++++++++++++++++++++++++ src/modules/locale/Config.h | 13 +++++++++++++ src/modules/locale/LocalePage.cpp | 28 +-------------------------- src/modules/locale/LocalePage.h | 6 ------ src/modules/locale/LocaleViewStep.cpp | 2 +- 5 files changed, 43 insertions(+), 34 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index c19569d43..8893d387a 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -22,6 +22,7 @@ #include "SetTimezoneJob.h" +#include "locale/Label.h" #include "utils/Logger.h" #include "utils/Variant.h" @@ -245,6 +246,33 @@ Config::setLCLocaleExplicitly( const QString& locale ) m_selectedLocaleConfiguration.explicit_lc = true; } +std::pair< QString, QString > +Config::prettyLocaleStatus() const +{ + using CalamaresUtils::Locale::Label; + + Label lang( m_selectedLocaleConfiguration.language(), Label::LabelFormat::AlwaysWithCountry ); + Label num( m_selectedLocaleConfiguration.lc_numeric, Label::LabelFormat::AlwaysWithCountry ); + + return std::make_pair< QString, QString >( + 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 +Config::prettyStatus() const +{ + QString br( QStringLiteral("
")); + QString status; + status += tr( "Set timezone to %1/%2." ).arg( m_currentLocation->region(), m_currentLocation->zone() ) + br; + + auto labels = prettyLocaleStatus(); + status += labels.first + br; + status += labels.second + br; + + return status; +} + void Config::setConfigurationMap( const QVariantMap& configurationMap ) diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index ff9125c13..91ed8f1be 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -47,6 +47,19 @@ public: void setConfigurationMap( const QVariantMap& ); Calamares::JobList createJobs(); + /** @brief Human-readable status for language and LC + * + * For the current locale config, return two strings describing + * the settings for language and numbers. + */ + std::pair< QString, QString > prettyLocaleStatus() const; + /** @brief Human-readable zone, language and LC status + * + * Concatenates all three strings with
+ */ + QString prettyStatus() const; + + public Q_SLOTS: const QStringList& supportedLocales() const { return m_localeGenLines; } CalamaresUtils::Locale::CStringListModel* regionModel() const { return m_regionModel.get(); } diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 58ea4a81c..fb3433d23 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -138,38 +138,12 @@ LocalePage::updateLocaleLabels() m_localeChangeButton->setText( tr( "&Change..." ) ); m_formatsChangeButton->setText( tr( "&Change..." ) ); - LocaleConfiguration lc = m_config->localeConfiguration(); - auto labels = prettyLocaleStatus( lc ); + auto labels = m_config->prettyLocaleStatus(); m_localeLabel->setText( labels.first ); m_formatsLabel->setText( labels.second ); } -std::pair< QString, QString > -LocalePage::prettyLocaleStatus( const LocaleConfiguration& lc ) const -{ - using CalamaresUtils::Locale::Label; - - Label lang( lc.language(), Label::LabelFormat::AlwaysWithCountry ); - Label num( lc.lc_numeric, Label::LabelFormat::AlwaysWithCountry ); - - return std::make_pair< QString, QString >( - 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 -LocalePage::prettyStatus() const -{ - QString status; - status += tr( "Set timezone to %1/%2.
" ).arg( m_regionCombo->currentText() ).arg( m_zoneCombo->currentText() ); - - LocaleConfiguration lc = m_config->localeConfiguration(); - auto labels = prettyLocaleStatus( lc ); - status += labels.first + "
"; - status += labels.second + "
"; - - return status; -} void LocalePage::onActivate() diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 3a4dd93a9..b40aeb465 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -43,18 +43,12 @@ public: explicit LocalePage( class Config* config, QWidget* parent = nullptr ); virtual ~LocalePage(); - QString prettyStatus() const; - void onActivate(); private: /// @brief Non-owning pointer to the ViewStep's config Config* m_config; - // For the given locale config, return two strings describing - // the settings for language and numbers. - std::pair< QString, QString > prettyLocaleStatus( const LocaleConfiguration& ) const; - /** @brief Update the GS *locale* key with the selected system language. * * This uses whatever is set in m_selectedLocaleConfiguration as the language, diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index c7ed8766b..00752ebb6 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -167,7 +167,7 @@ LocaleViewStep::onLeave() if ( m_actualWidget ) { m_jobs = m_config->createJobs(); - m_prettyStatus = m_actualWidget->prettyStatus(); + m_prettyStatus = m_config->prettyStatus(); auto map = m_config->localeConfiguration().toMap(); QVariantMap vm; From f7c2e4a3e77221acf9ebe016acbb7da44ff87cf1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 16:27:21 +0200 Subject: [PATCH 248/335] [locale] Sanitize Config signals and slots - remove the weirdly-structured prettyStatus and similar: the Config object has human-readable status strings (three, for location, language, and LC-formats) which can be normal properties with signals. - Implement prettyStatus in the view step by querying the Config. --- src/modules/locale/Config.cpp | 43 +++++++++++------- src/modules/locale/Config.h | 64 ++++++++++++++------------- src/modules/locale/LocalePage.cpp | 9 ++-- src/modules/locale/LocaleViewStep.cpp | 4 +- src/modules/locale/LocaleViewStep.h | 1 - 5 files changed, 65 insertions(+), 56 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 8893d387a..cdd4e767f 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -192,6 +192,7 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) if ( !m_selectedLocaleConfiguration.explicit_lang ) { m_selectedLocaleConfiguration.setLanguage( newLocale.language() ); + emit currentLanguageStatusChanged( currentLanguageStatus() ); } if ( !m_selectedLocaleConfiguration.explicit_lc ) { @@ -204,6 +205,8 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) m_selectedLocaleConfiguration.lc_telephone = newLocale.lc_telephone; m_selectedLocaleConfiguration.lc_measurement = newLocale.lc_measurement; m_selectedLocaleConfiguration.lc_identification = newLocale.lc_identification; + + emit currentLCStatusChanged( currentLCStatus() ); } emit currentLocationChanged( m_currentLocation ); } @@ -228,6 +231,8 @@ Config::setLanguageExplicitly( const QString& language ) { m_selectedLocaleConfiguration.setLanguage( language ); m_selectedLocaleConfiguration.explicit_lang = true; + + emit currentLanguageStatusChanged( currentLanguageStatus() ); } void @@ -244,33 +249,37 @@ Config::setLCLocaleExplicitly( const QString& locale ) m_selectedLocaleConfiguration.lc_measurement = locale; m_selectedLocaleConfiguration.lc_identification = locale; m_selectedLocaleConfiguration.explicit_lc = true; + + emit currentLCStatusChanged( currentLCStatus() ); } -std::pair< QString, QString > -Config::prettyLocaleStatus() const +QString +Config::currentLocationStatus() const { - using CalamaresUtils::Locale::Label; + return tr( "Set timezone to %1/%2." ).arg( m_currentLocation->region(), m_currentLocation->zone() ); +} - Label lang( m_selectedLocaleConfiguration.language(), Label::LabelFormat::AlwaysWithCountry ); - Label num( m_selectedLocaleConfiguration.lc_numeric, Label::LabelFormat::AlwaysWithCountry ); +static inline QString +localeLabel( const QString& s ) +{ + using CalamaresUtils::Locale::Label; - return std::make_pair< QString, QString >( - 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() ) ); + Label lang( s, Label::LabelFormat::AlwaysWithCountry ); + return lang.label(); } QString -Config::prettyStatus() const +Config::currentLanguageStatus() const { - QString br( QStringLiteral("
")); - QString status; - status += tr( "Set timezone to %1/%2." ).arg( m_currentLocation->region(), m_currentLocation->zone() ) + br; - - auto labels = prettyLocaleStatus(); - status += labels.first + br; - status += labels.second + br; + return tr( "The system language will be set to %1." ) + .arg( localeLabel( m_selectedLocaleConfiguration.language() ) ); +} - return status; +QString +Config::currentLCStatus() const +{ + return tr( "The numbers and dates locale will be set to %1." ) + .arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) ); } diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 91ed8f1be..c4a512100 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -36,10 +36,14 @@ class Config : public QObject Q_PROPERTY( const QStringList& supportedLocales READ supportedLocales CONSTANT FINAL ) Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* zonesModel READ zonesModel CONSTANT FINAL ) Q_PROPERTY( CalamaresUtils::Locale::CStringListModel* regionModel READ regionModel CONSTANT FINAL ) - Q_PROPERTY( const CalamaresUtils::Locale::CStringPairList& timezoneData READ timezoneData CONSTANT FINAL ) + Q_PROPERTY( const CalamaresUtils::Locale::TZZone* currentLocation READ currentLocation WRITE setCurrentLocation NOTIFY currentLocationChanged ) + Q_PROPERTY( QString currentLocationStatus READ currentLocationStatus NOTIFY currentLanguageStatusChanged ) + Q_PROPERTY( QString currentLanguageStatus READ currentLanguageStatus NOTIFY currentLanguageStatusChanged ) + Q_PROPERTY( QString currentLCStatus READ currentLCStatus NOTIFY currentLCStatusChanged ) + public: Config( QObject* parent = nullptr ); ~Config(); @@ -47,25 +51,37 @@ public: void setConfigurationMap( const QVariantMap& ); Calamares::JobList createJobs(); - /** @brief Human-readable status for language and LC - * - * For the current locale config, return two strings describing - * the settings for language and numbers. - */ - std::pair< QString, QString > prettyLocaleStatus() const; - /** @brief Human-readable zone, language and LC status + // Underlying data for the models + const CalamaresUtils::Locale::CStringPairList& timezoneData() const; + + /** @brief The currently selected location (timezone) * - * Concatenates all three strings with
+ * The location is a pointer into the date that timezoneData() returns. + * It is possible to return nullptr, if no location has been picked yet. */ - QString prettyStatus() const; + const CalamaresUtils::Locale::TZZone* currentLocation() const { return m_currentLocation; } + /// locale configuration (LC_* and LANG) based solely on the current location. + LocaleConfiguration automaticLocaleConfiguration() const; + /// locale configuration that takes explicit settings into account + LocaleConfiguration localeConfiguration() const; + + /// The human-readable description of what timezone is used + QString currentLocationStatus() const; + /// The human-readable description of what language is used + QString currentLanguageStatus() const; + /// The human-readable description of what locale (LC_*) is used + QString currentLCStatus() const; -public Q_SLOTS: const QStringList& supportedLocales() const { return m_localeGenLines; } CalamaresUtils::Locale::CStringListModel* regionModel() const { return m_regionModel.get(); } CalamaresUtils::Locale::CStringListModel* zonesModel() const { return m_zonesModel.get(); } - // Underlying data for the models - const CalamaresUtils::Locale::CStringPairList& timezoneData() const; + +public Q_SLOTS: + /// Set a language by user-choice, overriding future location changes + void setLanguageExplicitly( const QString& language ); + /// Set LC (formats) by user-choice, overriding future location changes + void setLCLocaleExplicitly( const QString& locale ); /** @brief Sets a location by name * @@ -82,25 +98,11 @@ public Q_SLOTS: */ void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ); - /** @brief The currently selected location (timezone) - * - * The location is a pointer into the date that timezoneData() returns. - * It is possible to return nullptr, if no location has been picked yet. - */ - const CalamaresUtils::Locale::TZZone* currentLocation() const { return m_currentLocation; } - - /// locale configuration (LC_* and LANG) based solely on the current location. - LocaleConfiguration automaticLocaleConfiguration() const; - /// locale configuration that takes explicit settings into account - LocaleConfiguration localeConfiguration() const; - - /// Set a language by user-choice, overriding future location changes - void setLanguageExplicitly( const QString& language ); - /// Set LC (formats) by user-choice, overriding future location changes - void setLCLocaleExplicitly( const QString& locale ); - signals: - void currentLocationChanged( const CalamaresUtils::Locale::TZZone* location ); + void currentLocationChanged( const CalamaresUtils::Locale::TZZone* location ) const; + void currentLocationStatusChanged( const QString& ) const; + void currentLanguageStatusChanged( const QString& ) const; + void currentLCStatusChanged( const QString& ) const; private: /// A list of supported locale identifiers (e.g. "en_US.UTF-8") diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index fb3433d23..c312f39f6 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -106,6 +106,8 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) setMinimumWidth( m_tzWidget->width() ); setLayout( mainLayout ); + connect( config, &Config::currentLCStatusChanged, m_formatsLabel, &QLabel::setText ); + connect( config, &Config::currentLanguageStatusChanged, m_localeLabel, &QLabel::setText ); connect( config, &Config::currentLocationChanged, m_tzWidget, &TimeZoneWidget::setCurrentLocation ); connect( config, &Config::currentLocationChanged, this, &LocalePage::locationChanged ); connect( m_tzWidget, @@ -137,14 +139,11 @@ LocalePage::updateLocaleLabels() m_zoneLabel->setText( tr( "Zone:" ) ); m_localeChangeButton->setText( tr( "&Change..." ) ); m_formatsChangeButton->setText( tr( "&Change..." ) ); - - auto labels = m_config->prettyLocaleStatus(); - m_localeLabel->setText( labels.first ); - m_formatsLabel->setText( labels.second ); + m_localeLabel->setText( m_config->currentLanguageStatus() ); + m_formatsLabel->setText( m_config->currentLCStatus() ); } - void LocalePage::onActivate() { diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 00752ebb6..31f8eb8bd 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -104,7 +104,8 @@ LocaleViewStep::prettyName() const QString LocaleViewStep::prettyStatus() const { - return m_prettyStatus; + QStringList l { m_config->currentLocationStatus(), m_config->currentLanguageStatus(), m_config->currentLCStatus() }; + return l.join( QStringLiteral( "
" ) ); } @@ -167,7 +168,6 @@ LocaleViewStep::onLeave() if ( m_actualWidget ) { m_jobs = m_config->createJobs(); - m_prettyStatus = m_config->prettyStatus(); auto map = m_config->localeConfiguration().toMap(); QVariantMap vm; diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index 24764b172..cb1902f2e 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -70,7 +70,6 @@ private: LocalePage* m_actualWidget; bool m_nextEnabled; - QString m_prettyStatus; Calamares::JobList m_jobs; From 1de2210d29e4403d57fadf538c8a6ca82df3a5c8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 17:37:09 +0200 Subject: [PATCH 249/335] [locale] Move the GS updating to the Config object - since all locale changes need to be entered into GS anyway, this is something the Config object can do because it is the source of truth for locale settings. - drop all the GS settings from the Page. --- src/modules/locale/Config.cpp | 33 ++++++++++++++++++++++++ src/modules/locale/LocalePage.cpp | 42 ------------------------------- src/modules/locale/LocalePage.h | 7 ------ 3 files changed, 33 insertions(+), 49 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index cdd4e767f..5fa8b3c8b 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -22,6 +22,9 @@ #include "SetTimezoneJob.h" +#include "GlobalStorage.h" +#include "JobQueue.h" +#include "Settings.h" #include "locale/Label.h" #include "utils/Logger.h" #include "utils/Variant.h" @@ -154,6 +157,36 @@ Config::Config( QObject* parent ) , m_regionModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >( ::timezoneData() ) ) , m_zonesModel( std::make_unique< CalamaresUtils::Locale::CStringListModel >() ) { + // Slightly unusual: connect to our *own* signals. Wherever the language + // or the location is changed, these signals are emitted, so hook up to + // them to update global storage accordingly. This simplifies code: + // we don't need to call an update-GS method, or introduce an intermediate + // update-thing-and-GS method. And everywhere where we **do** change + // language or location, we already emit the signal. + connect( this, &Config::currentLanguageStatusChanged, [&]() { + auto* gs = Calamares::JobQueue::instance()->globalStorage(); + gs->insert( "locale", m_selectedLocaleConfiguration.toBcp47() ); + } ); + + connect( this, &Config::currentLocationChanged, [&]() { + auto* gs = Calamares::JobQueue::instance()->globalStorage(); + const auto* location = currentLocation(); + bool locationChanged = ( location->region() != gs->value( "locationRegion" ) ) + || ( location->zone() != gs->value( "locationZone" ) ); + + gs->insert( "locationRegion", location->region() ); + gs->insert( "locationZone", location->zone() ); + + // If we're in chroot mode (normal install mode), then we immediately set the + // timezone on the live system. When debugging timezones, don't bother. +#ifndef DEBUG_TIMEZONES + if ( locationChanged && Calamares::Settings::instance()->doChroot() ) + { + QProcess::execute( "timedatectl", // depends on systemd + { "set-timezone", location->region() + '/' + location->zone() } ); + } +#endif + } ); } Config::~Config() {} diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index c312f39f6..0ea56a072 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -125,7 +125,6 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) m_regionCombo->setModel( m_config->regionModel() ); m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); - updateGlobalStorage(); } @@ -148,47 +147,10 @@ void LocalePage::onActivate() { m_regionCombo->setFocus(); - updateGlobalLocale(); updateLocaleLabels(); } -void -LocalePage::updateGlobalLocale() -{ - auto* gs = Calamares::JobQueue::instance()->globalStorage(); - const QString bcp47 = m_config->localeConfiguration().toBcp47(); - gs->insert( "locale", bcp47 ); -} - - -void -LocalePage::updateGlobalStorage() -{ - auto* gs = Calamares::JobQueue::instance()->globalStorage(); - - const auto* location = m_config->currentLocation(); - bool locationChanged = ( location->region() != gs->value( "locationRegion" ) ) - || ( location->zone() != gs->value( "locationZone" ) ); - - gs->insert( "locationRegion", location->region() ); - gs->insert( "locationZone", location->zone() ); - - updateGlobalLocale(); - - // If we're in chroot mode (normal install mode), then we immediately set the - // timezone on the live system. When debugging timezones, don't bother. -#ifndef DEBUG_TIMEZONES - if ( locationChanged && Calamares::Settings::instance()->doChroot() ) - { - QProcess::execute( "timedatectl", // depends on systemd - { "set-timezone", location->region() + '/' + location->zone() } ); - } -#endif - - updateLocaleLabels(); -} - void LocalePage::regionChanged( int currentIndex ) { @@ -219,7 +181,6 @@ LocalePage::zoneChanged( int currentIndex ) { m_config->setCurrentLocation( m_regionCombo->currentData().toString(), m_zoneCombo->currentData().toString() ); } - updateGlobalStorage(); } void @@ -244,8 +205,6 @@ LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location ) } m_zoneCombo->setCurrentIndex( index ); - - updateGlobalStorage(); } void @@ -257,7 +216,6 @@ LocalePage::changeLocale() if ( dlg && dlg->result() == QDialog::Accepted && !dlg->selectedLCLocale().isEmpty() ) { m_config->setLanguageExplicitly( dlg->selectedLCLocale() ); - updateGlobalLocale(); updateLocaleLabels(); } diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index b40aeb465..bf41f8f69 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -49,13 +49,6 @@ private: /// @brief Non-owning pointer to the ViewStep's config Config* m_config; - /** @brief Update the GS *locale* key with the selected system language. - * - * This uses whatever is set in m_selectedLocaleConfiguration as the language, - * and writes it to GS *locale* key (as a string, in BCP47 format). - */ - void updateGlobalLocale(); - void updateGlobalStorage(); void updateLocaleLabels(); void regionChanged( int currentIndex ); From 995ebd5c834d564a2b0f128f5ad1212ed562a515 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 21 Jul 2020 17:44:44 +0200 Subject: [PATCH 250/335] [locale] Remove unused #includes --- src/modules/locale/LocalePage.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 0ea56a072..3999599c9 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -20,15 +20,9 @@ #include "LocalePage.h" #include "Config.h" -#include "SetTimezoneJob.h" +#include "LCLocaleDialog.h" #include "timezonewidget/timezonewidget.h" -#include "GlobalStorage.h" -#include "JobQueue.h" -#include "LCLocaleDialog.h" -#include "Settings.h" -#include "locale/Label.h" -#include "locale/TimeZone.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" #include "utils/RAII.h" @@ -36,10 +30,8 @@ #include #include -#include #include #include -#include #include LocalePage::LocalePage( Config* config, QWidget* parent ) From f6419d5de123077a5961de9b481fefba6b7b551f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 00:06:56 +0200 Subject: [PATCH 251/335] [locale] New setting *adjustLiveTimezone* - allow finer-grained control over whether-or-not to adjust the timezone in the live system. - handle some special cases at the point of loading-configuration. - document the setting in locale.conf - correct some documentation bugs - adjust the YAML schema for locale.conf so it's legal YAML syntax **and** validates the current file. --- src/modules/locale/Config.cpp | 23 ++++++++++++++---- src/modules/locale/Config.h | 7 ++++++ src/modules/locale/locale.conf | 17 ++++++++++--- src/modules/locale/locale.schema.yaml | 35 ++++++++++++++++++++++++--- 4 files changed, 69 insertions(+), 13 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 5fa8b3c8b..4a2923081 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -177,15 +177,11 @@ Config::Config( QObject* parent ) gs->insert( "locationRegion", location->region() ); gs->insert( "locationZone", location->zone() ); - // If we're in chroot mode (normal install mode), then we immediately set the - // timezone on the live system. When debugging timezones, don't bother. -#ifndef DEBUG_TIMEZONES - if ( locationChanged && Calamares::Settings::instance()->doChroot() ) + if ( locationChanged && m_adjustLiveTimezone ) { QProcess::execute( "timedatectl", // depends on systemd { "set-timezone", location->region() + '/' + location->zone() } ); } -#endif } ); } @@ -325,6 +321,23 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) localeGenPath = QStringLiteral( "/etc/locale.gen" ); } m_localeGenLines = loadLocales( localeGenPath ); + + m_adjustLiveTimezone + = CalamaresUtils::getBool( configurationMap, "adjustLiveTimezone", Calamares::Settings::instance()->doChroot() ); +#ifdef DEBUG_TIMEZONES + if ( m_adjustLiveTimezone ) + { + cDebug() << "Turning off live-timezone adjustments because debugging is on."; + m_adjustLiveTimezone = false; + } +#endif +#ifdef __FreeBSD__ + if ( m_adjustLiveTimezone ) + { + cDebug() << "Turning off live-timezone adjustments on FreeBSD."; + m_adjustLiveTimezone = false; + } +#endif } Calamares::JobList diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index c4a512100..c8710f4a9 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -126,6 +126,13 @@ private: * pick Ukranian settings, for instance). */ LocaleConfiguration m_selectedLocaleConfiguration; + + /** @brief Should we adjust the "live" timezone when the location changes? + * + * In the Widgets UI, clicking around on the world map adjusts the + * timezone, and the live system can be made to follow that. + */ + bool m_adjustLiveTimezone; }; diff --git a/src/modules/locale/locale.conf b/src/modules/locale/locale.conf index dc68a050f..572326f0b 100644 --- a/src/modules/locale/locale.conf +++ b/src/modules/locale/locale.conf @@ -1,5 +1,5 @@ --- -# This settings are used to set your default system time zone. +# These settings are used to set your default system time zone. # Time zones are usually located under /usr/share/zoneinfo and # provided by the 'tzdata' package of your Distribution. # @@ -14,17 +14,26 @@ region: "America" zone: "New_York" +# Should changing the system location (e.g. clicking around on the timezone +# map) immediately reflect the changed timezone in the live system? +# By default, installers (with a target system) do, and setup (e.g. OEM +# configuration) does not, but you can switch it on here (or off, if +# you think it's annoying in the installer). +# +# Note that not all systems support live adjustment. +# +# adjustLiveTimezone: true # System locales are detected in the following order: # # - /usr/share/i18n/SUPPORTED # - localeGenPath (defaults to /etc/locale.gen if not set) -# - 'locale -a' output +# - `locale -a` output # -# Enable only when your Distribution is using an +# Enable only when your Distribution is using a # custom path for locale.gen # -#localeGenPath: "PATH_TO/locale.gen" +#localeGenPath: "/etc/locale.gen" # GeoIP based Language settings: Leave commented out to disable GeoIP. # diff --git a/src/modules/locale/locale.schema.yaml b/src/modules/locale/locale.schema.yaml index 41c3ad487..6eadb5c85 100644 --- a/src/modules/locale/locale.schema.yaml +++ b/src/modules/locale/locale.schema.yaml @@ -4,7 +4,34 @@ $id: https://calamares.io/schemas/locale additionalProperties: false type: object properties: - "region": { type: str } - "zone": { type: str } - "localeGenPath": { type: string, required: true } - "geoipUrl": { type: str } + region: { type: string, + enum: [ + Africa, + America, + Antarctica, + Arctic, + Asia, + Atlantic, + Australia, + Europe, + Indian, + Pacific + ] + } + zone: { type: string } + + adjustLiveTimezone: { type: boolean, default: true } + + localeGenPath: { type: string } + + # TODO: refactor, this is reused in welcome + geoip: + additionalProperties: false + type: object + properties: + style: { type: string, enum: [ none, fixed, xml, json ] } + url: { type: string } + selector: { type: string } + required: [ style, url, selector ] + +required: [ region, zone ] From 0c9480aa3f0fe7f17704354134f573fa2fd31ddf Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 00:23:50 +0200 Subject: [PATCH 252/335] [locale] Move more business logic to Config - writing *localeConf* settings to GS can be done always when the formats are set, rather than special-cased. The code that handles the "special case" of no widget existing for the ViewStep overlooks the other crashes that happen then. - Since Config knows what jobs to create, just ask it rather than keeping a copy. --- src/modules/locale/Config.cpp | 12 +++++++++++- src/modules/locale/LocaleViewStep.cpp | 20 +------------------- src/modules/locale/LocaleViewStep.h | 2 -- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 4a2923081..cb0fe7734 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -170,18 +170,28 @@ Config::Config( QObject* parent ) connect( this, &Config::currentLocationChanged, [&]() { auto* gs = Calamares::JobQueue::instance()->globalStorage(); + + // Update the GS region and zone (and possibly the live timezone) const auto* location = currentLocation(); bool locationChanged = ( location->region() != gs->value( "locationRegion" ) ) || ( location->zone() != gs->value( "locationZone" ) ); gs->insert( "locationRegion", location->region() ); gs->insert( "locationZone", location->zone() ); - if ( locationChanged && m_adjustLiveTimezone ) { QProcess::execute( "timedatectl", // depends on systemd { "set-timezone", location->region() + '/' + location->zone() } ); } + + // Update GS localeConf (the LC_ variables) + auto map = localeConfiguration().toMap(); + QVariantMap vm; + for ( auto it = map.constBegin(); it != map.constEnd(); ++it ) + { + vm.insert( it.key(), it.value() ); + } + gs->insert( "localeConf", vm ); } ); } diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 31f8eb8bd..5baf68b43 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -147,7 +147,7 @@ LocaleViewStep::isAtEnd() const Calamares::JobList LocaleViewStep::jobs() const { - return m_jobs; + return m_config->createJobs(); } @@ -165,24 +165,6 @@ LocaleViewStep::onActivate() void LocaleViewStep::onLeave() { - if ( m_actualWidget ) - { - m_jobs = m_config->createJobs(); - - auto map = m_config->localeConfiguration().toMap(); - QVariantMap vm; - for ( auto it = map.constBegin(); it != map.constEnd(); ++it ) - { - vm.insert( it.key(), it.value() ); - } - - Calamares::JobQueue::instance()->globalStorage()->insert( "localeConf", vm ); - } - else - { - m_jobs.clear(); - Calamares::JobQueue::instance()->globalStorage()->remove( "localeConf" ); - } } diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index cb1902f2e..a1456764f 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -71,8 +71,6 @@ private: LocalePage* m_actualWidget; bool m_nextEnabled; - Calamares::JobList m_jobs; - CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; From 781d76c9e540a346f7cf6dd6cb9643a74bd0f51c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 00:32:29 +0200 Subject: [PATCH 253/335] [locale] Avoid nullptr if there is no location --- src/modules/locale/Config.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index cb0fe7734..0898a77f2 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -255,6 +255,11 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) LocaleConfiguration Config::automaticLocaleConfiguration() const { + // Special case: no location has been set at **all** + if ( !currentLocation() ) + { + return LocaleConfiguration(); + } return LocaleConfiguration::fromLanguageAndLocation( QLocale().name(), supportedLocales(), currentLocation()->country() ); } From b607cf3f98c1cad911d84ebff116c37d97123834 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 01:26:15 +0200 Subject: [PATCH 254/335] [locale] Get starting TZ in Config - read the *region* and *zone* settings; this duplicates what the ViewStep does and is currently unused, but .. - add new support for using the system's TZ (rather than the fixed values from *region* and *zone*). This complements GeoIP lookup. This is the actual feature that started the long rewrite of the Config object (so that all the business logic would be in one place, usable for both widgets and QML). FIXES #1381 --- src/modules/locale/Config.cpp | 26 ++++++++++++++++++++++++-- src/modules/locale/Config.h | 5 +++++ src/modules/locale/locale.conf | 12 ++++++++++++ src/modules/locale/locale.schema.yaml | 1 + 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 0898a77f2..0ecd7e049 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -31,6 +31,7 @@ #include #include +#include /** @brief Load supported locale keys * @@ -342,17 +343,38 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) #ifdef DEBUG_TIMEZONES if ( m_adjustLiveTimezone ) { - cDebug() << "Turning off live-timezone adjustments because debugging is on."; + cWarning() << "Turning off live-timezone adjustments because debugging is on."; m_adjustLiveTimezone = false; } #endif #ifdef __FreeBSD__ if ( m_adjustLiveTimezone ) { - cDebug() << "Turning off live-timezone adjustments on FreeBSD."; + cWarning() << "Turning off live-timezone adjustments on FreeBSD."; m_adjustLiveTimezone = false; } #endif + + QString region = CalamaresUtils::getString( configurationMap, "region" ); + QString zone = CalamaresUtils::getString( configurationMap, "zone" ); + if ( !region.isEmpty() && !zone.isEmpty() ) + { + m_startingTimezone = CalamaresUtils::GeoIP::RegionZonePair( region, zone ); + } + else + { + m_startingTimezone + = CalamaresUtils::GeoIP::RegionZonePair( QStringLiteral( "America" ), QStringLiteral( "New_York" ) ); + } + + if ( CalamaresUtils::getBool( configurationMap, "useSystemTimezone", false ) ) + { + auto systemtz = CalamaresUtils::GeoIP::splitTZString( QTimeZone::systemTimeZoneId() ); + if ( systemtz.isValid() ) + { + m_startingTimezone = systemtz; + } + } } Calamares::JobList diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index c8710f4a9..7e634a4a8 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -24,6 +24,7 @@ #include "LocaleConfiguration.h" #include "Job.h" +#include "geoip/Interface.h" #include "locale/TimeZone.h" #include @@ -133,6 +134,10 @@ private: * timezone, and the live system can be made to follow that. */ bool m_adjustLiveTimezone; + + /** @brief The initial timezone (region, zone) specified in the config. + */ + CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; }; diff --git a/src/modules/locale/locale.conf b/src/modules/locale/locale.conf index 572326f0b..8236a879b 100644 --- a/src/modules/locale/locale.conf +++ b/src/modules/locale/locale.conf @@ -11,9 +11,21 @@ # the locale page can be set through keys *region* and *zone*. # If either is not set, defaults to America/New_York. # +# Note that useSystemTimezone and GeoIP settings can change the +# starting time zone. +# region: "America" zone: "New_York" +# Instead of using *region* and *zone* specified above, +# you can use the system's notion of the timezone, instead. +# This can help if your system is automatically configured with +# a sensible TZ rather than chasing a fixed default. +# +# The default is false. +# +# useSystemTimezone: true + # Should changing the system location (e.g. clicking around on the timezone # map) immediately reflect the changed timezone in the live system? # By default, installers (with a target system) do, and setup (e.g. OEM diff --git a/src/modules/locale/locale.schema.yaml b/src/modules/locale/locale.schema.yaml index 6eadb5c85..d6c35020f 100644 --- a/src/modules/locale/locale.schema.yaml +++ b/src/modules/locale/locale.schema.yaml @@ -19,6 +19,7 @@ properties: ] } zone: { type: string } + useSystemTimezone: { type: boolean, default: false } adjustLiveTimezone: { type: boolean, default: true } From f64a1eb16ada6920999e8cf2eb5e60ee412bc9fa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 11:52:42 +0200 Subject: [PATCH 255/335] [libcalamaresui] Document the signals from ModuleManager --- .../modulesystem/ModuleManager.h | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index 2c51e70f7..2bac78af6 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -103,10 +103,36 @@ public: RequirementsModel* requirementsModel() { return m_requirementsModel; } signals: + /** @brief Emitted when all the module **configuration** has been read + * + * This indicates that all of the module.desc files have been + * loaded; bad ones are silently skipped, so this just indicates + * that the module manager is ready for the next phase (loading). + */ void initDone(); - void modulesLoaded(); /// All of the modules were loaded successfully - void modulesFailed( QStringList ); /// .. or not - // Below, see RequirementsChecker documentation + /** @brief Emitted when all the modules are loaded successfully + * + * Each module listed in the settings is loaded. Modules are loaded + * only once, even when instantiated multiple times. If all of + * the listed modules are successfully loaded, this signal is + * emitted (otherwise, it isn't, so you need to wait for **both** + * of the signals). + * + * If this is emitted (i.e. all modules have loaded) then the next + * phase, requirements checking, can be started. + */ + void modulesLoaded(); + /** @brief Emitted if any modules failed to load + * + * Modules that failed to load (for any reason) are listed by + * instance key (e.g. "welcome@welcome", "shellprocess@mycustomthing"). + */ + void modulesFailed( QStringList ); + /** @brief Emitted after all requirements have been checked + * + * The bool value indicates if all of the **mandatory** requirements + * are satisfied (e.g. whether installation can continue). + */ void requirementsComplete( bool ); private slots: From a25d61077fa09d835387caa9384a6f7a054ed315 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 11:53:06 +0200 Subject: [PATCH 256/335] [locale] Add GeoIP settings to Config - this doesn't do the lookup **yet** - while here, refactor setConfigurationMap so it reads like a story, with chunks bitten out into a handful of static inline void methods. --- src/modules/locale/Config.cpp | 58 ++++++++++++++++++++++++++++------- src/modules/locale/Config.h | 11 +++++++ 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 0ecd7e049..fc797c0aa 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -327,43 +327,50 @@ Config::currentLCStatus() const .arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) ); } - -void -Config::setConfigurationMap( const QVariantMap& configurationMap ) +static inline void +getLocaleGenLines( const QVariantMap& configurationMap, QStringList& localeGenLines ) { QString localeGenPath = CalamaresUtils::getString( configurationMap, "localeGenPath" ); if ( localeGenPath.isEmpty() ) { localeGenPath = QStringLiteral( "/etc/locale.gen" ); } - m_localeGenLines = loadLocales( localeGenPath ); + localeGenLines = loadLocales( localeGenPath ); +} - m_adjustLiveTimezone +static inline void +getAdjustLiveTimezone( const QVariantMap& configurationMap, bool& adjustLiveTimezone ) +{ + adjustLiveTimezone = CalamaresUtils::getBool( configurationMap, "adjustLiveTimezone", Calamares::Settings::instance()->doChroot() ); #ifdef DEBUG_TIMEZONES if ( m_adjustLiveTimezone ) { cWarning() << "Turning off live-timezone adjustments because debugging is on."; - m_adjustLiveTimezone = false; + adjustLiveTimezone = false; } #endif #ifdef __FreeBSD__ - if ( m_adjustLiveTimezone ) + if ( adjustLiveTimezone ) { cWarning() << "Turning off live-timezone adjustments on FreeBSD."; - m_adjustLiveTimezone = false; + adjustLiveTimezone = false; } #endif +} +static inline void +getStartingTimezone( const QVariantMap& configurationMap, CalamaresUtils::GeoIP::RegionZonePair& startingTimezone ) +{ QString region = CalamaresUtils::getString( configurationMap, "region" ); QString zone = CalamaresUtils::getString( configurationMap, "zone" ); if ( !region.isEmpty() && !zone.isEmpty() ) { - m_startingTimezone = CalamaresUtils::GeoIP::RegionZonePair( region, zone ); + startingTimezone = CalamaresUtils::GeoIP::RegionZonePair( region, zone ); } else { - m_startingTimezone + startingTimezone = CalamaresUtils::GeoIP::RegionZonePair( QStringLiteral( "America" ), QStringLiteral( "New_York" ) ); } @@ -372,11 +379,40 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) auto systemtz = CalamaresUtils::GeoIP::splitTZString( QTimeZone::systemTimeZoneId() ); if ( systemtz.isValid() ) { - m_startingTimezone = systemtz; + cDebug() << "Overriding configured timezone" << startingTimezone << "with system timezone" << systemtz; + startingTimezone = systemtz; } } } +static inline void +getGeoIP( const QVariantMap& configurationMap, std::unique_ptr< CalamaresUtils::GeoIP::Handler >& geoip ) +{ + bool ok = false; + QVariantMap map = CalamaresUtils::getSubMap( configurationMap, "geoip", ok ); + if ( ok ) + { + QString url = CalamaresUtils::getString( map, "url" ); + QString style = CalamaresUtils::getString( map, "style" ); + QString selector = CalamaresUtils::getString( map, "selector" ); + + geoip = std::make_unique< CalamaresUtils::GeoIP::Handler >( style, url, selector ); + if ( !geoip->isValid() ) + { + cWarning() << "GeoIP Style" << style << "is not recognized."; + } + } +} + +void +Config::setConfigurationMap( const QVariantMap& configurationMap ) +{ + getLocaleGenLines( configurationMap, m_localeGenLines ); + getAdjustLiveTimezone( configurationMap, m_adjustLiveTimezone ); + getStartingTimezone( configurationMap, m_startingTimezone ); + getGeoIP( configurationMap, m_geoip ); +} + Calamares::JobList Config::createJobs() { diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 7e634a4a8..421bb7998 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -24,6 +24,7 @@ #include "LocaleConfiguration.h" #include "Job.h" +#include "geoip/Handler.h" #include "geoip/Interface.h" #include "locale/TimeZone.h" @@ -136,8 +137,18 @@ private: bool m_adjustLiveTimezone; /** @brief The initial timezone (region, zone) specified in the config. + * + * This may be overridden by setting *useSystemTimezone* or by + * GeoIP settings. */ CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; + + /** @brief Handler for GeoIP lookup (if configured) + * + * The GeoIP lookup needs to be started at some suitable time, + * by explicitly calling *TODO* + */ + std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; }; From 42331f6e139c2b24a741a6ad60e948fd3af79f9c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 14:47:43 +0200 Subject: [PATCH 257/335] [locale] Move GeoIP lookup to config - replace the weird synchronous-lookup-during-requirements-checking with a proper async lookup when the system is ready. --- src/modules/locale/Config.cpp | 61 +++++++++++++++++++++++-- src/modules/locale/Config.h | 10 +++- src/modules/locale/LocaleViewStep.cpp | 66 +-------------------------- src/modules/locale/LocaleViewStep.h | 7 --- 4 files changed, 68 insertions(+), 76 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index fc797c0aa..42b6d616f 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -26,6 +26,8 @@ #include "JobQueue.h" #include "Settings.h" #include "locale/Label.h" +#include "modulesystem/ModuleManager.h" +#include "network/Manager.h" #include "utils/Logger.h" #include "utils/Variant.h" @@ -204,6 +206,15 @@ Config::timezoneData() const return ::timezoneData(); } +void +Config::setCurrentLocation() +{ + if ( !m_currentLocation && m_startingTimezone.isValid() ) + { + setCurrentLocation( m_startingTimezone.first, m_startingTimezone.second ); + } +} + void Config::setCurrentLocation( const QString& regionName, const QString& zoneName ) { @@ -252,7 +263,6 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ) } } - LocaleConfiguration Config::automaticLocaleConfiguration() const { @@ -341,8 +351,8 @@ getLocaleGenLines( const QVariantMap& configurationMap, QStringList& localeGenLi static inline void getAdjustLiveTimezone( const QVariantMap& configurationMap, bool& adjustLiveTimezone ) { - adjustLiveTimezone - = CalamaresUtils::getBool( configurationMap, "adjustLiveTimezone", Calamares::Settings::instance()->doChroot() ); + adjustLiveTimezone = CalamaresUtils::getBool( + configurationMap, "adjustLiveTimezone", Calamares::Settings::instance()->doChroot() ); #ifdef DEBUG_TIMEZONES if ( m_adjustLiveTimezone ) { @@ -411,6 +421,12 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) getAdjustLiveTimezone( configurationMap, m_adjustLiveTimezone ); getStartingTimezone( configurationMap, m_startingTimezone ); getGeoIP( configurationMap, m_geoip ); + + if ( m_geoip && m_geoip->isValid() ) + { + connect( + Calamares::ModuleManager::instance(), &Calamares::ModuleManager::modulesLoaded, this, &Config::startGeoIP ); + } } Calamares::JobList @@ -427,3 +443,42 @@ Config::createJobs() return list; } + +void +Config::startGeoIP() +{ + if ( m_geoip && m_geoip->isValid() ) + { + auto& network = CalamaresUtils::Network::Manager::instance(); + if ( network.hasInternet() || network.synchronousPing( m_geoip->url() ) ) + { + using Watcher = QFutureWatcher< CalamaresUtils::GeoIP::RegionZonePair >; + m_geoipWatcher = std::make_unique< Watcher >(); + m_geoipWatcher->setFuture( m_geoip->query() ); + connect( m_geoipWatcher.get(), &Watcher::finished, this, &Config::completeGeoIP ); + } + } +} + +void +Config::completeGeoIP() +{ + if ( !currentLocation() ) + { + auto r = m_geoipWatcher->result(); + if ( r.isValid() ) + { + m_startingTimezone = r; + } + else + { + cWarning() << "GeoIP returned invalid result."; + } + } + else + { + cWarning() << "GeoIP result ignored because a location is already set."; + } + m_geoipWatcher.reset(); + m_geoip.reset(); +} diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 421bb7998..3d048bc28 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -28,6 +28,7 @@ #include "geoip/Interface.h" #include "locale/TimeZone.h" +#include #include #include @@ -59,7 +60,6 @@ public: /** @brief The currently selected location (timezone) * * The location is a pointer into the date that timezoneData() returns. - * It is possible to return nullptr, if no location has been picked yet. */ const CalamaresUtils::Locale::TZZone* currentLocation() const { return m_currentLocation; } @@ -79,6 +79,9 @@ public: CalamaresUtils::Locale::CStringListModel* regionModel() const { return m_regionModel.get(); } CalamaresUtils::Locale::CStringListModel* zonesModel() const { return m_zonesModel.get(); } + /// Special case, set location from starting timezone if not already set + void setCurrentLocation(); + public Q_SLOTS: /// Set a language by user-choice, overriding future location changes void setLanguageExplicitly( const QString& language ); @@ -149,6 +152,11 @@ private: * by explicitly calling *TODO* */ std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; + + // Implementation details for doing GeoIP lookup + void startGeoIP(); + void completeGeoIP(); + std::unique_ptr< QFutureWatcher< CalamaresUtils::GeoIP::RegionZonePair > > m_geoipWatcher; }; diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 5baf68b43..8ae894aa8 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -43,7 +43,6 @@ LocaleViewStep::LocaleViewStep( QObject* parent ) , m_widget( new QWidget() ) , m_actualWidget( nullptr ) , m_nextEnabled( false ) - , m_geoip( nullptr ) , m_config( std::make_unique< Config >() ) { QBoxLayout* mainLayout = new QHBoxLayout; @@ -66,11 +65,11 @@ LocaleViewStep::~LocaleViewStep() void LocaleViewStep::setUpPage() { + m_config->setCurrentLocation(); if ( !m_actualWidget ) { m_actualWidget = new LocalePage( m_config.get() ); } - m_config->setCurrentLocation( m_startingTimezone.first, m_startingTimezone.second ); m_widget->layout()->addWidget( m_actualWidget ); ensureSize( m_actualWidget->sizeHint() ); @@ -80,20 +79,6 @@ LocaleViewStep::setUpPage() } -void -LocaleViewStep::fetchGeoIpTimezone() -{ - if ( m_geoip && m_geoip->isValid() ) - { - m_startingTimezone = m_geoip->get(); - if ( !m_startingTimezone.isValid() ) - { - cWarning() << "GeoIP lookup at" << m_geoip->url() << "failed."; - } - } -} - - QString LocaleViewStep::prettyName() const { @@ -171,54 +156,5 @@ LocaleViewStep::onLeave() void LocaleViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - QString region = CalamaresUtils::getString( configurationMap, "region" ); - QString zone = CalamaresUtils::getString( configurationMap, "zone" ); - if ( !region.isEmpty() && !zone.isEmpty() ) - { - m_startingTimezone = CalamaresUtils::GeoIP::RegionZonePair( region, zone ); - } - else - { - m_startingTimezone - = CalamaresUtils::GeoIP::RegionZonePair( QStringLiteral( "America" ), QStringLiteral( "New_York" ) ); - } - - bool ok = false; - QVariantMap geoip = CalamaresUtils::getSubMap( configurationMap, "geoip", ok ); - if ( ok ) - { - QString url = CalamaresUtils::getString( geoip, "url" ); - QString style = CalamaresUtils::getString( geoip, "style" ); - QString selector = CalamaresUtils::getString( geoip, "selector" ); - - m_geoip = std::make_unique< CalamaresUtils::GeoIP::Handler >( style, url, selector ); - if ( !m_geoip->isValid() ) - { - cWarning() << "GeoIP Style" << style << "is not recognized."; - } - } - m_config->setConfigurationMap( configurationMap ); } - -Calamares::RequirementsList -LocaleViewStep::checkRequirements() -{ - if ( m_geoip && m_geoip->isValid() ) - { - auto& network = CalamaresUtils::Network::Manager::instance(); - if ( network.hasInternet() ) - { - fetchGeoIpTimezone(); - } - else - { - if ( network.synchronousPing( m_geoip->url() ) ) - { - fetchGeoIpTimezone(); - } - } - } - - return Calamares::RequirementsList(); -} diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index a1456764f..f02a3205d 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -58,22 +58,15 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; - /// @brief Do setup (returns empty list) asynchronously - virtual Calamares::RequirementsList checkRequirements() override; - private slots: void setUpPage(); private: - void fetchGeoIpTimezone(); QWidget* m_widget; LocalePage* m_actualWidget; bool m_nextEnabled; - CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; - std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; - std::unique_ptr< Config > m_config; }; From 4f684be83dfc58692f94f1ffd6c9cbda5bba6dd4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 16:55:55 +0200 Subject: [PATCH 258/335] [locale] Avoid crashes in the map widget if there is no current location --- .../locale/timezonewidget/timezonewidget.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index df1142e17..0972e3296 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -94,11 +94,18 @@ TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* locati //### Private //### +struct PainterEnder +{ + QPainter& p; + ~PainterEnder() { p.end(); } +}; + void TimeZoneWidget::paintEvent( QPaintEvent* ) { QFontMetrics fontMetrics( font ); QPainter painter( this ); + PainterEnder painter_end { painter }; painter.setRenderHint( QPainter::Antialiasing ); painter.setFont( font ); @@ -109,6 +116,11 @@ TimeZoneWidget::paintEvent( QPaintEvent* ) // Draw zone image painter.drawImage( 0, 0, currentZoneImage ); + if ( !m_currentLocation ) + { + return; + } + #ifdef DEBUG_TIMEZONES QPoint point = getLocationPosition( m_currentLocation ); // Draw latitude lines @@ -168,8 +180,6 @@ TimeZoneWidget::paintEvent( QPaintEvent* ) painter.setPen( Qt::white ); painter.drawText( rect.x() + 5, rect.bottom() - 4, m_currentLocation ? m_currentLocation->tr() : QString() ); #endif - - painter.end(); } From 824cb4d4b841f59220abd09be8d191c98e93fcf3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 17:03:25 +0200 Subject: [PATCH 259/335] [locale] As the Page is constructed, it shouldn't change the location - since the Page hooked up a model and changed the region-selection **after** connecting to signals, it would reset the location to Africa/Abijan (alphabetically the first timezone) during construction. Don't do that. --- src/modules/locale/LocalePage.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 3999599c9..406f27a6e 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -98,6 +98,12 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) setMinimumWidth( m_tzWidget->width() ); setLayout( mainLayout ); + // Set up the location before connecting signals, to avoid a signal + // storm as various parts interact. + m_regionCombo->setModel( m_config->regionModel() ); + locationChanged( m_config->currentLocation() ); // doesn't inform TZ widget + m_tzWidget->setCurrentLocation( m_config->currentLocation() ); + connect( config, &Config::currentLCStatusChanged, m_formatsLabel, &QLabel::setText ); connect( config, &Config::currentLanguageStatusChanged, m_localeLabel, &QLabel::setText ); connect( config, &Config::currentLocationChanged, m_tzWidget, &TimeZoneWidget::setCurrentLocation ); @@ -114,9 +120,6 @@ LocalePage::LocalePage( Config* config, QWidget* parent ) connect( m_formatsChangeButton, &QPushButton::clicked, this, &LocalePage::changeFormats ); CALAMARES_RETRANSLATE_SLOT( &LocalePage::updateLocaleLabels ) - - m_regionCombo->setModel( m_config->regionModel() ); - m_regionCombo->currentIndexChanged( m_regionCombo->currentIndex() ); } @@ -178,6 +181,10 @@ LocalePage::zoneChanged( int currentIndex ) void LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location ) { + if ( !location ) + { + return; + } cBoolSetter< true > b( m_blockTzWidgetSet ); // Set region index From 1f3cb32486eb3918b977c307276920c384f9ed7a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 22 Jul 2020 17:10:08 +0200 Subject: [PATCH 260/335] [locale] Apply coding style --- src/modules/locale/timezonewidget/TimeZoneImage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.cpp b/src/modules/locale/timezonewidget/TimeZoneImage.cpp index a60c9b7d7..22bd263d6 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.cpp +++ b/src/modules/locale/timezonewidget/TimeZoneImage.cpp @@ -25,9 +25,9 @@ #include static const char* zoneNames[] - = { "0.0", "1.0", "2.0", "3.0", "3.5", "4.0", "4.5", "5.0", "5.5", "5.75", "6.0", "6.5", "7.0", - "8.0", "9.0", "9.5", "10.0", "10.5", "11.0", "12.0", "12.75", "13.0", "-1.0", "-2.0", "-3.0", - "-3.5", "-4.0", "-4.5", "-5.0", "-5.5", "-6.0", "-7.0", "-8.0", "-9.0", "-9.5", "-10.0", "-11.0" }; + = { "0.0", "1.0", "2.0", "3.0", "3.5", "4.0", "4.5", "5.0", "5.5", "5.75", "6.0", "6.5", "7.0", + "8.0", "9.0", "9.5", "10.0", "10.5", "11.0", "12.0", "12.75", "13.0", "-1.0", "-2.0", "-3.0", "-3.5", + "-4.0", "-4.5", "-5.0", "-5.5", "-6.0", "-7.0", "-8.0", "-9.0", "-9.5", "-10.0", "-11.0" }; static_assert( TimeZoneImageList::zoneCount == ( sizeof( zoneNames ) / sizeof( zoneNames[ 0 ] ) ), "Incorrect number of zones" ); From d90d451f427497e13ab1f7fc527ce796305e53ed Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 10:43:31 +0200 Subject: [PATCH 261/335] [locale] Remove unnecessary includes --- src/modules/locale/LocaleViewStep.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index f02a3205d..0a40da861 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -23,8 +23,6 @@ #include "Config.h" #include "DllMacro.h" -#include "geoip/Handler.h" -#include "geoip/Interface.h" #include "utils/PluginFactory.h" #include "viewpages/ViewStep.h" From 4b7403d115a485ef679f0e35d09a92dd50316197 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 11:11:18 +0200 Subject: [PATCH 262/335] [localeq] Re-do with new Config - remove stray and useless TODOs - remove unnecessary empty overrides - clean up includes - drop all the code that is now in Config Since the business logic (setting locations, maintaining GS, ...) is all in the Config object, the ViewStep is remarkably simple: hook up a UI to the Config, which in the case of QML is done automatically. --- src/modules/localeq/LocaleQmlViewStep.cpp | 135 ++-------------------- src/modules/localeq/LocaleQmlViewStep.h | 26 +---- 2 files changed, 11 insertions(+), 150 deletions(-) diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index 4354cb7bd..7891f73fd 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -19,30 +19,13 @@ #include "LocaleQmlViewStep.h" -#include "GlobalStorage.h" -#include "JobQueue.h" - -#include "geoip/Handler.h" -#include "network/Manager.h" -#include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" -#include "utils/Variant.h" -#include "utils/Yaml.h" - -#include "Branding.h" -#include "modulesystem/ModuleManager.h" -#include -#include -#include -#include CALAMARES_PLUGIN_FACTORY_DEFINITION( LocaleQmlViewStepFactory, registerPlugin< LocaleQmlViewStep >(); ) LocaleQmlViewStep::LocaleQmlViewStep( QObject* parent ) -: Calamares::QmlViewStep( parent ) -, m_config( new Config( this ) ) -, m_nextEnabled( false ) -, m_geoip( nullptr ) + : Calamares::QmlViewStep( parent ) + , m_config( std::make_unique< Config >( this ) ) { emit nextStatusChanged( m_nextEnabled ); } @@ -50,43 +33,7 @@ LocaleQmlViewStep::LocaleQmlViewStep( QObject* parent ) QObject* LocaleQmlViewStep::getConfig() { - return m_config; -} - -void -LocaleQmlViewStep::fetchGeoIpTimezone() -{ - if ( m_geoip && m_geoip->isValid() ) - { - m_startingTimezone = m_geoip->get(); - if ( !m_startingTimezone.isValid() ) - { - cWarning() << "GeoIP lookup at" << m_geoip->url() << "failed."; - } - } - - // m_config->setLocaleInfo(m_startingTimezone.first, m_startingTimezone.second, m_localeGenPath); -} - -Calamares::RequirementsList LocaleQmlViewStep::checkRequirements() -{ - if ( m_geoip && m_geoip->isValid() ) - { - auto& network = CalamaresUtils::Network::Manager::instance(); - if ( network.hasInternet() ) - { - fetchGeoIpTimezone(); - } - else - { - if ( network.synchronousPing( m_geoip->url() ) ) - { - fetchGeoIpTimezone(); - } - } - } - - return Calamares::RequirementsList(); + return m_config.get(); } QString @@ -98,14 +45,12 @@ LocaleQmlViewStep::prettyName() const bool LocaleQmlViewStep::isNextEnabled() const { - // TODO: should return true return true; } bool LocaleQmlViewStep::isBackEnabled() const { - // TODO: should return true (it's weird that you are not allowed to have welcome *after* anything return true; } @@ -113,7 +58,6 @@ LocaleQmlViewStep::isBackEnabled() const bool LocaleQmlViewStep::isAtBeginning() const { - // TODO: adjust to "pages" in the QML return true; } @@ -121,81 +65,18 @@ LocaleQmlViewStep::isAtBeginning() const bool LocaleQmlViewStep::isAtEnd() const { - // TODO: adjust to "pages" in the QML return true; } Calamares::JobList LocaleQmlViewStep::jobs() const { - return m_jobs; -} - -void LocaleQmlViewStep::onActivate() -{ - // TODO no sure if it is needed at all or for the abstract class to start something -} - -void LocaleQmlViewStep::onLeave() -{ -#if 0 - if ( true ) - { - m_jobs = m_config->createJobs(); -// m_prettyStatus = m_actualWidget->prettyStatus(); - - auto map = m_config->localesMap(); - QVariantMap vm; - for ( auto it = map.constBegin(); it != map.constEnd(); ++it ) - { - vm.insert( it.key(), it.value() ); - } - - Calamares::JobQueue::instance()->globalStorage()->insert( "localeConf", vm ); - } - else - { - m_jobs.clear(); - Calamares::JobQueue::instance()->globalStorage()->remove( "localeConf" ); - } -#endif + return m_config->createJobs(); } -void LocaleQmlViewStep::setConfigurationMap(const QVariantMap& configurationMap) +void +LocaleQmlViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - QString region = CalamaresUtils::getString( configurationMap, "region" ); - QString zone = CalamaresUtils::getString( configurationMap, "zone" ); - if ( !region.isEmpty() && !zone.isEmpty() ) - { - m_startingTimezone = CalamaresUtils::GeoIP::RegionZonePair( region, zone ); - } - else - { - m_startingTimezone - = CalamaresUtils::GeoIP::RegionZonePair( QStringLiteral( "America" ), QStringLiteral( "New_York" ) ); - } - - m_localeGenPath = CalamaresUtils::getString( configurationMap, "localeGenPath" ); - if ( m_localeGenPath.isEmpty() ) - { - m_localeGenPath = QStringLiteral( "/etc/locale.gen" ); - } - - bool ok = false; - QVariantMap geoip = CalamaresUtils::getSubMap( configurationMap, "geoip", ok ); - if ( ok ) - { - QString url = CalamaresUtils::getString( geoip, "url" ); - QString style = CalamaresUtils::getString( geoip, "style" ); - QString selector = CalamaresUtils::getString( geoip, "selector" ); - - m_geoip = std::make_unique< CalamaresUtils::GeoIP::Handler >( style, url, selector ); - if ( !m_geoip->isValid() ) - { - cWarning() << "GeoIP Style" << style << "is not recognized."; - } - } - - checkRequirements(); - Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last + m_config->setConfigurationMap( configurationMap ); + Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last } diff --git a/src/modules/localeq/LocaleQmlViewStep.h b/src/modules/localeq/LocaleQmlViewStep.h index 0639274d6..20689e149 100644 --- a/src/modules/localeq/LocaleQmlViewStep.h +++ b/src/modules/localeq/LocaleQmlViewStep.h @@ -20,14 +20,10 @@ #define LOCALE_QMLVIEWSTEP_H #include "Config.h" -#include "geoip/Handler.h" -#include "geoip/Interface.h" + +#include "DllMacro.h" #include "utils/PluginFactory.h" #include "viewpages/QmlViewStep.h" -#include - -#include -#include #include @@ -47,28 +43,12 @@ public: bool isAtEnd() const override; Calamares::JobList jobs() const override; - void onActivate() override; - void onLeave() override; void setConfigurationMap( const QVariantMap& configurationMap ) override; QObject* getConfig() override; - virtual Calamares::RequirementsList checkRequirements() override; - private: - // TODO: a generic QML viewstep should return a config object from a method - Config *m_config; - - bool m_nextEnabled; - QString m_prettyStatus; - - CalamaresUtils::GeoIP::RegionZonePair m_startingTimezone; - QString m_localeGenPath; - - Calamares::JobList m_jobs; - std::unique_ptr< CalamaresUtils::GeoIP::Handler > m_geoip; - - void fetchGeoIpTimezone(); + std::unique_ptr< Config > m_config; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( LocaleQmlViewStepFactory ) From 51e743a67f9122c566c497ef0413fa8109444d75 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 12:48:18 +0200 Subject: [PATCH 263/335] [libcalamares] Give GlobalStorage a parent --- src/libcalamares/GlobalStorage.cpp | 6 +++--- src/libcalamares/GlobalStorage.h | 4 ++-- src/libcalamares/JobQueue.cpp | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libcalamares/GlobalStorage.cpp b/src/libcalamares/GlobalStorage.cpp index d58a3b0c6..341fc3892 100644 --- a/src/libcalamares/GlobalStorage.cpp +++ b/src/libcalamares/GlobalStorage.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * @@ -36,8 +36,8 @@ using CalamaresUtils::operator""_MiB; namespace Calamares { -GlobalStorage::GlobalStorage() - : QObject( nullptr ) +GlobalStorage::GlobalStorage( QObject* parent ) + : QObject( parent ) { } diff --git a/src/libcalamares/GlobalStorage.h b/src/libcalamares/GlobalStorage.h index e9ba1da8a..a2848f888 100644 --- a/src/libcalamares/GlobalStorage.h +++ b/src/libcalamares/GlobalStorage.h @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * @@ -39,7 +39,7 @@ class GlobalStorage : public QObject { Q_OBJECT public: - explicit GlobalStorage(); + explicit GlobalStorage( QObject* parent = nullptr ); //NOTE: thread safety is guaranteed by JobQueue, which executes jobs one by one. // If at any time jobs become concurrent, this class must be made thread-safe. diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index adff9464b..64cc4794d 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * @@ -170,7 +170,7 @@ JobQueue::globalStorage() const JobQueue::JobQueue( QObject* parent ) : QObject( parent ) , m_thread( new JobThread( this ) ) - , m_storage( new GlobalStorage() ) + , m_storage( new GlobalStorage( this ) ) { Q_ASSERT( !s_instance ); s_instance = this; From 36fb1124be8b0a215e0eb88418bf042bf3861792 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 12:57:01 +0200 Subject: [PATCH 264/335] [libcalamares] Export network status as Q_PROPERTY and to QML --- src/libcalamares/network/Manager.cpp | 8 ++++++-- src/libcalamares/network/Manager.h | 25 ++++++++++++++++++------- src/libcalamaresui/utils/Qml.cpp | 5 +++++ 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/libcalamares/network/Manager.cpp b/src/libcalamares/network/Manager.cpp index d70988a0a..9d7534e99 100644 --- a/src/libcalamares/network/Manager.cpp +++ b/src/libcalamares/network/Manager.cpp @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -168,7 +168,11 @@ Manager::checkHasInternet() { hasInternet = synchronousPing( d->m_hasInternetUrl ); } - d->m_hasInternet = hasInternet; + if ( hasInternet != d->m_hasInternet ) + { + d->m_hasInternet = hasInternet; + emit hasInternetChanged( hasInternet ); + } return hasInternet; } diff --git a/src/libcalamares/network/Manager.h b/src/libcalamares/network/Manager.h index 1ba3eb411..8673d340b 100644 --- a/src/libcalamares/network/Manager.h +++ b/src/libcalamares/network/Manager.h @@ -1,5 +1,5 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify @@ -98,9 +98,10 @@ struct RequestStatus QDebug& operator<<( QDebug& s, const RequestStatus& e ); -class DLLEXPORT Manager : QObject +class DLLEXPORT Manager : public QObject { Q_OBJECT + Q_PROPERTY( bool hasInternet READ hasInternet NOTIFY hasInternetChanged FINAL ) Manager(); @@ -133,6 +134,16 @@ public: /// @brief Set the URL which is used for the general "is there internet" check. void setCheckHasInternetUrl( const QUrl& url ); + + /** @brief Do a network request asynchronously. + * + * Returns a pointer to the reply-from-the-request. + * This may be a nullptr if an error occurs immediately. + * The caller is responsible for cleaning up the reply (eventually). + */ + QNetworkReply* asynchronousGet( const QUrl& url, const RequestOptions& options = RequestOptions() ); + +public Q_SLOTS: /** @brief Do an explicit check for internet connectivity. * * This **may** do a ping to the configured check URL, but can also @@ -148,13 +159,13 @@ public: */ bool hasInternet(); - /** @brief Do a network request asynchronously. +signals: + /** @brief Indicates that internet connectivity status has changed * - * Returns a pointer to the reply-from-the-request. - * This may be a nullptr if an error occurs immediately. - * The caller is responsible for cleaning up the reply (eventually). + * The value is that returned from hasInternet() -- @c true when there + * is connectivity, @c false otherwise. */ - QNetworkReply* asynchronousGet( const QUrl& url, const RequestOptions& options = RequestOptions() ); + void hasInternetChanged( bool ); private: class Private; diff --git a/src/libcalamaresui/utils/Qml.cpp b/src/libcalamaresui/utils/Qml.cpp index 4f53aa317..1f1152fa2 100644 --- a/src/libcalamaresui/utils/Qml.cpp +++ b/src/libcalamaresui/utils/Qml.cpp @@ -23,6 +23,7 @@ #include "JobQueue.h" #include "Settings.h" #include "ViewManager.h" +#include "network/Manager.h" #include "utils/Dirs.h" #include "utils/Logger.h" @@ -242,6 +243,10 @@ registerQmlModels() "io.calamares.core", 1, 0, "Global", []( QQmlEngine*, QJSEngine* ) -> QObject* { return Calamares::JobQueue::instance()->globalStorage(); } ); + qmlRegisterSingletonType< CalamaresUtils::Network::Manager >( + "io.calamares.core", 1, 0, "Network", []( QQmlEngine*, QJSEngine* ) -> QObject* { + return &CalamaresUtils::Network::Manager::instance(); + } ); } } From fb927c976397d57d45a8bff6008fa8b356ac8583 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 12:57:26 +0200 Subject: [PATCH 265/335] [localeq] Use network-connected property to direct map-loading --- src/modules/localeq/localeq.qml | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/src/modules/localeq/localeq.qml b/src/modules/localeq/localeq.qml index ffd87f5b5..df82b1f9b 100644 --- a/src/modules/localeq/localeq.qml +++ b/src/modules/localeq/localeq.qml @@ -31,41 +31,13 @@ Page { property var confLang: "American English" property var confLocale: "Nederland" - //Needs to come from .conf/geoip - property var hasInternet: true - - function getInt(format) { - var requestURL = "https://example.org/"; - var xhr = new XMLHttpRequest; - - xhr.onreadystatechange = function() { - if (xhr.readyState === XMLHttpRequest.DONE) { - - if (xhr.status !== 200) { - console.log("Disconnected!!"); - var connected = false - hasInternet = connected - return; - } - - else { - console.log("Connected!!"); - } - } - } - xhr.open("GET", requestURL, true); - xhr.send(); - } - Component.onCompleted: { - getInt(); - } Loader { id: image anchors.horizontalCenter: parent.horizontalCenter width: parent.width height: parent.height / 1.28 - source: (hasInternet) ? "Map.qml" : "Offline.qml" + source: (Network.hasInternet) ? "Map.qml" : "Offline.qml" } RowLayout { From fdbfbfe2845e735ae9d3c1e2d46d355e6fde95b6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 17:46:20 +0200 Subject: [PATCH 266/335] [localeq] Fix build, missed one case of removed member variable --- src/modules/localeq/LocaleQmlViewStep.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index 7891f73fd..e0ef75f63 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -27,7 +27,6 @@ LocaleQmlViewStep::LocaleQmlViewStep( QObject* parent ) : Calamares::QmlViewStep( parent ) , m_config( std::make_unique< Config >( this ) ) { - emit nextStatusChanged( m_nextEnabled ); } QObject* From 75da1bece4f5da57275e87a3ce276efe3fdd2c83 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 23:25:52 +0200 Subject: [PATCH 267/335] [locale] Add properties for language and LC codes - we already had the human-readable status strings, but also want the actual code (particularly for being able to **update** the code from QML) --- src/modules/locale/Config.cpp | 2 ++ src/modules/locale/Config.h | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 42b6d616f..21f4d90a7 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -288,6 +288,7 @@ Config::setLanguageExplicitly( const QString& language ) m_selectedLocaleConfiguration.explicit_lang = true; emit currentLanguageStatusChanged( currentLanguageStatus() ); + emit currentLanguageCodeChanged( currentLanguageCode() ); } void @@ -306,6 +307,7 @@ Config::setLCLocaleExplicitly( const QString& locale ) m_selectedLocaleConfiguration.explicit_lc = true; emit currentLCStatusChanged( currentLCStatus() ); + emit currentLCCodeChanged( currentLCCode() ); } QString diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 3d048bc28..484c1032e 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -43,9 +43,13 @@ class Config : public QObject Q_PROPERTY( const CalamaresUtils::Locale::TZZone* currentLocation READ currentLocation WRITE setCurrentLocation NOTIFY currentLocationChanged ) + // Status are complete, human-readable, messages Q_PROPERTY( QString currentLocationStatus READ currentLocationStatus NOTIFY currentLanguageStatusChanged ) Q_PROPERTY( QString currentLanguageStatus READ currentLanguageStatus NOTIFY currentLanguageStatusChanged ) Q_PROPERTY( QString currentLCStatus READ currentLCStatus NOTIFY currentLCStatusChanged ) + // Code are internal identifiers, like "en_US.UTF-8" + Q_PROPERTY( QString currentLanguageCode READ currentLanguageCode WRITE setLanguageExplicitly NOTIFY currentLanguageCodeChanged ) + Q_PROPERTY( QString currentLCCode READ currentLCCode WRITE setLCLocaleExplicitly NOTIFY currentLCCodeChanged ) public: Config( QObject* parent = nullptr ); @@ -103,11 +107,16 @@ public Q_SLOTS: */ void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location ); + QString currentLanguageCode() const { return localeConfiguration().language(); } + QString currentLCCode() const { return localeConfiguration().lc_numeric; } + signals: void currentLocationChanged( const CalamaresUtils::Locale::TZZone* location ) const; void currentLocationStatusChanged( const QString& ) const; void currentLanguageStatusChanged( const QString& ) const; void currentLCStatusChanged( const QString& ) const; + void currentLanguageCodeChanged( const QString& ) const; + void currentLCCodeChanged( const QString& ) const; private: /// A list of supported locale identifiers (e.g. "en_US.UTF-8") From 00e945434453841c09269e0384bffe7b1d047ef1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 23:26:15 +0200 Subject: [PATCH 268/335] [localeq] Hook up to Config object - get network status from the global Network object; document that - get the strings describing the language and LC settings from the config-object instead of roll-our-own - use the model of supported locales from Config to populate listboxes - connect selection of language or LC to the Config object --- src/modules/localeq/i18n.qml | 20 +++++++------------- src/modules/localeq/localeq.qml | 7 ++++--- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/modules/localeq/i18n.qml b/src/modules/localeq/i18n.qml index a806d0174..eea9864a3 100644 --- a/src/modules/localeq/i18n.qml +++ b/src/modules/localeq/i18n.qml @@ -32,10 +32,6 @@ Item { anchors.fill: parent } - //Needs to come from Locale config - property var confLang: "en_US.UTF8" - property var confLocale: "nl_NL.UTF8" - Rectangle { id: textArea x: 28 @@ -57,7 +53,7 @@ Item { width: 240 wrapMode: Text.WordWrap text: qsTr("

Languages


- The system locale setting affects the language and character set for some command line user interface elements. The current setting is %1.").arg(confLang) + The system locale setting affects the language and character set for some command line user interface elements. The current setting is %1.").arg(config.currentLanguageCode) font.pointSize: 10 } } @@ -76,8 +72,7 @@ Item { id: list1 focus: true - // bogus entries, need to come from Locale config - model: ["en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8"] + model: config.supportedLocales currentIndex: 1 highlight: Rectangle { @@ -95,17 +90,17 @@ Item { } onClicked: { list1.currentIndex = index - confLang = list1.currentIndex } } } + onCurrentItemChanged: { config.currentLanguageCode = model[currentIndex] } /* This works because model is a stringlist */ } } } } Column { - id: i18n + id: lc_numeric x: 430 y: 40 @@ -118,7 +113,7 @@ Item { width: 240 wrapMode: Text.WordWrap text: qsTr("

Locales


- The system locale setting affects the language and character set for some command line user interface elements. The current setting is %1.").arg(confLocale) + The system locale setting affects the numbers and dates format. The current setting is %1.").arg(config.currentLCCode) font.pointSize: 10 } } @@ -139,7 +134,7 @@ Item { focus: true // bogus entries, need to come from Locale config - model: ["en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8", "en_GB.UTF-8 UTF-8", "en_US.UTF-8 UTF-8 ", "nl_NL.UTF-8 UTF-8"] + model: config.supportedLocales currentIndex: 2 highlight: Rectangle { @@ -154,11 +149,10 @@ Item { cursorShape: Qt.PointingHandCursor onClicked: { list2.currentIndex = index - confLocale = list1.currentIndex } } } - onCurrentItemChanged: console.debug(currentIndex) + onCurrentItemChanged: { config.currentLCCode = model[currentIndex]; } /* This works because model is a stringlist */ } } } diff --git a/src/modules/localeq/localeq.qml b/src/modules/localeq/localeq.qml index df82b1f9b..c48140d12 100644 --- a/src/modules/localeq/localeq.qml +++ b/src/modules/localeq/localeq.qml @@ -37,7 +37,8 @@ Page { anchors.horizontalCenter: parent.horizontalCenter width: parent.width height: parent.height / 1.28 - source: (Network.hasInternet) ? "Map.qml" : "Offline.qml" + // Network is in io.calamares.core + source: Network.hasInternet ? "Map.qml" : "Offline.qml" } RowLayout { @@ -67,7 +68,7 @@ Page { Label { Layout.fillWidth: true wrapMode: Text.WordWrap - text: qsTr("System language set to %1").arg(confLang) + text: config.currentLanguageStatus } Kirigami.Separator { Layout.fillWidth: true @@ -75,7 +76,7 @@ Page { Label { Layout.fillWidth: true wrapMode: Text.WordWrap - text: qsTr("Numbers and dates locale set to %1").arg(confLocale) + text: config.currentLCStatus } } Button { From e78cde7ccbdcfb3bb739ced851ef7056f1c09017 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 23 Jul 2020 23:30:43 +0200 Subject: [PATCH 269/335] [locale] Update GS when the LC value changes (not just location) --- src/modules/locale/Config.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 21f4d90a7..f0198dd21 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -166,11 +166,23 @@ Config::Config( QObject* parent ) // we don't need to call an update-GS method, or introduce an intermediate // update-thing-and-GS method. And everywhere where we **do** change // language or location, we already emit the signal. - connect( this, &Config::currentLanguageStatusChanged, [&]() { + connect( this, &Config::currentLanguageCodeChanged, [&]() { auto* gs = Calamares::JobQueue::instance()->globalStorage(); gs->insert( "locale", m_selectedLocaleConfiguration.toBcp47() ); } ); + connect( this, &Config::currentLCCodeChanged, [&]() { + auto* gs = Calamares::JobQueue::instance()->globalStorage(); + // Update GS localeConf (the LC_ variables) + auto map = localeConfiguration().toMap(); + QVariantMap vm; + for ( auto it = map.constBegin(); it != map.constEnd(); ++it ) + { + vm.insert( it.key(), it.value() ); + } + gs->insert( "localeConf", vm ); + } ); + connect( this, &Config::currentLocationChanged, [&]() { auto* gs = Calamares::JobQueue::instance()->globalStorage(); @@ -186,15 +198,6 @@ Config::Config( QObject* parent ) QProcess::execute( "timedatectl", // depends on systemd { "set-timezone", location->region() + '/' + location->zone() } ); } - - // Update GS localeConf (the LC_ variables) - auto map = localeConfiguration().toMap(); - QVariantMap vm; - for ( auto it = map.constBegin(); it != map.constEnd(); ++it ) - { - vm.insert( it.key(), it.value() ); - } - gs->insert( "localeConf", vm ); } ); } From a4ed160060b9addd7302f62e227d73a24d4d443c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 11:07:58 +0200 Subject: [PATCH 270/335] [localeq] Offer a Config setting to set location from region/zone - already had methods for various kinds of broken-up data, but not one for plain "region/zone" strings; having this makes it easier for QML to report a zone. - use the region/zone method from QML, so that clicking on the world map updates the actual TZ in Config. --- src/modules/locale/Config.cpp | 9 +++++++++ src/modules/locale/Config.h | 9 ++++++++- src/modules/localeq/Map.qml | 7 ++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index f0198dd21..f28a2d0b5 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -218,6 +218,15 @@ Config::setCurrentLocation() } } +void Config::setCurrentLocation(const QString& regionzone) +{ + auto r = CalamaresUtils::GeoIP::splitTZString( regionzone ); + if ( r.isValid() ) + { + setCurrentLocation( r.first, r.second ); + } +} + void Config::setCurrentLocation( const QString& regionName, const QString& zoneName ) { diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 484c1032e..d74555ee5 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -92,7 +92,14 @@ public Q_SLOTS: /// Set LC (formats) by user-choice, overriding future location changes void setLCLocaleExplicitly( const QString& locale ); - /** @brief Sets a location by name + /** @brief Sets a location by full name + * + * @p regionzone should be an identifier from zone.tab, e.g. "Africa/Abidjan", + * which is split into regon and zone. Invalid names will **not** + * change the actual location. + */ + void setCurrentLocation( const QString& regionzone ); + /** @brief Sets a location by split name * * @p region should be "America" or the like, while @p zone * names a zone within that region. diff --git a/src/modules/localeq/Map.qml b/src/modules/localeq/Map.qml index 023de6d1b..080d7388a 100644 --- a/src/modules/localeq/Map.qml +++ b/src/modules/localeq/Map.qml @@ -74,6 +74,7 @@ Column { var tz2 = responseJSON.timezoneId tzText.text = "Timezone: " + tz2 + config.setCurrentLocation(tz2) } } @@ -126,7 +127,7 @@ Column { anchorPoint.x: image.width/4 anchorPoint.y: image.height coordinate: QtPositioning.coordinate( - map.center.latitude, + map.center.latitude, map.center.longitude) //coordinate: QtPositioning.coordinate(40.730610, -73.935242) // New York @@ -156,7 +157,7 @@ Column { map.center.longitude = coordinate.longitude getTz(); - + console.log(coordinate.latitude, coordinate.longitude) } } @@ -199,7 +200,7 @@ Column { } Rectangle { - width: parent.width + width: parent.width height: 100 anchors.horizontalCenter: parent.horizontalCenter From 07c096673d1f4b46a8746a6782a0d3e5cd8d6ab4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 11:10:56 +0200 Subject: [PATCH 271/335] [localeq] Report summary before install --- src/modules/localeq/LocaleQmlViewStep.cpp | 7 +++++++ src/modules/localeq/LocaleQmlViewStep.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index e0ef75f63..d1186af1f 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -41,6 +41,13 @@ LocaleQmlViewStep::prettyName() const return tr( "Location" ); } +QString +LocaleQmlViewStep::prettyStatus() const +{ + QStringList l { m_config->currentLocationStatus(), m_config->currentLanguageStatus(), m_config->currentLCStatus() }; + return l.join( QStringLiteral( "
" ) ); +} + bool LocaleQmlViewStep::isNextEnabled() const { diff --git a/src/modules/localeq/LocaleQmlViewStep.h b/src/modules/localeq/LocaleQmlViewStep.h index 20689e149..3d73c6f79 100644 --- a/src/modules/localeq/LocaleQmlViewStep.h +++ b/src/modules/localeq/LocaleQmlViewStep.h @@ -35,6 +35,7 @@ public: explicit LocaleQmlViewStep( QObject* parent = nullptr ); QString prettyName() const override; + QString prettyStatus() const override; bool isNextEnabled() const override; bool isBackEnabled() const override; From 23810aae3d8372d225e2ebe142267bc1fa11fde7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 11:29:47 +0200 Subject: [PATCH 272/335] CMake: switch to autorcc from manual futzing --- CMakeModules/CalamaresAddLibrary.cmake | 9 ++++--- CMakeModules/CalamaresAutomoc.cmake | 36 ++++++++++++++++++++------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index 88978e751..901791e30 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -62,10 +62,8 @@ function(calamares_add_library) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # add resources from current dir - if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${LIBRARY_RESOURCES}") - qt5_add_resources(LIBRARY_RC_SOURCES "${LIBRARY_RESOURCES}") - list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES}) - unset(LIBRARY_RC_SOURCES) + if(LIBRARY_RESOURCES) + list(APPEND LIBRARY_SOURCES ${LIBRARY_RESOURCES}) endif() # add target @@ -81,6 +79,9 @@ function(calamares_add_library) if(LIBRARY_UI) calamares_autouic(${target} ${LIBRARY_UI}) endif() + if(LIBRARY_RESOURCES) + calamares_autorcc(${target} ${LIBRARY_RESOURCES}) + endif() if(LIBRARY_EXPORT_MACRO) set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_EXPORT_MACRO}) diff --git a/CMakeModules/CalamaresAutomoc.cmake b/CMakeModules/CalamaresAutomoc.cmake index 3de586ad2..c9a08a20d 100644 --- a/CMakeModules/CalamaresAutomoc.cmake +++ b/CMakeModules/CalamaresAutomoc.cmake @@ -18,17 +18,28 @@ # ### # -# Helper function for doing automoc on a target, and autoui on a .ui file. +# Helper function for doing automoc, autouic, autorcc on targets, +# and on the corresponding .ui or .rcc files. # -# Sets AUTOMOC TRUE for a target. +# calamares_automoc(target) +# Sets AUTOMOC TRUE for a target. # -# If the global variable CALAMARES_AUTOMOC_OPTIONS is set, uses that -# as well to set options passed to MOC. This can be used to add -# libcalamares/utils/moc-warnings.h file to the moc, which in turn -# reduces compiler warnings in generated MOC code. +# If the global variable CALAMARES_AUTOMOC_OPTIONS is set, uses that +# as well to set options passed to MOC. This can be used to add +# libcalamares/utils/moc-warnings.h file to the moc, which in turn +# reduces compiler warnings in generated MOC code. # -# If the global variable CALAMARES_AUTOUIC_OPTIONS is set, adds that -# to the options passed to uic. +# calamares_autouic(target [uifile ..]) +# Sets AUTOUIC TRUE for a target. +# +# If the global variable CALAMARES_AUTOUIC_OPTIONS is set, adds that +# to the options passed to uic for each of the named uifiles. +# +# calamares_autorcc(target [rcfile ..]) +# Sets AUTOUIC TRUE for a target. +# +# If the global variable CALAMARES_AUTORCC_OPTIONS is set, adds that +# to the options passed to rcc for each of the named rcfiles. function(calamares_automoc TARGET) set_target_properties( ${TARGET} PROPERTIES AUTOMOC TRUE ) @@ -45,3 +56,12 @@ function(calamares_autouic TARGET) endforeach() endif() endfunction() + +function(calamares_autorcc TARGET) + set_target_properties( ${TARGET} PROPERTIES AUTORCC TRUE ) + if ( CALAMARES_AUTORCC_OPTIONS ) + foreach(S ${ARGN}) + set_property(SOURCE ${S} PROPERTY AUTORCC_OPTIONS "${CALAMARES_AUTORCC_OPTIONS}") + endforeach() + endif() +endfunction() From a080e47f4b775d488589180ecb6f29b90c9f7967 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 11:53:32 +0200 Subject: [PATCH 273/335] [locale] Add prettyStatus to Config - this is present in the previous config, and helps make the modules consistent by returning prettyStatus in both ViewSteps. --- src/modules/locale/Config.cpp | 12 ++++++++++++ src/modules/locale/Config.h | 7 +++++++ src/modules/locale/LocaleViewStep.cpp | 3 +-- src/modules/localeq/LocaleQmlViewStep.cpp | 3 +-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index f28a2d0b5..7a49525f2 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -199,6 +199,11 @@ Config::Config( QObject* parent ) { "set-timezone", location->region() + '/' + location->zone() } ); } } ); + + auto prettyStatusNotify = [&]() { emit prettyStatusChanged( prettyStatus() ); }; + connect( this, &Config::currentLanguageStatusChanged, prettyStatusNotify ); + connect( this, &Config::currentLCStatusChanged, prettyStatusNotify ); + connect( this, &Config::currentLocationStatusChanged, prettyStatusNotify ); } Config::~Config() {} @@ -351,6 +356,13 @@ Config::currentLCStatus() const .arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) ); } +QString +Config::prettyStatus() const +{ + QStringList l { currentLocationStatus(), currentLanguageStatus(), currentLCStatus() }; + return l.join( QStringLiteral( "
" ) ); +} + static inline void getLocaleGenLines( const QVariantMap& configurationMap, QStringList& localeGenLines ) { diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index d74555ee5..e9a8e6373 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -51,6 +51,9 @@ class Config : public QObject Q_PROPERTY( QString currentLanguageCode READ currentLanguageCode WRITE setLanguageExplicitly NOTIFY currentLanguageCodeChanged ) Q_PROPERTY( QString currentLCCode READ currentLCCode WRITE setLCLocaleExplicitly NOTIFY currentLCCodeChanged ) + // This is a long human-readable string with all three statuses + Q_PROPERTY( QString prettyStatus READ prettyStatus NOTIFY prettyStatusChanged FINAL ) + public: Config( QObject* parent = nullptr ); ~Config(); @@ -79,6 +82,9 @@ public: /// The human-readable description of what locale (LC_*) is used QString currentLCStatus() const; + /// The human-readable summary of what the module will do + QString prettyStatus() const; + const QStringList& supportedLocales() const { return m_localeGenLines; } CalamaresUtils::Locale::CStringListModel* regionModel() const { return m_regionModel.get(); } CalamaresUtils::Locale::CStringListModel* zonesModel() const { return m_zonesModel.get(); } @@ -122,6 +128,7 @@ signals: void currentLocationStatusChanged( const QString& ) const; void currentLanguageStatusChanged( const QString& ) const; void currentLCStatusChanged( const QString& ) const; + void prettyStatusChanged( const QString& ) const; void currentLanguageCodeChanged( const QString& ) const; void currentLCCodeChanged( const QString& ) const; diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 8ae894aa8..a85c87e4f 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -89,8 +89,7 @@ LocaleViewStep::prettyName() const QString LocaleViewStep::prettyStatus() const { - QStringList l { m_config->currentLocationStatus(), m_config->currentLanguageStatus(), m_config->currentLCStatus() }; - return l.join( QStringLiteral( "
" ) ); + return m_config->prettyStatus(); } diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index d1186af1f..ead2e2673 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -44,8 +44,7 @@ LocaleQmlViewStep::prettyName() const QString LocaleQmlViewStep::prettyStatus() const { - QStringList l { m_config->currentLocationStatus(), m_config->currentLanguageStatus(), m_config->currentLCStatus() }; - return l.join( QStringLiteral( "
" ) ); + return m_config->prettyStatus(); } bool From 09020d68b093c1a28f251db95d645a70d6e9cded Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 12:15:27 +0200 Subject: [PATCH 274/335] [libcalamaresui] Make dox of ModuleManager signals more explicit --- src/libcalamaresui/modulesystem/ModuleManager.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index 2bac78af6..bea8acf41 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -130,10 +130,10 @@ signals: void modulesFailed( QStringList ); /** @brief Emitted after all requirements have been checked * - * The bool value indicates if all of the **mandatory** requirements + * The bool @p canContinue indicates if all of the **mandatory** requirements * are satisfied (e.g. whether installation can continue). */ - void requirementsComplete( bool ); + void requirementsComplete( bool canContinue ); private slots: void doInit(); From 682146aa9b9d5267b379c6144c0454caa462594e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 9 Jul 2020 16:08:51 +0200 Subject: [PATCH 275/335] [libcalamares] Expand dox on TimeZone pairs --- src/libcalamares/locale/TimeZone.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index 60900ef21..05820817a 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * */ @@ -88,7 +87,13 @@ public: } }; -/// @brief A pair of strings for timezone regions (e.g. "America") +/** @brief Timezone regions (e.g. "America") + * + * A region has a key and a human-readable name, but also + * a collection of associated timezone zones (TZZone, below). + * This class is not usually constructed, but uses fromFile() + * to load a complete tree structure of timezones. + */ class TZRegion : public CStringPair { Q_OBJECT @@ -120,7 +125,12 @@ private: CStringPairList m_zones; }; -/// @brief A pair of strings for specific timezone names (e.g. "New_York") +/** @brief Specific timezone zones (e.g. "New_York", "New York") + * + * A timezone zone lives in a region, and has some associated + * data like the country (used to map likely languages) and latitude + * and longitude information. + */ class TZZone : public CStringPair { Q_OBJECT From a835bb9a10014dc18935c8919802020f7e3f5789 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 12:26:02 +0200 Subject: [PATCH 276/335] Changes: document new locale features --- CHANGES | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index d7510976a..ad374e40a 100644 --- a/CHANGES +++ b/CHANGES @@ -9,10 +9,18 @@ This release contains contributions from (alphabetically by first name): - No external contributors yet ## Core ## - - No core changes yet + - A new object *Network* is available to QML modules in `io.calamares.core`. + It exposes network status through the *hasInternet* property. ## Modules ## - - No module changes yet + - The *locale* module has been completely redone on the inside. + Users should see no changes. #1391 + - The *localeq* module uses the redone internals of the locale module. + It can now be used to set timezone, language and locale information + and is a suitable alternative module. Thanks to Anke Boersma who did + the work of figuring out maps. Note that the map uses several GeoIP + and GeoData providers and you may need to configure the URLs + with suitable usernames for those services. #1426 # 3.2.27 (2020-07-11) # From 11482559ad64a11946ffc591e270ee3cd768c05c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 13:39:43 +0200 Subject: [PATCH 277/335] [netinstall] There is no netinstall.qrc --- src/modules/netinstall/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/modules/netinstall/CMakeLists.txt b/src/modules/netinstall/CMakeLists.txt index 762e92985..0f2cf06f8 100644 --- a/src/modules/netinstall/CMakeLists.txt +++ b/src/modules/netinstall/CMakeLists.txt @@ -9,8 +9,6 @@ calamares_add_plugin( netinstall PackageModel.cpp UI page_netinst.ui - RESOURCES - netinstall.qrc LINK_PRIVATE_LIBRARIES calamaresui Qt5::Network From 4d3422b93181188bcff06c2938c70748ed9a3a5e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 24 Jul 2020 14:24:03 +0200 Subject: [PATCH 278/335] [libcalamares] dox for Permissions - Expand the documentation, emphasize octal-vs-decimal - east-const consistently in this file (most of Calamares is west-const) - shuffle the is-valid bool to the end of the data members, so sorting by size. --- src/libcalamares/utils/Permissions.cpp | 6 +++--- src/libcalamares/utils/Permissions.h | 29 ++++++++++++++++++++------ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/libcalamares/utils/Permissions.cpp b/src/libcalamares/utils/Permissions.cpp index d9d3226e6..3166d840a 100644 --- a/src/libcalamares/utils/Permissions.cpp +++ b/src/libcalamares/utils/Permissions.cpp @@ -14,20 +14,20 @@ Permissions::Permissions() : m_username() , m_group() - , m_valid( false ) , m_value( 0 ) + , m_valid( false ) { } -Permissions::Permissions( QString p ) +Permissions::Permissions( QString const& p ) : Permissions() { parsePermissions( p ); } void -Permissions::parsePermissions( const QString& p ) +Permissions::parsePermissions( QString const& p ) { QStringList segments = p.split( ":" ); diff --git a/src/libcalamares/utils/Permissions.h b/src/libcalamares/utils/Permissions.h index baa5da554..b6e2d3a44 100644 --- a/src/libcalamares/utils/Permissions.h +++ b/src/libcalamares/utils/Permissions.h @@ -25,27 +25,44 @@ public: /** @brief Constructor * * Splits the string @p at the colon (":") into separate elements for - * , , and (permissions), where is returned as - * an **octal** integer. + * , , and (permissions), where is interpreted + * as an **octal** integer. That is, "root:wheel:755" will give + * you an integer value of four-hundred-ninety-three (493), + * corresponding to the UNIX file permissions rwxr-xr-x, + * as one would expect from chmod and other command-line utilities. */ - Permissions( QString p ); + Permissions( QString const& p ); - /** @brief Default constructor of an invalid Permissions. */ + /// @brief Default constructor of an invalid Permissions. Permissions(); + /// @brief Was the Permissions object constructed from valid data? bool isValid() const { return m_valid; } + /// @brief The user (first component, e.g. "root" in "root:wheel:755") QString username() const { return m_username; } + /// @brief The group (second component, e.g. "wheel" in "root:wheel:755") QString group() const { return m_group; } + /** @brief The value (file permission) as an integer. + * + * Bear in mind that input is in octal, but integers are just integers; + * naively printing them will get decimal results (e.g. 493 from the + * input of "root:wheel:755"). + */ int value() const { return m_value; } - QString octal() const { return QString::number( m_value, 8 ); } + /** @brief The value (file permission) as octal string + * + * This is suitable for passing to chmod-the-program, or for + * recreating the original Permissions string. + */ + QString octal() const { return QString::number( value(), 8 ); } private: void parsePermissions( QString const& p ); QString m_username; QString m_group; - bool m_valid; int m_value; + bool m_valid; }; #endif // LIBCALAMARES_PERMISSIONS_H From bc484ae5da7ee5f52ca661c6e66bfc463d82614c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 16:40:12 +0200 Subject: [PATCH 279/335] [users] Refactor /etc/group file handing --- src/modules/users/CreateUserJob.cpp | 58 +++++++++++++++++------------ 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 776b45ce9..349d6c295 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -54,6 +54,36 @@ CreateUserJob::prettyStatusMessage() const return tr( "Creating user %1." ).arg( m_userName ); } +static QStringList +groupsInTargetSystem( const QDir& targetRoot ) +{ + QFileInfo groupsFi( targetRoot.absoluteFilePath( "etc/group" ) ); + QFile groupsFile( groupsFi.absoluteFilePath() ); + if ( !groupsFile.open( QIODevice::ReadOnly | QIODevice::Text ) ) + { + return QStringList(); + } + QString groupsData = QString::fromLocal8Bit( groupsFile.readAll() ); + QStringList groupsLines = groupsData.split( '\n' ); + for ( QStringList::iterator it = groupsLines.begin(); it != groupsLines.end(); ++it ) + { + int indexOfFirstToDrop = it->indexOf( ':' ); + it->truncate( indexOfFirstToDrop ); + } + return groupsLines; +} + +static void +ensureGroupsExistInTarget( const QStringList& wantedGroups, const QStringList& availableGroups ) +{ + for ( const QString& group : wantedGroups ) + { + if ( !availableGroups.contains( group ) ) + { + CalamaresUtils::System::instance()->targetEnvCall( { "groupadd", group } ); + } + } +} Calamares::JobResult CreateUserJob::exec() @@ -89,36 +119,16 @@ CreateUserJob::exec() cDebug() << "[CREATEUSER]: preparing groups"; - QFileInfo groupsFi( destDir.absoluteFilePath( "etc/group" ) ); - QFile groupsFile( groupsFi.absoluteFilePath() ); - if ( !groupsFile.open( QIODevice::ReadOnly | QIODevice::Text ) ) - { - return Calamares::JobResult::error( tr( "Cannot open groups file for reading." ) ); - } - QString groupsData = QString::fromLocal8Bit( groupsFile.readAll() ); - QStringList groupsLines = groupsData.split( '\n' ); - for ( QStringList::iterator it = groupsLines.begin(); it != groupsLines.end(); ++it ) - { - int indexOfFirstToDrop = it->indexOf( ':' ); - it->truncate( indexOfFirstToDrop ); - } - - for ( const QString& group : m_defaultGroups ) - { - if ( !groupsLines.contains( group ) ) - { - CalamaresUtils::System::instance()->targetEnvCall( { "groupadd", group } ); - } - } + QStringList availableGroups = groupsInTargetSystem( destDir ); + ensureGroupsExistInTarget( m_defaultGroups, availableGroups ); QString defaultGroups = m_defaultGroups.join( ',' ); if ( m_autologin ) { - QString autologinGroup; if ( gs->contains( "autologinGroup" ) && !gs->value( "autologinGroup" ).toString().isEmpty() ) { - autologinGroup = gs->value( "autologinGroup" ).toString(); - CalamaresUtils::System::instance()->targetEnvCall( { "groupadd", autologinGroup } ); + QString autologinGroup = gs->value( "autologinGroup" ).toString(); + ensureGroupsExistInTarget( QStringList { autologinGroup }, availableGroups ); defaultGroups.append( QString( ",%1" ).arg( autologinGroup ) ); } } From 409ab6ee868b22f8e42083ce668876d3f5f313e8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 22 Jun 2020 17:10:03 +0200 Subject: [PATCH 280/335] [users] Refactor writing sudoers file - use existing convenience methods --- src/modules/users/CreateUserJob.cpp | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 349d6c295..f0b1dca88 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -95,26 +95,23 @@ CreateUserJob::exec() { cDebug() << "[CREATEUSER]: preparing sudoers"; - QFileInfo sudoersFi( destDir.absoluteFilePath( "etc/sudoers.d/10-installer" ) ); + QString sudoersLine = QString( "%%1 ALL=(ALL) ALL\n" ).arg( gs->value( "sudoersGroup" ).toString() ); + auto fileResult + = CalamaresUtils::System::instance()->createTargetFile( QStringLiteral( "/etc/sudoers.d/10-installer" ), + sudoersLine.toUtf8().constData(), + CalamaresUtils::System::WriteMode::Overwrite ); - if ( !sudoersFi.absoluteDir().exists() ) + if ( fileResult ) { - return Calamares::JobResult::error( tr( "Sudoers dir is not writable." ) ); + if ( QProcess::execute( "chmod", { "440", fileResult.path() } ) ) + { + return Calamares::JobResult::error( tr( "Cannot chmod sudoers file." ) ); + } } - - QFile sudoersFile( sudoersFi.absoluteFilePath() ); - if ( !sudoersFile.open( QIODevice::WriteOnly | QIODevice::Text ) ) + else { return Calamares::JobResult::error( tr( "Cannot create sudoers file for writing." ) ); } - - QString sudoersGroup = gs->value( "sudoersGroup" ).toString(); - - QTextStream sudoersOut( &sudoersFile ); - sudoersOut << QString( "%%1 ALL=(ALL) ALL\n" ).arg( sudoersGroup ); - - if ( QProcess::execute( "chmod", { "440", sudoersFi.absoluteFilePath() } ) ) - return Calamares::JobResult::error( tr( "Cannot chmod sudoers file." ) ); } cDebug() << "[CREATEUSER]: preparing groups"; From d114c383fa911f9c447b6f964243ba889a74316c Mon Sep 17 00:00:00 2001 From: demmm Date: Fri, 24 Jul 2020 17:34:14 +0200 Subject: [PATCH 281/335] [localeq] remove obsolete vars & comments set index in i18n.qml to -1, old settings were just for reading from the bogus model current model uses strings, so index fails to read from it. This fixes cala crashing on loading i18n.qml --- src/modules/localeq/i18n.qml | 5 ++--- src/modules/localeq/localeq.qml | 3 --- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/modules/localeq/i18n.qml b/src/modules/localeq/i18n.qml index eea9864a3..6907b1ba8 100644 --- a/src/modules/localeq/i18n.qml +++ b/src/modules/localeq/i18n.qml @@ -74,7 +74,7 @@ Item { model: config.supportedLocales - currentIndex: 1 + currentIndex: -1 highlight: Rectangle { color: Kirigami.Theme.highlightColor } @@ -133,10 +133,9 @@ Item { width: 180; height: 200 focus: true - // bogus entries, need to come from Locale config model: config.supportedLocales - currentIndex: 2 + currentIndex: -1 highlight: Rectangle { color: Kirigami.Theme.highlightColor } diff --git a/src/modules/localeq/localeq.qml b/src/modules/localeq/localeq.qml index c48140d12..49719db65 100644 --- a/src/modules/localeq/localeq.qml +++ b/src/modules/localeq/localeq.qml @@ -29,9 +29,6 @@ Page { width: 800 height: 550 - property var confLang: "American English" - property var confLocale: "Nederland" - Loader { id: image anchors.horizontalCenter: parent.horizontalCenter From 2b3cc1778236a21339d8fd5de97cb80fa7abac2a Mon Sep 17 00:00:00 2001 From: apt-ghetto Date: Fri, 24 Jul 2020 17:56:58 +0200 Subject: [PATCH 282/335] Revert Manual Partition instructions With PR calamares/calamares#1357 the label of the "Manual partitioning" option was changed, which introduced several downsides: * The label is shown for UEFI and for BIOS installations. * The mountpoint of the ESP is and should be distro specific. * The label always mentioned GPT, which is irrelevant. * The label should explain, what the option does, and not, what problems can occur under certain circumstances. --- src/modules/partition/gui/ChoicePage.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 69a740d20..9e48e69ac 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -332,9 +332,7 @@ ChoicePage::setupChoices() CALAMARES_RETRANSLATE( m_somethingElseButton->setText( tr( "Manual partitioning
" - "You can create or resize partitions yourself." - " Having a GPT partition table and fat32 512Mb /boot partition " - "is a must for UEFI installs, either use an existing without formatting or create one." ) ); + "You can create or resize partitions yourself." ) ); updateSwapChoicesTr( m_eraseSwapChoiceComboBox ); ) } From 01b22d27a8cc7d8447d554d8162613f2c4b4a992 Mon Sep 17 00:00:00 2001 From: apt-ghetto Date: Sat, 25 Jul 2020 15:59:59 +0200 Subject: [PATCH 283/335] Do not allow 'root' as username On the "Users" tab, the user can choose a username. It was possible to use 'root' as username, which led to an installation error, because 'root' exists already. Added a new check to the username validation. Fixes #1462. --- src/modules/users/UsersPage.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 9c7ce6f7b..5c649d622 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -409,6 +409,13 @@ UsersPage::validateUsernameText( const QString& textRef ) tr( "Only lowercase letters, numbers, underscore and hyphen are allowed." ) ); m_readyUsername = false; } + else if ( 0 == QString::compare("root", text, Qt::CaseSensitive ) ) + { + labelError( ui->labelUsername, + ui->labelUsernameError, + tr( "'root' is not allowed as user name." ) ); + m_readyUsername = false; + } else { labelOk( ui->labelUsername, ui->labelUsernameError ); From 3a3507f2b29e9e0b080e5d118a70e76f06959960 Mon Sep 17 00:00:00 2001 From: demmm Date: Sat, 25 Jul 2020 17:18:28 +0200 Subject: [PATCH 284/335] [keyboardq] remove background image use make the module more in line with the look of the rest of Calamares --- src/modules/keyboardq/ListViewTemplate.qml | 2 +- src/modules/keyboardq/ResponsiveBase.qml | 47 +++------------------ src/modules/keyboardq/keyboard.jpg | Bin 103372 -> 0 bytes src/modules/keyboardq/keyboardq.qml | 5 ++- src/modules/keyboardq/keyboardq.qrc | 1 - 5 files changed, 11 insertions(+), 44 deletions(-) delete mode 100644 src/modules/keyboardq/keyboard.jpg diff --git a/src/modules/keyboardq/ListViewTemplate.qml b/src/modules/keyboardq/ListViewTemplate.qml index eb160afab..4564b887b 100644 --- a/src/modules/keyboardq/ListViewTemplate.qml +++ b/src/modules/keyboardq/ListViewTemplate.qml @@ -15,7 +15,7 @@ ListView { z: parent.z - 1 anchors.fill: parent - color: Kirigami.Theme.backgroundColor + color: "#BDC3C7" radius: 5 opacity: 0.7 } diff --git a/src/modules/keyboardq/ResponsiveBase.qml b/src/modules/keyboardq/ResponsiveBase.qml index c9f5c7091..38fa15d1b 100644 --- a/src/modules/keyboardq/ResponsiveBase.qml +++ b/src/modules/keyboardq/ResponsiveBase.qml @@ -13,8 +13,8 @@ Page { width: 800 //parent.width height: 550 //parent.height - Kirigami.Theme.backgroundColor: "#fafafa" - Kirigami.Theme.textColor: "#333" + Kirigami.Theme.backgroundColor: "#FAFAFA" + Kirigami.Theme.textColor: "#1F1F1F" property string subtitle property string message @@ -22,39 +22,6 @@ Page { default property alias content : _content.data property alias stackView: _stackView - background: Item { - - id: _background - - Image { - - id: _wallpaper - height: parent.height - width: parent.width - - sourceSize.width: 800 - sourceSize.height: 550 - - fillMode: Image.PreserveAspectCrop - antialiasing: false - smooth: false - asynchronous: true - cache: true - - source: "keyboard.jpg" - } - - FastBlur { - - id: fastBlur - anchors.fill: parent - source: _wallpaper - radius: 32 - transparentBorder: false - cached: true - } - } - ColumnLayout { id: _content @@ -63,7 +30,7 @@ Page { spacing: Kirigami.Units.smallSpacing * 5 anchors.margins: Kirigami.Units.smallSpacing * 5 anchors.bottomMargin: 20 - + Label { Layout.fillWidth: true @@ -72,7 +39,7 @@ Page { wrapMode: Text.NoWrap elide: Text.ElideMiddle text: control.title - color: "white" + color: Kirigami.Theme.textColor font.bold: true font.weight: Font.Bold font.pointSize: 24 @@ -86,7 +53,7 @@ Page { wrapMode: Text.Wrap elide: Text.ElideMiddle text: control.subtitle - color: "white" + color: Kirigami.Theme.textColor font.weight: Font.Light font.pointSize: 12 } @@ -99,7 +66,7 @@ Page { wrapMode: Text.Wrap elide: Text.ElideMiddle text: control.message - color: "white" + color: Kirigami.Theme.textColor font.weight: Font.Light font.pointSize: 10 } @@ -110,7 +77,7 @@ Page { Layout.fillHeight: true Layout.preferredWidth: parent.width clip: true - } + } } } diff --git a/src/modules/keyboardq/keyboard.jpg b/src/modules/keyboardq/keyboard.jpg deleted file mode 100644 index 9c0600fac5da2748cc80a4ba18e5b1df8e285465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103372 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.qml ListViewTemplate.qml ResponsiveBase.qml - keyboard.jpg From e0bb7d9f6f6556e94e3dd3bb689c880a54b1183a Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sun, 26 Jul 2020 11:02:36 +0200 Subject: [PATCH 285/335] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_de.ts | 2 +- lang/calamares_ie.ts | 3941 ++++++++++++++++++++++++++++++++++++++ lang/calamares_it_IT.ts | 26 +- lang/calamares_nl.ts | 18 +- lang/calamares_tg.ts | 3947 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 7911 insertions(+), 23 deletions(-) create mode 100644 lang/calamares_ie.ts create mode 100644 lang/calamares_tg.ts diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index 9098ab48c..c0d0cadaf 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -792,7 +792,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. <h1>Welcome to the %1 installer</h1> - + <h1>Willkommen zum %1 Installationsprogramm</h1>
diff --git a/lang/calamares_ie.ts b/lang/calamares_ie.ts new file mode 100644 index 000000000..e65456755 --- /dev/null +++ b/lang/calamares_ie.ts @@ -0,0 +1,3941 @@ + + + + + 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 + + + + + Reload Stylesheet + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + 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::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + + + + Waiting for %n module(s). + + + + + + + + (%n second(s)) + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + + + + + Would you like to paste the install log to the web? + + + + + Error + + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + 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: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + 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> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + + + + + &Back + + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + + + + + &Next + + + + + &Cancel + + + + + %1 Setup Program + + + + + %1 Installer + + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <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. + + + + + + + + <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 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. + + + + + 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. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + 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. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1</h1> + + + + + <h1>Welcome to %1 setup</h1> + + + + + <h1>Welcome to the Calamares installer for %1</h1> + + + + + <h1>Welcome to the %1 installer</h1> + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</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. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + 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 + + + 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. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + 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 + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <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 setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</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'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB 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. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + 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. + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + 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 + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <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> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Set timezone to %1/%2.<br/> + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + + + 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 + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + login + + + + + 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> + + + + + Computer Name + + + + + 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> + + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + 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 + size[number] filesystem[name] + + + + + 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>%3</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. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + 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. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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 + + + %1 (%2) + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Default Keyboard Model + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + RemoveUserJob + + + Remove live user from target system + + + + + 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: + + + + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + 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>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + 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'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + 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 %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <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 %1MiB <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 %1MiB <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 setup procedure. + + + + + 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. + + + + + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + + 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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + + + + + <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> + + + + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 only be sent <b>once</b> after the installation finishes. + + + + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + + + + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + + + + + TrackingViewStep + + + Feedback + + + + + UsersPage + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your username is too long. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + + + + + Value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + 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 + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + 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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + 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. + + + + + Back + + + + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + + + + + + Layouts + + + + + + Keyboard Layout + + + + + Models + + + + + Variants + + + + + Test your keyboard + + + + + localeq + + + System language set to %1 + + + + + Numbers and dates locale set to %1 + + + + + Change + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index 3a36cc2a8..136eb7532 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -776,22 +776,22 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse <h1>Welcome to the Calamares setup program for %1</h1> - + Benvenuto nel programma di installazione Calamares di %1 <h1>Welcome to %1 setup</h1> - + Benvenuto nell'installazione di %1 <h1>Welcome to the Calamares installer for %1</h1> - + Benvenuto nel programma di installazione Calamares di %1 <h1>Welcome to the %1 installer</h1> - + Benvenuto nel programma di installazione di %1 @@ -1780,7 +1780,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Please select your preferred location on the map so the installer can suggest the locale and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. - + Seleziona la tua posizione sulla mappa in modo che il programma di installazione possa suggerirti la localizzazione e le impostazioni del fuso orario. Puoi modificare le impostazioni suggerite nella parte in basso. Trascina la mappa per spostarti e usa i pulsanti +/- oppure la rotella del mouse per ingrandire o rimpicciolire. @@ -1926,12 +1926,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Timezone: %1 - + Fuso orario: %1 To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. - + Per selezionare un fuso orario, assicurati di essere collegato ad Internet. Riavvia il programma di installazione dopo esserti collegato. Puoi modificare le impostazioni relative alla lingua e alla posizione nella parte in basso. @@ -2836,7 +2836,7 @@ Output: <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + Questo computer non soddisfa alcuni requisiti raccomandati per poter installare %1. L'installazione può continuare, ma alcune funzionalità potrebbero essere disabilitate. @@ -2947,13 +2947,13 @@ Output: <p>This computer does not satisfy the minimum requirements for installing %1.<br/> Installation cannot continue.</p> - + Questo computer non soddisfa i requisiti minimi per poter installare %1. L'installazione non può continuare. <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + Questo computer non soddisfa alcuni requisiti raccomandati per poter installare %1. L'installazione può continuare, ma alcune funzionalità potrebbero essere disabilitate. @@ -3419,12 +3419,12 @@ Output: KDE user feedback - + Riscontro dell'utente di KDE Configuring KDE user feedback. - + Sto configurando il riscontro dell'utente di KDE @@ -3865,7 +3865,7 @@ Output: System language set to %1 - + Lingua di sistema impostata su %1 diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts index 07ac3dfcd..2af094205 100644 --- a/lang/calamares_nl.ts +++ b/lang/calamares_nl.ts @@ -245,7 +245,7 @@ (%n second(s)) (%n seconde) - (%n seconden) + (%n seconde(n)) @@ -528,7 +528,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. - + <strong>Handmatige partitionering</strong><br/>Je kunt zelf de partities creëren of wijzigen. Het hebben van een GPT partititie tabel and <strong>een FAT-32 512 MB /boot partitie is belangrijk voor UEFI installaties</strong>. Gebruik een bestaande zonder formatteren of maak een nieuwe aan. @@ -1426,7 +1426,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. The screen is too small to display the installer. - Het schem is te klein on het installatieprogramma te vertonen. + Het scherm is te klein on het installatieprogramma te laten zien. @@ -1655,12 +1655,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Hide license text - + Verberg licentietekst Show the license text - + Toon licentietekst @@ -2268,7 +2268,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Your Full Name - Volledige Naam + Volledige naam @@ -2278,7 +2278,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. login - + Gebruikersnaam @@ -2310,13 +2310,13 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Password - + Wachtwoord Repeat Password - + Herhaal wachtwoord diff --git a/lang/calamares_tg.ts b/lang/calamares_tg.ts new file mode 100644 index 000000000..24713cdb1 --- /dev/null +++ b/lang/calamares_tg.ts @@ -0,0 +1,3947 @@ + + + + + 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. + <strong>Муҳити роҳандозӣ</strong> барои низоми ҷорӣ.<br><br>Низомҳои x86 куҳна танҳо <strong>BIOS</strong>-ро дастгирӣ менамоянд.<br>Низомҳои муосир одатан <strong>EFI</strong>-ро истифода мебаранд, аммо инчунин метавонанд ҳамчун BIOS намоиш дода шаванд, агар дар реҷаи мувофиқсозӣ оғоз шавад. + + + + 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. + Низоми ҷорӣ бо муҳити роҳандозии <strong>EFI</strong> оғоз ёфт.<br><br>Барои танзими оғози кор аз муҳити EFI насбкунандаи ҷорӣ бояд барномаи боркунандаи роҳандозиро монанди <strong>GRUB</strong> ё <strong>systemd-boot</strong> дар <strong>Қисми диски низомии EFI</strong> ба кор дарорад. Ин амал бояд ба таври худкор иҷро шавад, агар шумо барои қисмбандии диск тарзи дастиро интихоб накунед. Дар ин маврид шумо бояд онро мустақилона интихоб ё эҷод кунед. + + + + 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. + Низоми ҷорӣ бо муҳити роҳандозии <strong>BIOS</strong> оғоз ёфт.<br><br>Барои танзими оғози кор аз муҳити BIOS насбкунандаи ҷорӣ бояд боркунандаи роҳандозиро монанди <strong>GRUB</strong> дар аввали қисми диск ё дар <strong>Сабти роҳандозии асосӣ</strong> назди аввали ҷадвали қисми диск (тарзи пазируфта) насб намояд. Ин амал бояд ба таври худкор иҷро шавад, агар шумо барои қисмбандии диск тарзи дастиро интихоб накунед. Дар ин маврид шумо бояд онро мустақилона интихоб ё эҷод кунед. + + + + BootLoaderModel + + + Master Boot Record of %1 + Сабти роҳандозии асосӣ барои %1 + + + + Boot Partition + Қисми диски роҳандозӣ + + + + System Partition + Қисми диски низомӣ + + + + Do not install a boot loader + Боркунандаи роҳандозӣ насб карда нашавад + + + + %1 (%2) + %1 (%2) + + + + Calamares::BlankViewStep + + + Blank Page + Саҳифаи холӣ + + + + Calamares::DebugWindow + + + Form + Шакл + + + + GlobalStorage + Захирагоҳи умумӣ + + + + JobQueue + Навбати вазифа + + + + Modules + Модулҳо + + + + Type: + Навъ: + + + + + none + ҳеҷ чиз + + + + Interface: + Интерфейс: + + + + Tools + Абзорҳо + + + + Reload Stylesheet + Аз нав бор кардани варақаи услубҳо + + + + Widget Tree + Дарахти виҷетҳо + + + + Debug information + Иттилооти ислоҳи нуқсонҳо + + + + Calamares::ExecutionViewStep + + + Set up + Танзимкунӣ + + + + Install + Насбкунӣ + + + + Calamares::FailJob + + + Job failed (%1) + Вазифа иҷро нашуд (%1) + + + + Programmed job failure was explicitly requested. + Қатъшавии вазифаи барномавӣ ботафсил дархост карда шуд. + + + + Calamares::JobThread + + + Done + Тайёр + + + + Calamares::NamedJob + + + Example job (%1) + Вазифаи намунавӣ (%1) + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + Иҷро кардани фармони '%1' дар низоми интихобшуда. + + + + Run command '%1'. + Иҷро кардани фармони '%1'. + + + + Running command %1 %2 + Иҷрокунии фармони %1 %2 + + + + Calamares::PythonJob + + + Running %1 operation. + Иҷрокунии амалиёти %1. + + + + Bad working directory path + Масири феҳристи корӣ нодуруст аст + + + + Working directory %1 for python job %2 is not readable. + Феҳристи кории %1 барои вазифаи "python"-и %2 хонда намешавад. + + + + Bad main script file + Файли нақши асосӣ нодуруст аст + + + + Main script file %1 for python job %2 is not readable. + Файли нақши асосии %1 барои вазифаи "python"-и %2 хонда намешавад. + + + + Boost.Python error in job "%1". + Хатои "Boost.Python" дар вазифаи "%1". + + + + Calamares::QmlViewStep + + + Loading ... + Бор шуда истодааст... + + + + QML Step <i>%1</i>. + Қадами QML <i>%1</i>. + + + + Loading failed. + Боршавӣ қатъ шуд. + + + + Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + Санҷиши талабот барои модули <i>%1</i> ба анҷом расид. + + + + Waiting for %n module(s). + + Дар ҳоли интизори %n модул. + Дар ҳоли интизори %n модул. + + + + + (%n second(s)) + + (%n сония) + (%n сония) + + + + + System-requirements checking is complete. + Санҷиши талаботи низомӣ ба анҷом расид. + + + + Calamares::ViewManager + + + Setup Failed + Танзимкунӣ иҷро нашуд + + + + Installation Failed + Насбкунӣ иҷро нашуд + + + + Would you like to paste the install log to the web? + Шумо мехоҳед, ки сабти рӯйдодҳои насбро ба шабака нусха бардоред? + + + + Error + Хато + + + + + &Yes + &Ҳа + + + + + &No + &Не + + + + &Close + &Пӯшидан + + + + Install Log Paste URL + Гузоштани нишонии URL-и сабти рӯйдодҳои насб + + + + The upload was unsuccessful. No web-paste was done. + Боркунӣ иҷро нашуд. Гузариш ба шабака иҷро нашуд. + + + + Calamares Initialization Failed + Омодашавии Calamares қатъ шуд + + + + %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 насб карда намешавад. Calamares ҳамаи модулҳои танзимкардашударо бор карда натавонист. Ин мушкилие мебошад, ки бо ҳамин роҳ Calamares дар дистрибутиви ҷори кор мекунад. + + + + <br/>The following modules could not be loaded: + <br/>Модулҳои зерин бор карда намешаванд: + + + + Continue with setup? + Танзимкуниро идома медиҳед? + + + + Continue with installation? + Насбкуниро идома медиҳед? + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + Барномаи танзимкунии %1 барои танзим кардани %2 ба диски компютери шумо тағйиротро ворид мекунад.<br/><strong>Шумо ин тағйиротро ботил карда наметавонед.</strong> + + + + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> + Насбкунандаи %1 барои насб кардани %2 ба диски компютери шумо тағйиротро ворид мекунад.<br/><strong>Шумо ин тағйиротро ботил карда наметавонед.</strong> + + + + &Set up now + &Ҳозир танзим карда шавад + + + + &Install now + &Ҳозир насб карда шавад + + + + Go &back + &Бозгашт + + + + &Set up + &Танзим кардан + + + + &Install + &Насб кардан + + + + Setup is complete. Close the setup program. + Танзим ба анҷом расид. Барномаи танзимкуниро пӯшед. + + + + The installation is complete. Close the installer. + Насб ба анҷом расид. Барномаи насбкуниро пӯшед. + + + + Cancel setup without changing the system. + Бекор кардани танзимкунӣ бе тағйирдиҳии низом + + + + Cancel installation without changing the system. + Бекор кардани насбкунӣ бе тағйирдиҳии низом + + + + &Next + &Навбатӣ + + + + &Back + &Ба қафо + + + + &Done + &Тайёр + + + + &Cancel + &Бекор кардан + + + + Cancel setup? + Танзимкуниро бекор мекунед? + + + + Cancel installation? + Насбкуниро бекор мекунед? + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + Шумо дар ҳақиқат мехоҳед, ки раванди танзимкунии ҷориро бекор намоед? +Барномаи танзимкунӣ хомӯш карда мешавад ва ҳамаи тағйирот гум карда мешаванд. + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + Шумо дар ҳақиқат мехоҳед, ки раванди насбкунии ҷориро бекор намоед? +Насбкунанда хомӯш карда мешавад ва ҳамаи тағйирот гум карда мешаванд. + + + + CalamaresPython::Helper + + + Unknown exception type + Навъи истисноии номаълум + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + &Ба қафо + + + + &Next + &Навбатӣ + + + + &Cancel + &Бекор кардан + + + + %1 Setup Program + Барномаи танзимкунии %1 + + + + %1 Installer + Насбкунандаи %1 + + + + CheckerContainer + + + Gathering system information... + Ҷамъкунии иттилооти низомӣ... + + + + ChoicePage + + + Form + Шакл + + + + Select storage de&vice: + Интихоби дастгоҳи &захирагоҳ: + + + + + + + Current: + Ҷорӣ: + + + + After: + Баъд аз: + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Having a GPT partition table and <strong>fat32 512Mb /boot partition is a must for UEFI installs</strong>, either use an existing without formatting or create one. + + + + + Reuse %1 as home partition for %2. + Дубора истифода бурдани %1 ҳамчун диски асосӣ барои %2. + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <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. + + + + + + + + <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 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. + + + + + 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. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + 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. + + + + + Config + + + Set keyboard model to %1.<br/> + Намунаи клавиатура ба %1 танзим карда мешавад.<br/> + + + + Set keyboard layout to %1/%2. + Тарҳбандии клавиатура ба %1 %1/%2 танзим карда мешавад. + + + + The system language will be set to %1. + Забони низом ба %1 танзим карда мешавад. + + + + The numbers and dates locale will be set to %1. + Низоми рақамҳо ва санаҳо ба %1 танзим карда мешавад. + + + + Set timezone to %1/%2.<br/> + Танзими минтақаи вақт ба %1/%2.<br/> + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + Ин барнома аз Шумо якчанд савол мепурсад ва %2-ро дар компютери шумо танзим мекунад. + + + + <h1>Welcome to the Calamares setup program for %1</h1> + <h1>Хуш омадед ба барномаи танзимкунии Calamares барои %1</h1> + + + + <h1>Welcome to %1 setup</h1> + <h1>Хуш омадед ба танзимкунии %1</h1> + + + + <h1>Welcome to the Calamares installer for %1</h1> + <h1>Хуш омадед ба насбкунандаи Calamares барои %1</h1> + + + + <h1>Welcome to the %1 installer</h1> + <h1>Хуш омадед ба насбкунандаи %1</h1> + + + + ContextualProcessJob + + + Contextual Processes Job + Вазифаи равандҳои мазмунӣ + + + + CreatePartitionDialog + + + Create a Partition + Эҷод кардани қисми диск + + + + Si&ze: + &Андоза: + + + + MiB + МБ + + + + Partition &Type: + &Навъи қисми диск: + + + + &Primary + &Асосӣ + + + + E&xtended + &Афзуда + + + + Fi&le System: + &Низоми файлӣ: + + + + LVM LV name + Номи LVM LV + + + + &Mount Point: + &Нуқтаи васл: + + + + Flags: + Нишонҳо: + + + + En&crypt + &Рамзгузорӣ кардан + + + + Logical + Мантиқӣ + + + + Primary + Асосӣ + + + + GPT + GPT + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</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 + Эҷод кардани корбари %1 + + + + Create user <strong>%1</strong>. + Эҷод кардани корбари <strong>%1</strong>. + + + + Creating user %1. + Эҷодкунии корбари %1. + + + + Sudoers dir is not writable. + + + + + Cannot create sudoers file for writing. + + + + + Cannot chmod sudoers file. + + + + + Cannot open groups file for reading. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + Эҷод кардани гурӯҳи ҳаҷм + + + + CreateVolumeGroupJob + + + Create new volume group named %1. + Эҷод кардани гурӯҳи ҳаҷми нав бо номи %1. + + + + Create new volume group named <strong>%1</strong>. + Эҷод кардани гурӯҳи ҳаҷми нав бо номи <strong>%1</strong>. + + + + Creating new volume group named %1. + Эҷодкунии гурӯҳи ҳаҷм бо номи %1. + + + + The installer failed to create a volume group named '%1'. + Насбкунанда гурӯҳи ҳаҷмро бо номи '%1' эҷод карда натавонист. + + + + DeactivateVolumeGroupJob + + + + Deactivate volume group named %1. + Ғайрифаъол кардани гурӯҳи ҳаҷм бо номи %1. + + + + Deactivate volume group named <strong>%1</strong>. + Ғайрифаъол кардани гурӯҳи ҳаҷм бо номи <strong>%1</strong>. + + + + The installer failed to deactivate a volume group named %1. + Насбкунанда гурӯҳи ҳаҷмро бо номи %1 ғайрифаъол карда натавонист. + + + + DeletePartitionJob + + + Delete partition %1. + Нест кардани қисми диски %1. + + + + Delete partition <strong>%1</strong>. + Нест кардани қисми диски <strong>%1</strong>. + + + + Deleting partition %1. + Несткунии қисми диски %1. + + + + The installer failed to delete partition %1. + Насбкунанда қисми диски %1-ро нест карда натавонист. + + + + DeviceInfoWidget + + + 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. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + %1 - %2 (%3) + + + + %1 - (%2) + device[name] - (device-node[name]) + %1 - (%2) + + + + DracutLuksCfgJob + + + Write LUKS configuration for Dracut to %1 + + + + + Skip writing LUKS configuration for Dracut: "/" partition is not encrypted + + + + + Failed to open %1 + %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 + Шакл + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <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 setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + Анҷом + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</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'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB 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. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + 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/> + Намунаи клавиатура ба %1 танзим карда мешавад.<br/> + + + + Set keyboard layout to %1/%2. + Тарҳбандии клавиатура ба %1 %1/%2 танзим карда мешавад. + + + + KeyboardQmlViewStep + + + Keyboard + Клавиатура + + + + 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 + Шакл + + + + <h1>License Agreement</h1> + <h1>Созишномаи иҷозатномавӣ</h1> + + + + I accept the terms and conditions above. + Ман шарту шароитҳои дар боло зикршударо қабул мекунам. + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <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> + + + + + File: %1 + Файл: %1 + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + Минтақа: + + + + Zone: + Шаҳр: + + + + + &Change... + &Тағйир додан... + + + + The system language will be set to %1. + Забони низом ба %1 танзим карда мешавад. + + + + The numbers and dates locale will be set to %1. + Низоми рақамҳо ва санаҳо ба %1 танзим карда мешавад. + + + + Set timezone to %1/%2.<br/> + Танзим кардани минтақаи вақт ба %1/%2.<br/> + + + + LocaleQmlViewStep + + + Location + Ҷойгиршавӣ + + + + LocaleViewStep + + + Location + Ҷойгиршавӣ + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + Хатои танзими рамзгузории "rootfs" + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + Хатои танзимкунӣ + + + + No root mount point is set for MachineId. + + + + + Map + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + Нармафзори идорӣ + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + Хидматҳо + + + + Login + Воридшавӣ + + + + Desktop + Мизи корӣ + + + + Applications + Барномаҳо + + + + Communication + Воситаҳои алоқа + + + + Development + Барномарезӣ + + + + Office + Идора + + + + Multimedia + Мултимедиа + + + + Internet + Интернет + + + + Theming + Мавзӯъҳо + + + + Gaming + Бозиҳо + + + + Utilities + Барномаҳои муфид + + + + NotesQmlViewStep + + + Notes + Ёддоштҳо + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + Offline + + + Timezone: %1 + Минтақаи вақт: %1 + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + + + 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 + Танзими номаълум - %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 + Хатои номаълум + + + + Password is empty + Ниҳонвожаро ворид накардед + + + + PackageChooserPage + + + Form + Шакл + + + + Product Name + Номи маҳсул + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + Интихоби бастаҳо + + + + Please pick a product from the list. The selected product will be installed. + Лутфан, маҳсулеро аз рӯйхат интихоб намоед. Маҳсули интихобшуда насб карда мешавад. + + + + PackageChooserViewStep + + + Packages + Бастаҳо + + + + PackageModel + + + Name + Ном + + + + Description + Тавсиф + + + + Page_Keyboard + + + Form + Шакл + + + + Keyboard Model: + Намунаи клавиатура: + + + + Type here to test your keyboard + Барои санҷидани клавиатура матнро дар ин сатр ворид намоед + + + + Page_UserSetup + + + Form + Шакл + + + + What is your name? + Номи шумо чист? + + + + Your Full Name + Номи пурраи шумо + + + + What name do you want to use to log in? + Кадом номро барои ворид шудан ба низом истифода мебаред? + + + + login + воридшавӣ + + + + 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> + + + + + Computer Name + Номи компютер + + + + 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> + + + + + + Password + Ниҳонвожа + + + + + Repeat Password + Ниҳонвожаро такроран ворид намоед + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + Ниҳонвожаҳои қавӣ лозиманд. + + + + 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 + Низоми EFI + + + + Swap + Мубодила + + + + New partition for %1 + Қисми диски нав барои %1 + + + + New partition + Қисми диски нав + + + + %1 %2 + size[number] filesystem[name] + %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? + Шумо мутмаин ҳастед, ки мехоҳед ҷадвали қисми диски навро дар %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>Пок кардани</strong> диск ва насб кардани %1. + + + + <strong>Replace</strong> a partition with %1. + <strong>Иваз кардани</strong> қисми диск бо %1. + + + + <strong>Manual</strong> partitioning. + <strong>Ба таври дастӣ</strong> эҷод кардани қисмҳои диск. + + + + 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) + Диски <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>%3</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. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</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. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + 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. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + Шакл + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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 + + + %1 (%2) + %1 (%2) + + + + unknown + номаълум + + + + extended + афзуда + + + + unformatted + + + + + swap + мубодила + + + + Default Keyboard Model + Намунаи клавиатураи муқаррар + + + + + Default + Муқаррар + + + + + + + File not found + Файл ёфт нашуд + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + RemoveUserJob + + + Remove live user from target system + + + + + RemoveVolumeGroupJob + + + + Remove Volume Group named %1. + Тоза кардани гурӯҳи ҳаҷм бо номи %1. + + + + Remove Volume Group named <strong>%1</strong>. + Тоза кардани гурӯҳи ҳаҷм бо номи <strong>%1</strong>. + + + + The installer failed to remove a volume group named '%1'. + Насбкунанда гурӯҳи ҳаҷмро бо номи '%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. + %1 дар ин қисми диск насб карда намешавад. + + + + Data partition (%1) + Қисми диски иттилоотӣ (%1) + + + + Unknown system partition (%1) + Қисми диски низомии номаълум (%1) + + + + %1 system partition (%2) + Қисми диски низомии %1 (%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: + Қисми диски низомии: + + + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + 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. + Иваз кардани андозаи қисми диски %1. + + + + Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + Иваз кардани андозаи гурӯҳи ҳаҷм + + + + ResizeVolumeGroupJob + + + + Resize volume group named %1 from %2 to %3. + Иваз кардани андозаи гурӯҳи ҳаҷм бо номи %1 аз %2 ба %3. + + + + Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. + Иваз кардани андозаи гурӯҳи ҳаҷм бо номи <strong>%1</strong> аз <strong>%2</strong> ба <strong>%3</strong>. + + + + The installer failed to resize a volume group named '%1'. + Насбкунанда андозаи гурӯҳи ҳаҷмро бо номи '%1' иваз карда натавонист. + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + Талаботи низом + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + Ин барнома аз Шумо якчанд савол мепурсад ва %2-ро дар компютери шумо танзим мекунад. + + + + ScanningDialog + + + Scanning storage devices... + + + + + Partitioning + + + + + SetHostNameJob + + + Set hostname %1 + + + + + Set hostname <strong>%1</strong>. + + + + + Setting hostname %1. + + + + + + Internal Error + Хатои дохилӣ + + + + + Cannot write hostname to target system + + + + + SetKeyboardLayoutJob + + + Set keyboard model to %1, layout to %2-%3 + Танзимкунии намунаи клавиатура ба %1, тарҳбандӣ ба %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 %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <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 %1MiB <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 %1MiB <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 + Танзими ниҳонвожа барои корбари %1 + + + + Setting password for user %1. + Танзимкунии ниҳонвожа барои корбари %1. + + + + Bad destination system path. + + + + + rootMountPoint is %1 + + + + + Cannot disable root account. + + + + + passwd terminated with error code %1. + + + + + Cannot set password for user %1. + Ниҳонвожа барои корбари %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 setup procedure. + + + + + 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. + + + + + TrackingKUserFeedbackJob + + + KDE user feedback + Изҳори назари корбари KDE + + + + Configuring KDE user feedback. + Танзимкунии изҳори назари корбари KDE. + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + + 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>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + + + + + <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> + + + + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. 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 only be sent <b>once</b> after the installation finishes. + + + + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + + + + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + + + + + TrackingViewStep + + + Feedback + Изҳори назар + + + + UsersPage + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your username is too long. + Номи корбари шумо хеле дароз аст. + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + Корбарон + + + + VariantModel + + + Key + Тугма + + + + Value + Қимат + + + + VolumeGroupBaseDialog + + + Create Volume Group + Эҷод кардани гурӯҳи ҳаҷм + + + + List of Physical Volumes + + + + + Volume Group Name: + Номи гурӯҳи ҳаҷм: + + + + Volume Group Type: + Навъи гурӯҳи ҳаҷм: + + + + Physical Extent Size: + + + + + MiB + МБ + + + + Total Size: + Андозаи умумӣ: + + + + Used Size: + Андозаи истифодашуда: + + + + Total Sectors: + Бахшҳои умумӣ: + + + + Quantity of LVs: + Шумораи LV-ҳо: + + + + WelcomePage + + + Form + Шакл + + + + + Select application and system language + Интихоби забон барои низом ва барномаҳо + + + + &About + &Дар бораи барнома + + + + Open donations website + Сомонаи саҳмгузориро кушоед + + + + &Donate + &Саҳмгузорӣ + + + + Open help and support website + Сомонаи кумак ва дастгириро кушоед + + + + &Support + &Дастгирӣ + + + + Open issues and bug-tracking website + Сомонаи масъалаҳо ва пайгирии нуқсонҳоро кушоед + + + + &Known issues + &Масъалаҳои маълум + + + + Open release notes website + Сомонаро бо қайдҳои нашр кушоед + + + + &Release notes + &Қайдҳои нашр + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + <h1>Хуш омадед ба барномаи танзимкунии Calamares барои %1.</h1> + + + + <h1>Welcome to %1 setup.</h1> + <h1>Хуш омадед ба танзимкунии %1.</h1> + + + + <h1>Welcome to the Calamares installer for %1.</h1> + <h1>Хуш омадед ба насбкунандаи Calamares барои %1.</h1> + + + + <h1>Welcome to the %1 installer.</h1> + <h1>Хуш омадед ба насбкунандаи %1.</h1> + + + + %1 support + Дастгирии %1 + + + + About %1 setup + Дар бораи танзими %1 + + + + About %1 installer + Дар бораи насбкунандаи %1 + + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> 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. + + + + + WelcomeQmlViewStep + + + Welcome + Хуш омадед + + + + WelcomeViewStep + + + Welcome + Хуш омадед + + + + about + + + <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-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + 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. + + + + + Back + Ба қафо + + + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Забонҳо</h1> </br> + Танзими маҳаллигардонии низом ба забон ва маҷмӯаи аломатҳо барои баъзеи унсурҳои интерфейси корбарӣ дар сатри фармондиҳӣ таъсир мерасонад. Танзими ҷорӣ: <strong>%1</strong>. + + + + <h1>Locales</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + <h1>Маҳаллигардонӣ</h1> </br> + Танзими маҳаллигардонии низом ба забон ва маҷмӯаи аломатҳо барои баъзеи унсурҳои интерфейси корбарӣ дар сатри фармондиҳӣ таъсир мерасонад. Танзими ҷорӣ: <strong>%1</strong>. + + + + Back + Ба қафо + + + + keyboardq + + + Keyboard Model + Намунаи клавиатура + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + Навсозӣ кардан + + + + + Layouts + Тарҳбандиҳо + + + + + Keyboard Layout + Тарҳбандии клавиатура + + + + Models + Намунаҳо + + + + Variants + Имконот + + + + Test your keyboard + Клавиатураи худро санҷед + + + + localeq + + + System language set to %1 + Забони низом ба %1 танзим шуд + + + + Numbers and dates locale set to %1 + Низоми рақамҳо ва санаҳо ба %1 танзим шуд + + + + Change + Тағйир додан + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + <h3>%1</h3> + <p>Матни намунавии қайдҳои нашр.</p> + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + Ба қафо + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + <h3>Хуш омадед ба насбкунандаи <quote>%2</quote> барои %1</h3> + <p>Ин барнома аз Шумо якчанд савол мепурсад ва %1-ро дар компютери шумо танзим мекунад.</p> + + + + About + Дар бораи барнома + + + + Support + Дастгирӣ + + + + Known issues + Масъалаҳои маълум + + + + Release notes + Қайдҳои нашр + + + + Donate + Саҳмгузорӣ + + + From d5d2d2a1f10bce859e025e2dc520b4b7dea5af72 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sun, 26 Jul 2020 11:02:36 +0200 Subject: [PATCH 286/335] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/calamares.desktop b/calamares.desktop index 78c943ddb..a70f377cf 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -94,6 +94,10 @@ Name[hr]=Instaliraj sustav Icon[hr]=calamares GenericName[hr]=Instalacija sustava Comment[hr]=Calamares — Instalacija sustava +Name[ie]=Installar li sistema +Icon[ie]=calamares +GenericName[ie]=Installator del sistema +Comment[ie]=Calamares — Installator del sistema Name[hu]=Rendszer telepítése Icon[hu]=calamares GenericName[hu]=Rendszertelepítő @@ -184,6 +188,10 @@ Name[sv]=Installera system Icon[sv]=calamares GenericName[sv]=Systeminstallerare Comment[sv]=Calamares — Systeminstallerare +Name[tg]=Насбкунии низом +Icon[tg]=calamares +GenericName[tg]=Насбкунандаи низом +Comment[tg]=Calamares — Насбкунандаи низом Name[th]=ติดตั้งระบบ Name[uk]=Встановити Систему Icon[uk]=calamares From d0cdc8169e6bc5de34039d68e3fdc49e32968673 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Sun, 26 Jul 2020 11:02:37 +0200 Subject: [PATCH 287/335] i18n: [python] Automatic merge of Transifex translations --- lang/python/ie/LC_MESSAGES/python.mo | Bin 0 -> 384 bytes lang/python/ie/LC_MESSAGES/python.po | 339 ++++++++++++++++++++++++++ lang/python/tg/LC_MESSAGES/python.mo | Bin 0 -> 661 bytes lang/python/tg/LC_MESSAGES/python.po | 343 +++++++++++++++++++++++++++ 4 files changed, 682 insertions(+) create mode 100644 lang/python/ie/LC_MESSAGES/python.mo create mode 100644 lang/python/ie/LC_MESSAGES/python.po create mode 100644 lang/python/tg/LC_MESSAGES/python.mo create mode 100644 lang/python/tg/LC_MESSAGES/python.po diff --git a/lang/python/ie/LC_MESSAGES/python.mo b/lang/python/ie/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..1f1e0d4d55d5df0ea52fe62ec7f76d4c7780189f GIT binary patch literal 384 zcmYL@!A=4(5QZ^&+M{O=HSqw^(k>cZO7?)bn2jPET)Ed}SZa3LOdh*>u9U*7P1#*mBAv;CL7>9kVJI`L3H6KuTnl9)ZtW!n{k_|^s!^eco zli6!JeFW1G#U>#fvIEn(X&Ow9^e$y!=)%;TD4JQQ-d`zQ*Z}-&_EKPJ_7MMkl=w11J kR6!I3S+%yZqGMxgCx~wTjxO#E$bTERH93z-*ck+^Uy##m^Z)<= literal 0 HcmV?d00001 diff --git a/lang/python/ie/LC_MESSAGES/python.po b/lang/python/ie/LC_MESSAGES/python.po new file mode 100644 index 000000000..115a704d7 --- /dev/null +++ b/lang/python/ie/LC_MESSAGES/python.po @@ -0,0 +1,339 @@ +# 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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Interlingue (https://www.transifex.com/calamares/teams/20061/ie/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ie\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" + +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:415 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:416 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:421 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:422 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:439 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:443 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:449 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:463 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" diff --git a/lang/python/tg/LC_MESSAGES/python.mo b/lang/python/tg/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..1b88d83072b32a1b3a75791b2f5df45ad88b6f02 GIT binary patch literal 661 zcmYk3O>fgc5QY~h7hjNo0|z9ATdT6R6A+|MQ}u(iiXb!!X--_W&c@wh@0#6BQjUQ7 z2aq^%199P02_&M@_BU+Ho!`PZp_Gvxy`J&BvtPfj&wL;lGstaZ5xI)IK#Itb8^|l< z8nTbvL<-aXB|^TU-a*34gxo@Hq0XZURQye@AjND|$CfsFw9B=@Vg#*~wI?eZb?DaH&l{W1yf)93wzO#y z(W9$_#L$k4z-w*NHXn+@LmxBCBPfTZM>MR^Z~;nTbpOG8h~YhD#?p>v(xl8P9YI&b zsLt7$TDaOE~RtmPOEEyW%Cx?pT|fC%F3zGs6x zWkOaV-eKBsTifca)5=9(u~eUHT9>iv;gv>E*%tQSCUHjMwNiYJl&&kCnFwS)NlmR> zh3RK)R>IvHl;)})abMiQ>05W=#(;9*j@=J8c1P~;^qo8Y^_jR&{}oTLW&HO|-Fq~? baX+V>=o!P=M>odO(b>1jJokN)9{S`DZAjl9 literal 0 HcmV?d00001 diff --git a/lang/python/tg/LC_MESSAGES/python.po b/lang/python/tg/LC_MESSAGES/python.po new file mode 100644 index 000000000..a5ff5ce5e --- /dev/null +++ b/lang/python/tg/LC_MESSAGES/python.po @@ -0,0 +1,343 @@ +# 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: +# Victor Ibragimov , 2020 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-06-18 15:42+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Last-Translator: Victor Ibragimov , 2020\n" +"Language-Team: Tajik (https://www.transifex.com/calamares/teams/20061/tg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "Танзимоти GRUB." + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "Васлкунии қисмҳои диск." + +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "Хатои танзимкунӣ" + +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:415 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:416 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:421 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:422 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:439 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:443 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:449 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:463 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" From d22f392609954dcbe5a3624dbada580a28016401 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 26 Jul 2020 11:09:45 +0200 Subject: [PATCH 288/335] CMake: update language lists - welcome Tajik - welcome Interlingue --- CMakeLists.txt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fb3ccf699..4b6f03fea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,14 +147,15 @@ set( CALAMARES_DESCRIPTION_SUMMARY # copy these four lines to four backup lines, add "p", and then update # the original four lines with the current translations). # -# Total 66 languages -set( _tx_complete az az_AZ ca he hi hr ja sq tr_TR uk zh_TW ) -set( _tx_good as ast be cs_CZ da de es fi_FI fr hu it_IT ko lt ml - nl pt_BR pt_PT ru sk sv zh_CN ) +# Total 68 languages +set( _tx_complete az az_AZ ca da fi_FI he hi hr ja pt_BR sq tr_TR + uk zh_TW ) +set( _tx_good as ast be cs_CZ de es fr hu it_IT ko lt ml nl pt_PT + ru sk sv zh_CN ) set( _tx_ok ar bg el en_GB es_MX es_PR et eu fa gl id is mr nb pl - ro sl sr sr@latin th ) -set( _tx_incomplete bn ca@valencia eo fr_CH gu kk kn lo lv mk ne_NP - ur uz ) + ro sl sr sr@latin tg th ) +set( _tx_incomplete bn ca@valencia eo fr_CH gu ie kk kn lo lv mk + ne_NP ur uz ) ### Required versions # From 5e35bcc8302512e988fa9f62c76650378fe830c3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 10:42:45 +0200 Subject: [PATCH 289/335] Changes: document new features, translations --- CHANGES | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index ad374e40a..27501358f 100644 --- a/CHANGES +++ b/CHANGES @@ -6,11 +6,16 @@ website will have to do for older versions. # 3.2.28 (unreleased) # This release contains contributions from (alphabetically by first name): - - No external contributors yet + - Anke Boersma + - apt-ghetto ## Core ## - A new object *Network* is available to QML modules in `io.calamares.core`. It exposes network status through the *hasInternet* property. + - Welcome to Tajik translations. This has reached sufficient completion + to be included in the drop-down list of languages on the welcome page. + - Welcome to [Interlingue](https://en.wikipedia.org/wiki/Interlingue). + The translation is at an early stage. ## Modules ## - The *locale* module has been completely redone on the inside. @@ -21,7 +26,11 @@ This release contains contributions from (alphabetically by first name): the work of figuring out maps. Note that the map uses several GeoIP and GeoData providers and you may need to configure the URLs with suitable usernames for those services. #1426 - + - Both *locale* and *localeq* can now be configured to use the system's + timezone setting -- this can be useful to avoid both hard-coding an + initial zone and doing extra GeoIP lookups, in the case where the + live system already does so. #1391 + - The *users* module no longer accepts `root` as a username. #1462 # 3.2.27 (2020-07-11) # From 1babcd2aa486ead1127c21fff15abee4c48a2c33 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 10:57:15 +0200 Subject: [PATCH 290/335] [libcalamares] Put Permissions in CalamaresUtils namespace - most of the things in utils/ are in the CalamaresUtils namespace, let Permissions follow suit. Chase the name change in the *preservefiles* module. - add an `apply()` function for doing the most basic of chmod. Note that we don't use `QFile::setPermissions()` because the **values** used are different (0755 for chmod is 0x755 in the enum value passed to `setPermissions()`). --- src/libcalamares/utils/Permissions.cpp | 14 ++++++++++++++ src/libcalamares/utils/Permissions.h | 8 ++++++++ src/modules/preservefiles/PreserveFiles.cpp | 4 ++-- src/modules/preservefiles/PreserveFiles.h | 2 +- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/utils/Permissions.cpp b/src/libcalamares/utils/Permissions.cpp index 3166d840a..3f5350e86 100644 --- a/src/libcalamares/utils/Permissions.cpp +++ b/src/libcalamares/utils/Permissions.cpp @@ -8,9 +8,14 @@ #include "Permissions.h" +#include + #include #include +namespace CalamaresUtils +{ + Permissions::Permissions() : m_username() , m_group() @@ -64,3 +69,12 @@ Permissions::parsePermissions( QString const& p ) return; } + +bool +Permissions::apply( const QString& path, int mode ) +{ + int r = chmod( path.toUtf8().constData(), mode ); + return r == 0; +} + +} // namespace CalamaresUtils diff --git a/src/libcalamares/utils/Permissions.h b/src/libcalamares/utils/Permissions.h index b6e2d3a44..913d037d5 100644 --- a/src/libcalamares/utils/Permissions.h +++ b/src/libcalamares/utils/Permissions.h @@ -13,6 +13,9 @@ #include +namespace CalamaresUtils +{ + /** * @brief The Permissions class takes a QString @p in the form of * ::, checks it for validity, and makes the three @@ -56,6 +59,9 @@ public: */ QString octal() const { return QString::number( value(), 8 ); } + /// chmod(path, mode), returns true on success + static bool apply( const QString& path, int mode ); + private: void parsePermissions( QString const& p ); @@ -65,4 +71,6 @@ private: bool m_valid; }; +} // namespace CalamaresUtils + #endif // LIBCALAMARES_PERMISSIONS_H diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp index 3e34024e7..57c2c5422 100644 --- a/src/modules/preservefiles/PreserveFiles.cpp +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -220,7 +220,7 @@ PreserveFiles::setConfigurationMap( const QVariantMap& configurationMap ) { QString filename = li.toString(); if ( !filename.isEmpty() ) - m_items.append( Item { filename, filename, Permissions( defaultPermissions ), ItemType::Path } ); + m_items.append( Item { filename, filename, CalamaresUtils::Permissions( defaultPermissions ), ItemType::Path } ); else { cDebug() << "Empty filename for preservefiles, item" << c; @@ -248,7 +248,7 @@ PreserveFiles::setConfigurationMap( const QVariantMap& configurationMap ) } else { - m_items.append( Item { QString(), dest, Permissions( perm ), t } ); + m_items.append( Item { QString(), dest, CalamaresUtils::Permissions( perm ), t } ); } } else diff --git a/src/modules/preservefiles/PreserveFiles.h b/src/modules/preservefiles/PreserveFiles.h index 214ff0df8..fdba933fa 100644 --- a/src/modules/preservefiles/PreserveFiles.h +++ b/src/modules/preservefiles/PreserveFiles.h @@ -34,7 +34,7 @@ class PLUGINDLLEXPORT PreserveFiles : public Calamares::CppJob { QString source; QString dest; - Permissions perm; + CalamaresUtils::Permissions perm; ItemType type; }; From 389e36303f5027cf2ca4d9a6e56c15265c4f0325 Mon Sep 17 00:00:00 2001 From: demmm Date: Mon, 27 Jul 2020 11:17:00 +0200 Subject: [PATCH 291/335] Changes: document keyboardq changes --- CHANGES | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES b/CHANGES index 27501358f..3d930c30d 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,8 @@ This release contains contributions from (alphabetically by first name): initial zone and doing extra GeoIP lookups, in the case where the live system already does so. #1391 - The *users* module no longer accepts `root` as a username. #1462 + - The *keyboardq* module is now more inline with the look of the rest + of the Calamares modules, use of a background image is removed. # 3.2.27 (2020-07-11) # From 59dff815fcec2247276ddd8264bda029656f2451 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 11:13:35 +0200 Subject: [PATCH 292/335] [libcalamares] Additional apply() methods for Permissions --- src/libcalamares/utils/Permissions.cpp | 48 ++++++++++++++++++++++++-- src/libcalamares/utils/Permissions.h | 20 +++++++++-- 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/utils/Permissions.cpp b/src/libcalamares/utils/Permissions.cpp index 3f5350e86..a7afbc5fc 100644 --- a/src/libcalamares/utils/Permissions.cpp +++ b/src/libcalamares/utils/Permissions.cpp @@ -8,11 +8,14 @@ #include "Permissions.h" -#include +#include "Logger.h" +#include #include #include +#include + namespace CalamaresUtils { @@ -73,8 +76,49 @@ Permissions::parsePermissions( QString const& p ) bool Permissions::apply( const QString& path, int mode ) { - int r = chmod( path.toUtf8().constData(), mode ); + // We **don't** use QFile::setPermissions() here because it takes + // a Qt flags object that subtlely does not align with POSIX bits. + // The Qt flags are **hex** based, so 0x755 for rwxr-xr-x, while + // our integer (mode_t) stores **octal** based flags. + // + // Call chmod(2) directly, that's what Qt would be doing underneath + // anyway. + int r = chmod( path.toUtf8().constData(), mode_t( mode ) ); + if ( r ) + { + cDebug() << Logger::SubEntry << "Could not set permissions of" << path << "to" << QString::number( mode, 8 ); + } return r == 0; } +bool +Permissions::apply( const QString& path, const CalamaresUtils::Permissions& p ) +{ + if ( !p.isValid() ) + { + return false; + } + bool r = apply( path, p.value() ); + if ( r ) + { + // We don't use chgrp(2) or chown(2) here because then we need to + // go through the users list (which one, target or source?) to get + // uid_t and gid_t values to pass to that system call. + // + // Do a lame cop-out and let the chown(8) utility do the heavy lifting. + if ( QProcess::execute( "chown", { p.username() + ':' + p.group(), path } ) ) + { + r = false; + cDebug() << Logger::SubEntry << "Could not set owner of" << path << "to" + << ( p.username() + ':' + p.group() ); + } + } + if ( r ) + { + /* NOTUSED */ apply( path, p.value() ); + } + return r; +} + + } // namespace CalamaresUtils diff --git a/src/libcalamares/utils/Permissions.h b/src/libcalamares/utils/Permissions.h index 913d037d5..1f0dd38da 100644 --- a/src/libcalamares/utils/Permissions.h +++ b/src/libcalamares/utils/Permissions.h @@ -49,7 +49,7 @@ public: * * Bear in mind that input is in octal, but integers are just integers; * naively printing them will get decimal results (e.g. 493 from the - * input of "root:wheel:755"). + * input of "root:wheel:755"). This is suitable to pass to apply(). */ int value() const { return m_value; } /** @brief The value (file permission) as octal string @@ -59,8 +59,24 @@ public: */ QString octal() const { return QString::number( value(), 8 ); } - /// chmod(path, mode), returns true on success + /** @brief Sets the file-access @p mode of @p path + * + * Pass a path that is relative (or absolute) in the **host** system. + */ static bool apply( const QString& path, int mode ); + /** @brief Do both chmod and chown on @p path + * + * Note that interpreting user- and group- names for applying the + * permissions can be different between the host system and the target + * system; the target might not have a "live" user, for instance, and + * the host won't have the user-entered username for the installation. + * + * For this call, the names are interpreted in the **host** system. + * Pass a path that is relative (or absolute) in the **host** system. + */ + static bool apply( const QString& path, const Permissions& p ); + /// Convenience method for apply(const QString&, const Permissions& ) + bool apply( const QString& path ) const { return apply( path, *this ); } private: void parsePermissions( QString const& p ); From 90a0605f38d5268b262998270426b293b0c946e0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 12:25:50 +0200 Subject: [PATCH 293/335] [preservefiles] [users] Use the Permissions methods - don't call out to tools (executables) when we have an API for it (which might call out to those tools, but that's abstracted) --- src/modules/preservefiles/PreserveFiles.cpp | 21 ++------------------- src/modules/users/CreateUserJob.cpp | 3 ++- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp index 57c2c5422..8352e861d 100644 --- a/src/modules/preservefiles/PreserveFiles.cpp +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -157,26 +157,9 @@ PreserveFiles::exec() { if ( it.perm.isValid() ) { - auto s_p = CalamaresUtils::System::instance(); - - int r; - - r = s_p->targetEnvCall( QStringList { "chown", it.perm.username(), bare_dest } ); - if ( r ) - { - cWarning() << "Could not chown target" << bare_dest; - } - - r = s_p->targetEnvCall( QStringList { "chgrp", it.perm.group(), bare_dest } ); - if ( r ) - { - cWarning() << "Could not chgrp target" << bare_dest; - } - - r = s_p->targetEnvCall( QStringList { "chmod", it.perm.octal(), bare_dest } ); - if ( r ) + if ( !it.perm.apply( CalamaresUtils::System::instance()->targetPath( bare_dest ) ) ) { - cWarning() << "Could not chmod target" << bare_dest; + cWarning() << "Could not set attributes of" << bare_dest; } } diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index f0b1dca88..84a42437a 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -12,6 +12,7 @@ #include "JobQueue.h" #include "utils/CalamaresUtilsSystem.h" #include "utils/Logger.h" +#include "utils/Permissions.h" #include #include @@ -103,7 +104,7 @@ CreateUserJob::exec() if ( fileResult ) { - if ( QProcess::execute( "chmod", { "440", fileResult.path() } ) ) + if ( CalamaresUtils::Permissions::apply( fileResult.path(), 0440 ) ) { return Calamares::JobResult::error( tr( "Cannot chmod sudoers file." ) ); } From b99b87f787c0e32e1eadb095fafdd45bf8a4f6be Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 12:37:04 +0200 Subject: [PATCH 294/335] [users] Explain some weird internals --- src/modules/users/CreateUserJob.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 84a42437a..2031aa029 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -131,7 +131,8 @@ CreateUserJob::exec() } } - // If we're looking to reuse the contents of an existing /home + // If we're looking to reuse the contents of an existing /home. + // This GS setting comes from the **partitioning** module. if ( gs->value( "reuseHome" ).toBool() ) { QString shellFriendlyHome = "/home/" + m_userName; @@ -141,6 +142,7 @@ CreateUserJob::exec() QString backupDirName = "dotfiles_backup_" + QDateTime::currentDateTime().toString( "yyyy-MM-dd_HH-mm-ss" ); existingHome.mkdir( backupDirName ); + // We need the extra `sh -c` here to ensure that we can expand the shell globs CalamaresUtils::System::instance()->targetEnvCall( { "sh", "-c", "mv -f " + shellFriendlyHome + "/.* " + shellFriendlyHome + "/" + backupDirName } ); } From 1fddf723fe30cc2ba35d96a1c11069050c312e00 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 13:18:09 +0200 Subject: [PATCH 295/335] [users] FreeBSD support creating groups --- src/modules/users/CreateUserJob.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 2031aa029..8927af8ab 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -81,7 +81,11 @@ ensureGroupsExistInTarget( const QStringList& wantedGroups, const QStringList& a { if ( !availableGroups.contains( group ) ) { +#ifdef __FreeBSD__ + CalamaresUtils::System::instance()->targetEnvCall( { "pw", "groupadd", "-n", group } ); +#else CalamaresUtils::System::instance()->targetEnvCall( { "groupadd", group } ); +#endif } } } From 26b8c826301aa26386e239c4d346f706a60a9e88 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 13:29:51 +0200 Subject: [PATCH 296/335] [users] Refactor user-creation and user-group-setting into methods - This is prep-work for handling other tools for user- and group- creation as well. --- src/modules/users/CreateUserJob.cpp | 74 ++++++++++++++++++----------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 8927af8ab..e052fa266 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -90,6 +90,40 @@ ensureGroupsExistInTarget( const QStringList& wantedGroups, const QStringList& a } } +static Calamares::JobResult +createUser( const QString& loginName, const QString& fullName, const QString& shell ) +{ + QStringList useradd { "useradd", "-m", "-U" }; + if ( !shell.isEmpty() ) + { + useradd << "-s" << shell; + } + useradd << "-c" << fullName; + useradd << loginName; + + auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( useradd ); + if ( commandResult.getExitCode() ) + { + cError() << "useradd failed" << commandResult.getExitCode(); + return commandResult.explainProcess( useradd, std::chrono::seconds( 10 ) /* bogus timeout */ ); + } + return Calamares::JobResult::ok(); +} + +static Calamares::JobResult +setUserGroups( const QString& loginName, const QStringList& groups ) +{ + auto commandResult + = CalamaresUtils::System::instance()->targetEnvCommand( { "usermod", "-aG", groups.join( ',' ), loginName } ); + if ( commandResult.getExitCode() ) + { + cError() << "usermod failed" << commandResult.getExitCode(); + return commandResult.explainProcess( "usermod", std::chrono::seconds( 10 ) /* bogus timeout */ ); + } + return Calamares::JobResult::ok(); +} + + Calamares::JobResult CreateUserJob::exec() { @@ -122,18 +156,12 @@ CreateUserJob::exec() cDebug() << "[CREATEUSER]: preparing groups"; QStringList availableGroups = groupsInTargetSystem( destDir ); - ensureGroupsExistInTarget( m_defaultGroups, availableGroups ); - - QString defaultGroups = m_defaultGroups.join( ',' ); - if ( m_autologin ) + QStringList groupsForThisUser = m_defaultGroups; + if ( m_autologin && gs->contains( "autologinGroup" ) && !gs->value( "autologinGroup" ).toString().isEmpty() ) { - if ( gs->contains( "autologinGroup" ) && !gs->value( "autologinGroup" ).toString().isEmpty() ) - { - QString autologinGroup = gs->value( "autologinGroup" ).toString(); - ensureGroupsExistInTarget( QStringList { autologinGroup }, availableGroups ); - defaultGroups.append( QString( ",%1" ).arg( autologinGroup ) ); - } + groupsForThisUser << gs->value( "autologinGroup" ).toString(); } + ensureGroupsExistInTarget( m_defaultGroups, availableGroups ); // If we're looking to reuse the contents of an existing /home. // This GS setting comes from the **partitioning** module. @@ -154,33 +182,21 @@ CreateUserJob::exec() cDebug() << "[CREATEUSER]: creating user"; - QStringList useradd { "useradd", "-m", "-U" }; - QString shell = gs->value( "userShell" ).toString(); - if ( !shell.isEmpty() ) - { - useradd << "-s" << shell; - } - useradd << "-c" << m_fullName; - useradd << m_userName; - - auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( useradd ); - if ( commandResult.getExitCode() ) + auto useraddResult = createUser( m_userName, m_fullName, gs->value( "userShell" ).toString() ); + if ( !useraddResult ) { - cError() << "useradd failed" << commandResult.getExitCode(); - return commandResult.explainProcess( useradd, std::chrono::seconds( 10 ) /* bogus timeout */ ); + return useraddResult; } - commandResult - = CalamaresUtils::System::instance()->targetEnvCommand( { "usermod", "-aG", defaultGroups, m_userName } ); - if ( commandResult.getExitCode() ) + auto usergroupsResult = setUserGroups( m_userName, groupsForThisUser ); + if ( !usergroupsResult ) { - cError() << "usermod failed" << commandResult.getExitCode(); - return commandResult.explainProcess( "usermod", std::chrono::seconds( 10 ) /* bogus timeout */ ); + return usergroupsResult; } QString userGroup = QString( "%1:%2" ).arg( m_userName ).arg( m_userName ); QString homeDir = QString( "/home/%1" ).arg( m_userName ); - commandResult = CalamaresUtils::System::instance()->targetEnvCommand( { "chown", "-R", userGroup, homeDir } ); + auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( { "chown", "-R", userGroup, homeDir } ); if ( commandResult.getExitCode() ) { cError() << "chown failed" << commandResult.getExitCode(); From 8a6e4af511b0a5294e7236f4309cf2ab1c41cb4d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 13:45:00 +0200 Subject: [PATCH 297/335] [users] FreeBSD support creating user - call pw useradd and pw usermod as needed; the code paths are basically the same in invoking a program in the target system to do the work. --- src/modules/users/CreateUserJob.cpp | 35 ++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index e052fa266..0fe931fa8 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -93,19 +93,33 @@ ensureGroupsExistInTarget( const QStringList& wantedGroups, const QStringList& a static Calamares::JobResult createUser( const QString& loginName, const QString& fullName, const QString& shell ) { - QStringList useradd { "useradd", "-m", "-U" }; + QStringList useraddCommand; +#ifdef __FreeBSD__ + useraddCommand << "pw" + << "useradd" + << "-n" << loginName << "-m" + << "-c" << fullName; + if ( !shell.isEmpty() ) + { + useraddCommand << "-s" << shell; + } +#else + useraddCommand << "useradd" + << "-m" + << "-U"; if ( !shell.isEmpty() ) { useradd << "-s" << shell; } useradd << "-c" << fullName; useradd << loginName; +#endif - auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( useradd ); + auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( useraddCommand ); if ( commandResult.getExitCode() ) { cError() << "useradd failed" << commandResult.getExitCode(); - return commandResult.explainProcess( useradd, std::chrono::seconds( 10 ) /* bogus timeout */ ); + return commandResult.explainProcess( useraddCommand, std::chrono::seconds( 10 ) /* bogus timeout */ ); } return Calamares::JobResult::ok(); } @@ -113,12 +127,21 @@ createUser( const QString& loginName, const QString& fullName, const QString& sh static Calamares::JobResult setUserGroups( const QString& loginName, const QStringList& groups ) { - auto commandResult - = CalamaresUtils::System::instance()->targetEnvCommand( { "usermod", "-aG", groups.join( ',' ), loginName } ); + QStringList setgroupsCommand; +#ifdef __FreeBSD__ + setgroupsCommand << "pw" + << "usermod" + << "-n" << loginName << "-G" << groups.join( ',' ); +#else + setgroupsCommand << "usermod" + << "-aG" << groups.join( ',' ) << loginName; +#endif + + auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( setgroupsCommand ); if ( commandResult.getExitCode() ) { cError() << "usermod failed" << commandResult.getExitCode(); - return commandResult.explainProcess( "usermod", std::chrono::seconds( 10 ) /* bogus timeout */ ); + return commandResult.explainProcess( setgroupsCommand, std::chrono::seconds( 10 ) /* bogus timeout */ ); } return Calamares::JobResult::ok(); } From 8ce7457023aa49bfce2d3291f70612cb2d86958e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 15:00:14 +0200 Subject: [PATCH 298/335] [users] Add test for create-users code - just one test for groups-file loading - while here fix bug that blank and comment lines were being kept as valid group names --- src/modules/users/CMakeLists.txt | 7 +++++++ src/modules/users/CreateUserJob.cpp | 16 ++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index 1d969a93b..a449d39ac 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -49,6 +49,13 @@ calamares_add_test( ${CRYPT_LIBRARIES} ) +calamares_add_test( + userscreatetest + SOURCES + CreateUserTests.cpp + CreateUserJob.cpp +) + calamares_add_test( userstest SOURCES diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 0fe931fa8..beb454ac0 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -55,7 +55,7 @@ CreateUserJob::prettyStatusMessage() const return tr( "Creating user %1." ).arg( m_userName ); } -static QStringList +STATICTEST QStringList groupsInTargetSystem( const QDir& targetRoot ) { QFileInfo groupsFi( targetRoot.absoluteFilePath( "etc/group" ) ); @@ -66,10 +66,22 @@ groupsInTargetSystem( const QDir& targetRoot ) } QString groupsData = QString::fromLocal8Bit( groupsFile.readAll() ); QStringList groupsLines = groupsData.split( '\n' ); - for ( QStringList::iterator it = groupsLines.begin(); it != groupsLines.end(); ++it ) + QStringList::iterator it = groupsLines.begin(); + while ( it != groupsLines.end() ) { + if ( it->startsWith( '#' ) ) + { + it = groupsLines.erase( it ); + continue; + } int indexOfFirstToDrop = it->indexOf( ':' ); + if ( indexOfFirstToDrop < 1 ) + { + it = groupsLines.erase( it ); + continue; + } it->truncate( indexOfFirstToDrop ); + ++it; } return groupsLines; } From 1e08ee084f096b3cdf5cfd081abe9ad5d5b1eca6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 15:35:24 +0200 Subject: [PATCH 299/335] [users] Actually add the test file --- src/modules/users/CreateUserTests.cpp | 80 +++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/modules/users/CreateUserTests.cpp diff --git a/src/modules/users/CreateUserTests.cpp b/src/modules/users/CreateUserTests.cpp new file mode 100644 index 000000000..b351109b3 --- /dev/null +++ b/src/modules/users/CreateUserTests.cpp @@ -0,0 +1,80 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "CreateUserJob.h" + +#include "utils/Logger.h" + +#include +#include + +// Implementation details +extern QStringList groupsInTargetSystem( const QDir& targetRoot ); + + +class CreateUserTests : public QObject +{ + Q_OBJECT +public: + CreateUserTests(); + virtual ~CreateUserTests() {} + +private Q_SLOTS: + void initTestCase(); + + void testReadGroup(); +}; + +CreateUserTests::CreateUserTests() {} + +void +CreateUserTests::initTestCase() +{ + Logger::setupLogLevel( Logger::LOGDEBUG ); + cDebug() << "Users test started."; +} + +void +CreateUserTests::testReadGroup() +{ + QDir root( "/" ); + QVERIFY( root.exists() ); + + // Get the groups in the host system + QStringList groups = groupsInTargetSystem( root ); + QVERIFY( groups.count() > 2 ); +#ifdef __FreeBSD__ + QVERIFY( groups.contains( QStringLiteral( "wheel" ) ) ); +#else + QVERIFY( groups.contains( QStringLiteral( "root" ) ) ); +#endif + QVERIFY( groups.contains( QStringLiteral( "sys" ) ) ); + + for ( const QString& s : groups ) + { + QVERIFY( !s.isEmpty() ); + QVERIFY( !s.contains( '#' ) ); + } +} + +QTEST_GUILESS_MAIN( CreateUserTests ) + +#include "utils/moc-warnings.h" + +#include "CreateUserTests.moc" From dab831b2ffe994fba4f07ae3b0f426080e8d00ae Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 25 Jul 2020 12:47:01 +0200 Subject: [PATCH 300/335] [users] Introduce a (stub) Config object --- src/modules/users/CMakeLists.txt | 1 + src/modules/users/Config.cpp | 33 ++++++++++++++++++++++++++++ src/modules/users/Config.h | 37 ++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 src/modules/users/Config.cpp create mode 100644 src/modules/users/Config.h diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index a449d39ac..bf93eb26a 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -28,6 +28,7 @@ calamares_add_plugin( users UsersPage.cpp SetHostNameJob.cpp CheckPWQuality.cpp + Config.cpp UI page_usersetup.ui RESOURCES diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp new file mode 100644 index 000000000..fb69298f6 --- /dev/null +++ b/src/modules/users/Config.cpp @@ -0,0 +1,33 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "Config.h" + +Config::Config( QObject* parent ) + : QObject( parent ) +{ +} + +Config::~Config() {} + +void +Config::setConfigurationMap( const QVariantMap& ) +{ +} diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h new file mode 100644 index 000000000..95c8c33bd --- /dev/null +++ b/src/modules/users/Config.h @@ -0,0 +1,37 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * License-Filename: LICENSE + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef USERS_CONFIG_H +#define USERS_CONFIG_H + +#include +#include + +class Config : public QObject +{ +public: + Config( QObject* parent = nullptr ); + ~Config(); + + // Currently, config does nothing + void setConfigurationMap( const QVariantMap& ); +}; + +#endif From 4d85a64e4f5e130562aaa1b6100a7c9a53eb00b4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 17:14:06 +0200 Subject: [PATCH 301/335] [users] Fix build on Linux --- src/modules/users/CreateUserJob.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index beb454ac0..a6812dd53 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -121,10 +121,10 @@ createUser( const QString& loginName, const QString& fullName, const QString& sh << "-U"; if ( !shell.isEmpty() ) { - useradd << "-s" << shell; + useraddCommand << "-s" << shell; } - useradd << "-c" << fullName; - useradd << loginName; + useraddCommand << "-c" << fullName; + useraddCommand << loginName; #endif auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( useraddCommand ); From f9b114a67ad7d6b27bd90148493b82575c838460 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 25 Jul 2020 15:21:04 +0200 Subject: [PATCH 302/335] [users] Pass the Config object to the Page - delay construction of the Page (widget) until it's needed - hand the Config object to the Page on construction This is prep-work for putting the configuration information into the Config object, rather than in the UI elements. --- src/modules/users/UsersPage.cpp | 7 ++++--- src/modules/users/UsersPage.h | 5 ++++- src/modules/users/UsersViewStep.cpp | 28 +++++++++++++++++++++------- src/modules/users/UsersViewStep.h | 3 +++ 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 5c649d622..62b8920e7 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -79,9 +79,10 @@ labelOk( QLabel* pix, QLabel* label ) pix->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::Yes, CalamaresUtils::Original, label->size() ) ); } -UsersPage::UsersPage( QWidget* parent ) +UsersPage::UsersPage( Config* config, QWidget* parent ) : QWidget( parent ) , ui( new Ui::Page_UserSetup ) + , m_config( config ) , m_readyFullName( false ) , m_readyUsername( false ) , m_readyHostname( false ) @@ -99,12 +100,12 @@ UsersPage::UsersPage( QWidget* parent ) connect( ui->textBoxUserVerifiedPassword, &QLineEdit::textChanged, this, &UsersPage::onPasswordTextChanged ); connect( ui->textBoxRootPassword, &QLineEdit::textChanged, this, &UsersPage::onRootPasswordTextChanged ); connect( ui->textBoxVerifiedRootPassword, &QLineEdit::textChanged, this, &UsersPage::onRootPasswordTextChanged ); - connect( ui->checkBoxValidatePassword, &QCheckBox::stateChanged, this, [ this ]( int ) { + connect( ui->checkBoxValidatePassword, &QCheckBox::stateChanged, this, [this]( int ) { onPasswordTextChanged( ui->textBoxUserPassword->text() ); onRootPasswordTextChanged( ui->textBoxRootPassword->text() ); checkReady( isReady() ); } ); - connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, [ this ]( int checked ) { + connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, [this]( int checked ) { /* When "reuse" is checked, hide the fields for explicitly * entering the root password. However, if we're going to * disable the root password anyway, hide them all regardless of diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 3382e9335..a13886de6 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -29,6 +29,8 @@ #include +class Config; + class QLabel; namespace Ui @@ -40,7 +42,7 @@ class UsersPage : public QWidget { Q_OBJECT public: - explicit UsersPage( QWidget* parent = nullptr ); + explicit UsersPage( Config* config, QWidget* parent = nullptr ); virtual ~UsersPage(); bool isReady(); @@ -95,6 +97,7 @@ private: void retranslate(); Ui::Page_UserSetup* ui; + Config* m_config; PasswordCheckList m_passwordChecks; bool m_passwordChecksChanged = false; diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index fe633b1c2..3fc86eb91 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -20,17 +20,17 @@ #include "UsersViewStep.h" +#include "Config.h" #include "SetHostNameJob.h" #include "SetPasswordJob.h" #include "UsersPage.h" +#include "GlobalStorage.h" +#include "JobQueue.h" #include "utils/Logger.h" #include "utils/NamedEnum.h" #include "utils/Variant.h" -#include "GlobalStorage.h" -#include "JobQueue.h" - CALAMARES_PLUGIN_FACTORY_DEFINITION( UsersViewStepFactory, registerPlugin< UsersViewStep >(); ) static const NamedEnumTable< SetHostNameJob::Action >& @@ -53,11 +53,11 @@ hostnameActions() UsersViewStep::UsersViewStep( QObject* parent ) : Calamares::ViewStep( parent ) - , m_widget( new UsersPage() ) + , m_widget( nullptr ) , m_actions( SetHostNameJob::Action::None ) + , m_config( new Config( this ) ) { emit nextStatusChanged( true ); - connect( m_widget, &UsersPage::checkReady, this, &UsersViewStep::nextStatusChanged ); } @@ -80,6 +80,11 @@ UsersViewStep::prettyName() const QWidget* UsersViewStep::widget() { + if ( !m_widget ) + { + m_widget = new UsersPage( m_config ); + connect( m_widget, &UsersPage::checkReady, this, &UsersViewStep::nextStatusChanged ); + } return m_widget; } @@ -87,7 +92,7 @@ UsersViewStep::widget() bool UsersViewStep::isNextEnabled() const { - return m_widget->isReady(); + return m_widget ? m_widget->isReady() : true; } @@ -122,7 +127,10 @@ UsersViewStep::jobs() const void UsersViewStep::onActivate() { - m_widget->onActivate(); + if ( m_widget ) + { + m_widget->onActivate(); + } } @@ -130,6 +138,10 @@ void UsersViewStep::onLeave() { m_jobs.clear(); + if ( !m_widget ) + { + return; + } m_jobs.append( m_widget->createJobs( m_defaultGroups ) ); Calamares::Job* j; @@ -222,4 +234,6 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) Action hostsfileAction = getBool( configurationMap, "writeHostsFile", true ) ? Action::WriteEtcHosts : Action::None; m_actions = hostsfileAction | hostnameAction; + + m_config->setConfigurationMap( configurationMap ); } diff --git a/src/modules/users/UsersViewStep.h b/src/modules/users/UsersViewStep.h index 03cc83819..aacf11f2a 100644 --- a/src/modules/users/UsersViewStep.h +++ b/src/modules/users/UsersViewStep.h @@ -29,6 +29,7 @@ #include #include +class Config; class UsersPage; class PLUGINDLLEXPORT UsersViewStep : public Calamares::ViewStep @@ -62,6 +63,8 @@ private: QStringList m_defaultGroups; SetHostNameJob::Actions m_actions; + + Config* m_config; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( UsersViewStepFactory ) From 8497aad7a173500d67fa3e28dbf609bf42caa9b6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 25 Jul 2020 15:27:41 +0200 Subject: [PATCH 303/335] [users] Apply coding style --- src/modules/users/CheckPWQuality.cpp | 8 ++++---- src/modules/users/PasswordTests.cpp | 4 ++-- src/modules/users/Tests.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/modules/users/CheckPWQuality.cpp b/src/modules/users/CheckPWQuality.cpp index ab3eed84f..f06137c9b 100644 --- a/src/modules/users/CheckPWQuality.cpp +++ b/src/modules/users/CheckPWQuality.cpp @@ -55,7 +55,7 @@ DEFINE_CHECK_FUNC( minLength ) { cDebug() << Logger::SubEntry << "minLength set to" << minLength; checks.push_back( PasswordCheck( []() { return QCoreApplication::translate( "PWQ", "Password is too short" ); }, - [ minLength ]( const QString& s ) { return s.length() >= minLength; }, + [minLength]( const QString& s ) { return s.length() >= minLength; }, PasswordCheck::Weight( 10 ) ) ); } } @@ -71,7 +71,7 @@ DEFINE_CHECK_FUNC( maxLength ) { cDebug() << Logger::SubEntry << "maxLength set to" << maxLength; checks.push_back( PasswordCheck( []() { return QCoreApplication::translate( "PWQ", "Password is too long" ); }, - [ maxLength ]( const QString& s ) { return s.length() <= maxLength; }, + [maxLength]( const QString& s ) { return s.length() <= maxLength; }, PasswordCheck::Weight( 10 ) ) ); } } @@ -349,8 +349,8 @@ DEFINE_CHECK_FUNC( libpwquality ) /* Something actually added? */ if ( requirement_count ) { - checks.push_back( PasswordCheck( [ settings ]() { return settings->explanation(); }, - [ settings ]( const QString& s ) { + checks.push_back( PasswordCheck( [settings]() { return settings->explanation(); }, + [settings]( const QString& s ) { int r = settings->check( s ); if ( r < 0 ) { diff --git a/src/modules/users/PasswordTests.cpp b/src/modules/users/PasswordTests.cpp index b33526162..0c1b4bffc 100644 --- a/src/modules/users/PasswordTests.cpp +++ b/src/modules/users/PasswordTests.cpp @@ -24,9 +24,9 @@ QTEST_GUILESS_MAIN( PasswordTests ) -PasswordTests::PasswordTests() { } +PasswordTests::PasswordTests() {} -PasswordTests::~PasswordTests() { } +PasswordTests::~PasswordTests() {} void PasswordTests::initTestCase() diff --git a/src/modules/users/Tests.cpp b/src/modules/users/Tests.cpp index 75c5e6d5f..196fd9d68 100644 --- a/src/modules/users/Tests.cpp +++ b/src/modules/users/Tests.cpp @@ -37,7 +37,7 @@ class UsersTests : public QObject Q_OBJECT public: UsersTests(); - virtual ~UsersTests() { } + virtual ~UsersTests() {} private Q_SLOTS: void initTestCase(); From 2f786079f30e75b4c999e8f109e4e650750777af Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 25 Jul 2020 15:39:19 +0200 Subject: [PATCH 304/335] [users] Move shell settings to the Config object - this is a set-only property (as far as the current ViewStep is concerned) and is passed around in GS for non-obvious reasons. --- src/modules/users/Config.cpp | 27 ++++++++++++++++++++++++++- src/modules/users/Config.h | 29 ++++++++++++++++++++++++++++- src/modules/users/UsersViewStep.cpp | 9 --------- 3 files changed, 54 insertions(+), 11 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index fb69298f6..58e2b76ac 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -20,6 +20,11 @@ #include "Config.h" +#include "GlobalStorage.h" +#include "JobQueue.h" +#include "utils/Logger.h" +#include "utils/Variant.h" + Config::Config( QObject* parent ) : QObject( parent ) { @@ -28,6 +33,26 @@ Config::Config( QObject* parent ) Config::~Config() {} void -Config::setConfigurationMap( const QVariantMap& ) +Config::setUserShell( const QString& shell ) +{ + if ( !shell.isEmpty() && !shell.startsWith( '/' ) ) + { + cWarning() << "User shell" << shell << "is not an absolute path."; + return; + } + // The shell is put into GS because the CreateUser job expects it there + Calamares::JobQueue::instance()->globalStorage()->insert( "userShell", shell ); +} + + +void +Config::setConfigurationMap( const QVariantMap& configurationMap ) { + QString shell( QLatin1String( "/bin/bash" ) ); // as if it's not set at all + if ( configurationMap.contains( "userShell" ) ) + { + shell = CalamaresUtils::getString( configurationMap, "userShell" ); + } + // Now it might be explicitly set to empty, which is ok + setUserShell( shell ); } diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 95c8c33bd..27416e88d 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -26,12 +26,39 @@ class Config : public QObject { + Q_OBJECT + + Q_PROPERTY( QString userShell READ userShell WRITE setUserShell NOTIFY userShellChanged ) + public: Config( QObject* parent = nullptr ); ~Config(); - // Currently, config does nothing void setConfigurationMap( const QVariantMap& ); + + /** @brief Full path to the user's shell executable + * + * Typically this will be /bin/bash, but it can be set from + * the config file with the *userShell* setting. + */ + QString userShell() const { return m_userShell; } + +public Q_SLOTS: + /** @brief Sets the user's shell if possible + * + * If the path is empty, that's ok: no shell will be explicitly set, + * so the user will get whatever shell is set to default in the target. + * + * The given non-empty @p path must be an absolute path (for use inside + * the target system!); if it is not, the shell is not changed. + */ + void setUserShell( const QString& path ); + +signals: + void userShellChanged( const QString& ); + +private: + QString m_userShell; }; #endif diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 3fc86eb91..e037902ab 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -209,15 +209,6 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_widget->setPasswordCheckboxVisible( getBool( configurationMap, "allowWeakPasswords", false ) ); m_widget->setValidatePasswordDefault( !getBool( configurationMap, "allowWeakPasswordsDefault", false ) ); - QString shell( QLatin1String( "/bin/bash" ) ); // as if it's not set at all - if ( configurationMap.contains( "userShell" ) ) - { - shell = CalamaresUtils::getString( configurationMap, "userShell" ); - } - // Now it might be explicitly set to empty, which is ok - - Calamares::JobQueue::instance()->globalStorage()->insert( "userShell", shell ); - using Action = SetHostNameJob::Action; QString hostnameActionString = CalamaresUtils::getString( configurationMap, "setHostname" ); From 35916eb20ff8ea351cba4047932ce52aeec62e15 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 25 Jul 2020 16:39:13 +0200 Subject: [PATCH 305/335] [users] Move autologin and sudoers groups to Config --- src/modules/users/Config.cpp | 28 ++++++++++++++++++++++++++++ src/modules/users/Config.h | 17 +++++++++++++++++ src/modules/users/UsersViewStep.cpp | 14 -------------- 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 58e2b76ac..a071da8fc 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -44,6 +44,31 @@ Config::setUserShell( const QString& shell ) Calamares::JobQueue::instance()->globalStorage()->insert( "userShell", shell ); } +static inline void +setGS( const QString& key, const QString& group ) +{ + auto* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( !gs || group.isEmpty() ) + { + return; + } + gs->insert( key, group ); +} + +void +Config::setAutologinGroup( const QString& group ) +{ + setGS( QStringLiteral( "autologinGroup" ), group ); + emit autologinGroupChanged( group ); +} + +void +Config::setSudoersGroup( const QString& group ) +{ + setGS( QStringLiteral( "sudoersGroup" ), group ); + emit sudoersGroupChanged( group ); +} + void Config::setConfigurationMap( const QVariantMap& configurationMap ) @@ -55,4 +80,7 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) } // Now it might be explicitly set to empty, which is ok setUserShell( shell ); + + setAutologinGroup( CalamaresUtils::getString( configurationMap, "autologinGroup" ) ); + setSudoersGroup( CalamaresUtils::getString( configurationMap, "sudoersGroup" ) ); } diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 27416e88d..b399c6141 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -30,6 +30,9 @@ class Config : public QObject Q_PROPERTY( QString userShell READ userShell WRITE setUserShell NOTIFY userShellChanged ) + Q_PROPERTY( QString autologinGroup READ autologinGroup WRITE setAutologinGroup NOTIFY autologinGroupChanged ) + Q_PROPERTY( QString sudoersGroup READ sudoersGroup WRITE setSudoersGroup NOTIFY sudoersGroupChanged ) + public: Config( QObject* parent = nullptr ); ~Config(); @@ -43,6 +46,11 @@ public: */ QString userShell() const { return m_userShell; } + /// The group of which auto-login users must be a member + QString autologinGroup() const { return m_autologinGroup; } + /// The group of which users who can "sudo" must be a member + QString sudoersGroup() const { return m_sudoersGroup; } + public Q_SLOTS: /** @brief Sets the user's shell if possible * @@ -54,11 +62,20 @@ public Q_SLOTS: */ void setUserShell( const QString& path ); + /// Sets the autologin group; empty is ignored + void setAutologinGroup( const QString& group ); + /// Sets the sudoer group; empty is ignored + void setSudoersGroup( const QString& group ); + signals: void userShellChanged( const QString& ); + void autologinGroupChanged( const QString& ); + void sudoersGroupChanged( const QString& ); private: QString m_userShell; + QString m_autologinGroup; + QString m_sudoersGroup; }; #endif diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index e037902ab..745163c2c 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -174,20 +174,6 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_defaultGroups = QStringList { "lp", "video", "network", "storage", "wheel", "audio" }; } - if ( configurationMap.contains( "autologinGroup" ) - && configurationMap.value( "autologinGroup" ).type() == QVariant::String ) - { - Calamares::JobQueue::instance()->globalStorage()->insert( - "autologinGroup", configurationMap.value( "autologinGroup" ).toString() ); - } - - if ( configurationMap.contains( "sudoersGroup" ) - && configurationMap.value( "sudoersGroup" ).type() == QVariant::String ) - { - Calamares::JobQueue::instance()->globalStorage()->insert( "sudoersGroup", - configurationMap.value( "sudoersGroup" ).toString() ); - } - bool setRootPassword = getBool( configurationMap, "setRootPassword", true ); Calamares::JobQueue::instance()->globalStorage()->insert( "setRootPassword", setRootPassword ); From 66ae1823a5ca7c99572d4f1f5cf27a143d050bce Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 25 Jul 2020 16:54:15 +0200 Subject: [PATCH 306/335] [users] Give Config object a user and login name - This is incomplete, because the business logic of guessing a login from the username is not here. --- src/modules/users/Config.cpp | 21 +++++++++++++++++++++ src/modules/users/Config.h | 17 +++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index a071da8fc..856d27684 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -70,6 +70,27 @@ Config::setSudoersGroup( const QString& group ) } +void +Config::setLoginName( const QString& login ) +{ + if ( login != m_loginName ) + { + m_loginName = login; + emit loginNameChanged( login ); + } +} + +void +Config::setUserName( const QString& name ) +{ + if ( name != m_fullName ) + { + m_fullName = name; + emit userNameChanged( name ); + } +} + + void Config::setConfigurationMap( const QVariantMap& configurationMap ) { diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index b399c6141..32e51a309 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -33,6 +33,9 @@ class Config : public QObject Q_PROPERTY( QString autologinGroup READ autologinGroup WRITE setAutologinGroup NOTIFY autologinGroupChanged ) Q_PROPERTY( QString sudoersGroup READ sudoersGroup WRITE setSudoersGroup NOTIFY sudoersGroupChanged ) + Q_PROPERTY( QString userName READ userName WRITE setUserName NOTIFY userNameChanged ) + Q_PROPERTY( QString loginName READ loginName WRITE setLoginName NOTIFY loginNameChanged ) + public: Config( QObject* parent = nullptr ); ~Config(); @@ -51,6 +54,11 @@ public: /// The group of which users who can "sudo" must be a member QString sudoersGroup() const { return m_sudoersGroup; } + /// The full (GECOS) name of the user + QString userName() const { return m_fullName; } + /// The login name of the user + QString loginName() const { return m_loginName; } + public Q_SLOTS: /** @brief Sets the user's shell if possible * @@ -67,15 +75,24 @@ public Q_SLOTS: /// Sets the sudoer group; empty is ignored void setSudoersGroup( const QString& group ); + /// Sets the full name, may guess a loginName + void setUserName( const QString& name ); + /// Sets the login name + void setLoginName( const QString& login ); + signals: void userShellChanged( const QString& ); void autologinGroupChanged( const QString& ); void sudoersGroupChanged( const QString& ); + void userNameChanged( const QString& ); + void loginNameChanged( const QString& ); private: QString m_userShell; QString m_autologinGroup; QString m_sudoersGroup; + QString m_fullName; + QString m_loginName; }; #endif From 411a202ba5be1546e83e56faaefcff9e59444a30 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 15:34:59 +0200 Subject: [PATCH 307/335] [users] Do some login-name guessing --- src/modules/users/Config.cpp | 41 ++++++++++++++++++++++++++++++++++++ src/modules/users/Config.h | 3 ++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 856d27684..ac01f9933 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -23,8 +23,11 @@ #include "GlobalStorage.h" #include "JobQueue.h" #include "utils/Logger.h" +#include "utils/String.h" #include "utils/Variant.h" +#include + Config::Config( QObject* parent ) : QObject( parent ) { @@ -75,11 +78,34 @@ Config::setLoginName( const QString& login ) { if ( login != m_loginName ) { + m_customLoginName = !login.isEmpty(); m_loginName = login; emit loginNameChanged( login ); } } +static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); + +static QString +makeLoginNameSuggestion( const QStringList& parts ) +{ + if ( parts.isEmpty() ) + { + return QString(); + } + + QString usernameSuggestion = parts.first(); + for ( int i = 1; i < parts.length(); ++i ) + { + if ( !parts.value( i ).isEmpty() ) + { + usernameSuggestion.append( parts.value( i ).at( 0 ) ); + } + } + + return USERNAME_RX.indexIn( usernameSuggestion ) != -1 ? usernameSuggestion : QString(); +} + void Config::setUserName( const QString& name ) { @@ -87,6 +113,21 @@ Config::setUserName( const QString& name ) { m_fullName = name; emit userNameChanged( name ); + + // Build login and hostname, if needed + QRegExp rx( "[^a-zA-Z0-9 ]", Qt::CaseInsensitive ); + QString cleanName = CalamaresUtils::removeDiacritics( name ).toLower().replace( rx, " " ).simplified(); + QStringList cleanParts = cleanName.split( ' ' ); + + if ( !m_customLoginName ) + { + QString login = makeLoginNameSuggestion( cleanParts ); + if ( !login.isEmpty() && login != m_loginName ) + { + m_loginName = login; + emit loginNameChanged( login ); + } + } } } diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 32e51a309..6aed5840f 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -77,7 +77,7 @@ public Q_SLOTS: /// Sets the full name, may guess a loginName void setUserName( const QString& name ); - /// Sets the login name + /// Sets the login name (flags it as "custom") void setLoginName( const QString& login ); signals: @@ -93,6 +93,7 @@ private: QString m_sudoersGroup; QString m_fullName; QString m_loginName; + bool m_customLoginName = false; }; #endif From 5ffa09000a0b880d6ebcb808cc91733d0a21e8af Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 15:54:52 +0200 Subject: [PATCH 308/335] [users] Add hostname guessing to Config --- src/modules/users/Config.cpp | 73 ++++++++++++++++++++++++++++++++++-- src/modules/users/Config.h | 11 ++++++ 2 files changed, 81 insertions(+), 3 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index ac01f9933..9deaef81f 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -26,6 +26,7 @@ #include "utils/String.h" #include "utils/Variant.h" +#include #include Config::Config( QObject* parent ) @@ -84,12 +85,56 @@ Config::setLoginName( const QString& login ) } } -static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); +void +Config::setHostName( const QString& host ) +{ + if ( host != m_hostName ) + { + m_customHostName = !host.isEmpty(); + m_hostName = host; + emit hostNameChanged( host ); + } +} + + +/** @brief Guess the machine's name + * + * If there is DMI data, use that; otherwise, just call the machine "-pc". + * Reads the DMI data just once. + */ +static QString +guessProductName() +{ + static bool tried = false; + static QString dmiProduct; + + if ( !tried ) + { + // yes validateHostnameText() but these files can be a mess + QRegExp dmirx( "[^a-zA-Z0-9]", Qt::CaseInsensitive ); + QFile dmiFile( QStringLiteral( "/sys/devices/virtual/dmi/id/product_name" ) ); + + if ( dmiFile.exists() && dmiFile.open( QIODevice::ReadOnly ) ) + { + dmiProduct = QString::fromLocal8Bit( dmiFile.readAll().simplified().data() ) + .toLower() + .replace( dmirx, " " ) + .remove( ' ' ); + } + if ( dmiProduct.isEmpty() ) + { + dmiProduct = QStringLiteral( "-pc" ); + } + tried = true; + } + return dmiProduct; +} static QString makeLoginNameSuggestion( const QStringList& parts ) { - if ( parts.isEmpty() ) + static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); + if ( parts.isEmpty() || parts.first().isEmpty() ) { return QString(); } @@ -106,6 +151,20 @@ makeLoginNameSuggestion( const QStringList& parts ) return USERNAME_RX.indexIn( usernameSuggestion ) != -1 ? usernameSuggestion : QString(); } +static QString +makeHostnameSuggestion( const QStringList& parts ) +{ + static const QRegExp HOSTNAME_RX( "^[a-zA-Z0-9][-a-zA-Z0-9_]*$" ); + if ( parts.isEmpty() || parts.first().isEmpty() ) + { + return QString(); + } + + QString productName = guessProductName(); + QString hostnameSuggestion = QStringLiteral( "%1-%2" ).arg( parts.first() ).arg( productName ); + return HOSTNAME_RX.indexIn( hostnameSuggestion ) != -1 ? hostnameSuggestion : QString(); +} + void Config::setUserName( const QString& name ) { @@ -128,10 +187,18 @@ Config::setUserName( const QString& name ) emit loginNameChanged( login ); } } + if ( !m_customHostName ) + { + QString hostname = makeHostnameSuggestion( cleanParts ); + if ( !hostname.isEmpty() && hostname != m_hostName ) + { + m_hostName = hostname; + emit hostNameChanged( hostname ); + } + } } } - void Config::setConfigurationMap( const QVariantMap& configurationMap ) { diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 6aed5840f..59f0e8d68 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -36,6 +36,8 @@ class Config : public QObject Q_PROPERTY( QString userName READ userName WRITE setUserName NOTIFY userNameChanged ) Q_PROPERTY( QString loginName READ loginName WRITE setLoginName NOTIFY loginNameChanged ) + Q_PROPERTY( QString hostName READ hostName WRITE setHostName NOTIFY hostNameChanged ) + public: Config( QObject* parent = nullptr ); ~Config(); @@ -59,6 +61,9 @@ public: /// The login name of the user QString loginName() const { return m_loginName; } + /// The host name (name for the system) + QString hostName() const { return m_hostName; } + public Q_SLOTS: /** @brief Sets the user's shell if possible * @@ -80,12 +85,16 @@ public Q_SLOTS: /// Sets the login name (flags it as "custom") void setLoginName( const QString& login ); + /// Sets the host name (flags it as "custom") + void setHostName( const QString& host ); + signals: void userShellChanged( const QString& ); void autologinGroupChanged( const QString& ); void sudoersGroupChanged( const QString& ); void userNameChanged( const QString& ); void loginNameChanged( const QString& ); + void hostNameChanged( const QString& ); private: QString m_userShell; @@ -93,7 +102,9 @@ private: QString m_sudoersGroup; QString m_fullName; QString m_loginName; + QString m_hostName; bool m_customLoginName = false; + bool m_customHostName = false; }; #endif From 8a14cc7ffc1616dd254456190ab53e23465c6809 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 16:09:29 +0200 Subject: [PATCH 309/335] [users] Move some configuration from Page to Config object - make the HostName textbox just a view on the Config's HostName - make the username and login textboxes view onto Config - query the Config rather than the UI for job data --- src/modules/users/Config.cpp | 2 + src/modules/users/UsersPage.cpp | 135 ++++------------------------ src/modules/users/UsersPage.h | 7 -- src/modules/users/UsersViewStep.cpp | 2 +- src/modules/users/page_usersetup.ui | 4 +- 5 files changed, 24 insertions(+), 126 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 9deaef81f..24b14faf1 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -168,6 +168,8 @@ makeHostnameSuggestion( const QStringList& parts ) void Config::setUserName( const QString& name ) { + // TODO: handle "empty" case + // TODO: rename to "FullName" if ( name != m_fullName ) { m_fullName = name; diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 62b8920e7..60afa1bb3 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -24,9 +24,9 @@ */ #include "UsersPage.h" - #include "ui_page_usersetup.h" +#include "Config.h" #include "CreateUserJob.h" #include "SetHostNameJob.h" #include "SetPasswordJob.h" @@ -34,7 +34,6 @@ #include "GlobalStorage.h" #include "JobQueue.h" #include "Settings.h" - #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" #include "utils/Retranslator.h" @@ -94,8 +93,6 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) // Connect signals and slots connect( ui->textBoxFullName, &QLineEdit::textEdited, this, &UsersPage::onFullNameTextEdited ); - connect( ui->textBoxUsername, &QLineEdit::textEdited, this, &UsersPage::onUsernameTextEdited ); - connect( ui->textBoxHostname, &QLineEdit::textEdited, this, &UsersPage::onHostnameTextEdited ); connect( ui->textBoxUserPassword, &QLineEdit::textChanged, this, &UsersPage::onPasswordTextChanged ); connect( ui->textBoxUserVerifiedPassword, &QLineEdit::textChanged, this, &UsersPage::onPasswordTextChanged ); connect( ui->textBoxRootPassword, &QLineEdit::textChanged, this, &UsersPage::onRootPasswordTextChanged ); @@ -124,8 +121,13 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) checkReady( isReady() ); } ); - m_customUsername = false; - m_customHostname = false; + connect( ui->textBoxHostName, &QLineEdit::textEdited, config, &Config::setHostName); + connect( config, &Config::hostNameChanged, ui->textBoxHostName, &QLineEdit::setText ); + connect( config, &Config::hostNameChanged, this, &UsersPage::validateHostnameText ); + + connect( ui->textBoxLoginName, &QLineEdit::textEdited, config, &Config::setLoginName ); + connect( config, &Config::loginNameChanged, ui->textBoxLoginName, &QLineEdit::setText ); + connect( config, &Config::loginNameChanged, this, &UsersPage::validateUsernameText ); setWriteRootPassword( true ); ui->checkBoxReusePassword->setChecked( true ); @@ -147,13 +149,13 @@ UsersPage::retranslate() ui->retranslateUi( this ); if ( Calamares::Settings::instance()->isSetupMode() ) { - ui->textBoxUsername->setToolTip( tr( "If more than one person will " + ui->textBoxLoginName->setToolTip( tr( "If more than one person will " "use this computer, you can create multiple " "accounts after setup." ) ); } else { - ui->textBoxUsername->setToolTip( tr( "If more than one person will " + ui->textBoxLoginName->setToolTip( tr( "If more than one person will " "use this computer, you can create multiple " "accounts after installation." ) ); } @@ -177,12 +179,6 @@ UsersPage::isReady() return readyFields && m_readyRootPassword; } -QString -UsersPage::getHostname() const -{ - return ui->textBoxHostname->text(); -} - QString UsersPage::getRootPassword() const { @@ -206,7 +202,7 @@ UsersPage::getRootPassword() const QPair< QString, QString > UsersPage::getUserPassword() const { - return QPair< QString, QString >( ui->textBoxUsername->text(), ui->textBoxUserPassword->text() ); + return QPair< QString, QString >( m_config->loginName(), ui->textBoxUserPassword->text() ); } QList< Calamares::job_ptr > @@ -221,9 +217,9 @@ UsersPage::createJobs( const QStringList& defaultGroupsList ) Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); Calamares::Job* j; - j = new CreateUserJob( ui->textBoxUsername->text(), - ui->textBoxFullName->text().isEmpty() ? ui->textBoxUsername->text() - : ui->textBoxFullName->text(), + j = new CreateUserJob( m_config->loginName(), + m_config->userName().isEmpty() ? m_config->loginName() + : m_config->userName(), ui->checkBoxAutoLogin->isChecked(), defaultGroupsList ); list.append( Calamares::job_ptr( j ) ); @@ -232,13 +228,13 @@ UsersPage::createJobs( const QStringList& defaultGroupsList ) { gs->insert( "reuseRootPassword", ui->checkBoxReusePassword->isChecked() ); } - gs->insert( "hostname", ui->textBoxHostname->text() ); + gs->insert( "hostname", m_config->hostName() ); if ( ui->checkBoxAutoLogin->isChecked() ) { - gs->insert( "autologinUser", ui->textBoxUsername->text() ); + gs->insert( "autologinUser", m_config->loginName() ); } - gs->insert( "username", ui->textBoxUsername->text() ); + gs->insert( "username", m_config->loginName() ); gs->insert( "password", CalamaresUtils::obscure( ui->textBoxUserPassword->text() ) ); return list; @@ -269,6 +265,7 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) { ui->labelFullNameError->clear(); ui->labelFullName->clear(); +#if 0 if ( !m_customUsername ) { ui->textBoxUsername->clear(); @@ -277,6 +274,7 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) { ui->textBoxHostname->clear(); } +#endif m_readyFullName = false; } else @@ -284,97 +282,10 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) ui->labelFullName->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::Yes, CalamaresUtils::Original, ui->labelFullName->size() ) ); m_readyFullName = true; - fillSuggestions(); } checkReady( isReady() ); } -/** @brief Guess the machine's name - * - * If there is DMI data, use that; otherwise, just call the machine "-pc". - * Reads the DMI data just once. - */ -static QString -guessProductName() -{ - static bool tried = false; - static QString dmiProduct; - - if ( !tried ) - { - // yes validateHostnameText() but these files can be a mess - QRegExp dmirx( "[^a-zA-Z0-9]", Qt::CaseInsensitive ); - QFile dmiFile( QStringLiteral( "/sys/devices/virtual/dmi/id/product_name" ) ); - - if ( dmiFile.exists() && dmiFile.open( QIODevice::ReadOnly ) ) - { - dmiProduct = QString::fromLocal8Bit( dmiFile.readAll().simplified().data() ) - .toLower() - .replace( dmirx, " " ) - .remove( ' ' ); - } - if ( dmiProduct.isEmpty() ) - { - dmiProduct = QStringLiteral( "-pc" ); - } - tried = true; - } - return dmiProduct; -} - -void -UsersPage::fillSuggestions() -{ - QString fullName = ui->textBoxFullName->text(); - QRegExp rx( "[^a-zA-Z0-9 ]", Qt::CaseInsensitive ); - QString cleanName = CalamaresUtils::removeDiacritics( fullName ).toLower().replace( rx, " " ).simplified(); - QStringList cleanParts = cleanName.split( ' ' ); - - if ( !m_customUsername ) - { - if ( !cleanParts.isEmpty() && !cleanParts.first().isEmpty() ) - { - QString usernameSuggestion = cleanParts.first(); - for ( int i = 1; i < cleanParts.length(); ++i ) - { - if ( !cleanParts.value( i ).isEmpty() ) - { - usernameSuggestion.append( cleanParts.value( i ).at( 0 ) ); - } - } - if ( USERNAME_RX.indexIn( usernameSuggestion ) != -1 ) - { - ui->textBoxUsername->setText( usernameSuggestion ); - validateUsernameText( usernameSuggestion ); - m_customUsername = false; - } - } - } - - if ( !m_customHostname ) - { - if ( !cleanParts.isEmpty() && !cleanParts.first().isEmpty() ) - { - QString hostnameSuggestion; - QString productName = guessProductName(); - hostnameSuggestion = QString( "%1-%2" ).arg( cleanParts.first() ).arg( productName ); - if ( HOSTNAME_RX.indexIn( hostnameSuggestion ) != -1 ) - { - ui->textBoxHostname->setText( hostnameSuggestion ); - validateHostnameText( hostnameSuggestion ); - m_customHostname = false; - } - } - } -} - - -void -UsersPage::onUsernameTextEdited( const QString& textRef ) -{ - m_customUsername = true; - validateUsernameText( textRef ); -} void @@ -427,14 +338,6 @@ UsersPage::validateUsernameText( const QString& textRef ) } -void -UsersPage::onHostnameTextEdited( const QString& textRef ) -{ - m_customHostname = true; - validateHostnameText( textRef ); -} - - void UsersPage::validateHostnameText( const QString& textRef ) { diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index a13886de6..ac5701b2d 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -65,8 +65,6 @@ public: */ void addPasswordCheck( const QString& key, const QVariant& value ); - ///@brief Hostname as entered / auto-filled - QString getHostname() const; ///@brief Root password, depends on settings, may be empty QString getRootPassword() const; ///@brief User name and password @@ -74,10 +72,7 @@ public: protected slots: void onFullNameTextEdited( const QString& ); - void fillSuggestions(); - void onUsernameTextEdited( const QString& ); void validateUsernameText( const QString& ); - void onHostnameTextEdited( const QString& ); void validateHostnameText( const QString& ); void onPasswordTextChanged( const QString& ); void onRootPasswordTextChanged( const QString& ); @@ -104,9 +99,7 @@ private: bool m_readyFullName; bool m_readyUsername; - bool m_customUsername; bool m_readyHostname; - bool m_customHostname; bool m_readyPassword; bool m_readyRootPassword; diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 745163c2c..be6d61878 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -153,7 +153,7 @@ UsersViewStep::onLeave() j = new SetPasswordJob( "root", m_widget->getRootPassword() ); m_jobs.append( Calamares::job_ptr( j ) ); - j = new SetHostNameJob( m_widget->getHostname(), m_actions ); + j = new SetHostNameJob( m_config->hostName(), m_actions ); m_jobs.append( Calamares::job_ptr( j ) ); } diff --git a/src/modules/users/page_usersetup.ui b/src/modules/users/page_usersetup.ui index b778647d8..4aefa9981 100644 --- a/src/modules/users/page_usersetup.ui +++ b/src/modules/users/page_usersetup.ui @@ -127,7 +127,7 @@ - + 0 @@ -226,7 +226,7 @@ - + 0 From 630a50804973d103f5ed70cfeb2d2a604bc0fa82 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 17:26:07 +0200 Subject: [PATCH 310/335] [users] Hack - create the widget anyway - since the configuration is in the UI parts, we need the widget still to load the whole configuration (until the config object is complete). Create the widget before doing configuration; this is wrong. But now we don't hit nullptr derefs all over. --- src/modules/users/UsersViewStep.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index be6d61878..03256d419 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -161,6 +161,8 @@ UsersViewStep::onLeave() void UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { + // Create the widget, after all .. as long as writing configuration to the UI is needed + (void)this->widget(); using CalamaresUtils::getBool; if ( configurationMap.contains( "defaultGroups" ) From d4a784f52186e5310440095a91506a9aae5ccf68 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 17:52:46 +0200 Subject: [PATCH 311/335] [users] Hook up full name to Config --- src/modules/users/Config.cpp | 20 +++++++++++++++---- src/modules/users/Config.h | 8 ++++---- src/modules/users/UsersPage.cpp | 34 +++++++++++---------------------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 24b14faf1..d4fdb16c5 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -166,14 +166,26 @@ makeHostnameSuggestion( const QStringList& parts ) } void -Config::setUserName( const QString& name ) +Config::setFullName( const QString& name ) { - // TODO: handle "empty" case - // TODO: rename to "FullName" + if ( name.isEmpty() && !m_fullName.isEmpty() ) + { + if ( !m_customHostName ) + { + setHostName( name ); + } + if ( !m_customLoginName ) + { + setLoginName( name ); + } + m_fullName = name; + emit fullNameChanged( name ); + } + if ( name != m_fullName ) { m_fullName = name; - emit userNameChanged( name ); + emit fullNameChanged( name ); // Build login and hostname, if needed QRegExp rx( "[^a-zA-Z0-9 ]", Qt::CaseInsensitive ); diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 59f0e8d68..6a5ff0105 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -33,7 +33,7 @@ class Config : public QObject Q_PROPERTY( QString autologinGroup READ autologinGroup WRITE setAutologinGroup NOTIFY autologinGroupChanged ) Q_PROPERTY( QString sudoersGroup READ sudoersGroup WRITE setSudoersGroup NOTIFY sudoersGroupChanged ) - Q_PROPERTY( QString userName READ userName WRITE setUserName NOTIFY userNameChanged ) + Q_PROPERTY( QString fullName READ fullName WRITE setFullName NOTIFY fullNameChanged ) Q_PROPERTY( QString loginName READ loginName WRITE setLoginName NOTIFY loginNameChanged ) Q_PROPERTY( QString hostName READ hostName WRITE setHostName NOTIFY hostNameChanged ) @@ -57,7 +57,7 @@ public: QString sudoersGroup() const { return m_sudoersGroup; } /// The full (GECOS) name of the user - QString userName() const { return m_fullName; } + QString fullName() const { return m_fullName; } /// The login name of the user QString loginName() const { return m_loginName; } @@ -81,7 +81,7 @@ public Q_SLOTS: void setSudoersGroup( const QString& group ); /// Sets the full name, may guess a loginName - void setUserName( const QString& name ); + void setFullName( const QString& name ); /// Sets the login name (flags it as "custom") void setLoginName( const QString& login ); @@ -92,7 +92,7 @@ signals: void userShellChanged( const QString& ); void autologinGroupChanged( const QString& ); void sudoersGroupChanged( const QString& ); - void userNameChanged( const QString& ); + void fullNameChanged( const QString& ); void loginNameChanged( const QString& ); void hostNameChanged( const QString& ); diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 60afa1bb3..ee2719091 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -92,7 +92,6 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) ui->setupUi( this ); // Connect signals and slots - connect( ui->textBoxFullName, &QLineEdit::textEdited, this, &UsersPage::onFullNameTextEdited ); connect( ui->textBoxUserPassword, &QLineEdit::textChanged, this, &UsersPage::onPasswordTextChanged ); connect( ui->textBoxUserVerifiedPassword, &QLineEdit::textChanged, this, &UsersPage::onPasswordTextChanged ); connect( ui->textBoxRootPassword, &QLineEdit::textChanged, this, &UsersPage::onRootPasswordTextChanged ); @@ -121,7 +120,10 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) checkReady( isReady() ); } ); - connect( ui->textBoxHostName, &QLineEdit::textEdited, config, &Config::setHostName); + connect( ui->textBoxFullName, &QLineEdit::textEdited, config, &Config::setFullName ); + connect( config, &Config::fullNameChanged, this, &UsersPage::onFullNameTextEdited ); + + connect( ui->textBoxHostName, &QLineEdit::textEdited, config, &Config::setHostName ); connect( config, &Config::hostNameChanged, ui->textBoxHostName, &QLineEdit::setText ); connect( config, &Config::hostNameChanged, this, &UsersPage::validateHostnameText ); @@ -150,14 +152,14 @@ UsersPage::retranslate() if ( Calamares::Settings::instance()->isSetupMode() ) { ui->textBoxLoginName->setToolTip( tr( "If more than one person will " - "use this computer, you can create multiple " - "accounts after setup." ) ); + "use this computer, you can create multiple " + "accounts after setup." ) ); } else { ui->textBoxLoginName->setToolTip( tr( "If more than one person will " - "use this computer, you can create multiple " - "accounts after installation." ) ); + "use this computer, you can create multiple " + "accounts after installation." ) ); } // Re-do password checks (with output messages) as well. // .. the password-checking methods get their values from the text boxes, @@ -218,8 +220,7 @@ UsersPage::createJobs( const QStringList& defaultGroupsList ) Calamares::Job* j; j = new CreateUserJob( m_config->loginName(), - m_config->userName().isEmpty() ? m_config->loginName() - : m_config->userName(), + m_config->fullName().isEmpty() ? m_config->loginName() : m_config->fullName(), ui->checkBoxAutoLogin->isChecked(), defaultGroupsList ); list.append( Calamares::job_ptr( j ) ); @@ -265,16 +266,6 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) { ui->labelFullNameError->clear(); ui->labelFullName->clear(); -#if 0 - if ( !m_customUsername ) - { - ui->textBoxUsername->clear(); - } - if ( !m_customHostname ) - { - ui->textBoxHostname->clear(); - } -#endif m_readyFullName = false; } else @@ -287,7 +278,6 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) } - void UsersPage::validateUsernameText( const QString& textRef ) { @@ -321,11 +311,9 @@ UsersPage::validateUsernameText( const QString& textRef ) tr( "Only lowercase letters, numbers, underscore and hyphen are allowed." ) ); m_readyUsername = false; } - else if ( 0 == QString::compare("root", text, Qt::CaseSensitive ) ) + else if ( 0 == QString::compare( "root", text, Qt::CaseSensitive ) ) { - labelError( ui->labelUsername, - ui->labelUsernameError, - tr( "'root' is not allowed as user name." ) ); + labelError( ui->labelUsername, ui->labelUsernameError, tr( "'root' is not allowed as user name." ) ); m_readyUsername = false; } else From a564d7a753bafd95037cf5f75f0ca4326f3acc31 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 27 Jul 2020 17:14:06 +0200 Subject: [PATCH 312/335] [users] Fix build on Linux --- src/modules/users/CreateUserJob.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index beb454ac0..a6812dd53 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -121,10 +121,10 @@ createUser( const QString& loginName, const QString& fullName, const QString& sh << "-U"; if ( !shell.isEmpty() ) { - useradd << "-s" << shell; + useraddCommand << "-s" << shell; } - useradd << "-c" << fullName; - useradd << loginName; + useraddCommand << "-c" << fullName; + useraddCommand << loginName; #endif auto commandResult = CalamaresUtils::System::instance()->targetEnvCommand( useraddCommand ); From 40d7d1baac94703063d6ef57c4d515d17373fd68 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 10:21:23 +0200 Subject: [PATCH 313/335] [users] Move login validation to Config object - add a loginNameStatus which is a QString (empty if things are ok) stating what's wrong with the loginName, if anything. --- src/modules/users/Config.cpp | 58 ++++++++++++++++++++++++++++++--- src/modules/users/Config.h | 6 ++++ src/modules/users/UsersPage.cpp | 57 +++++++++----------------------- src/modules/users/UsersPage.h | 2 +- 4 files changed, 77 insertions(+), 46 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index d4fdb16c5..03ae60b2f 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -28,6 +28,10 @@ #include #include +#include + +static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); +static constexpr const int USERNAME_MAX_LENGTH = 31; Config::Config( QObject* parent ) : QObject( parent ) @@ -49,7 +53,7 @@ Config::setUserShell( const QString& shell ) } static inline void -setGS( const QString& key, const QString& group ) +insertInGlobalStorage( const QString& key, const QString& group ) { auto* gs = Calamares::JobQueue::instance()->globalStorage(); if ( !gs || group.isEmpty() ) @@ -62,14 +66,14 @@ setGS( const QString& key, const QString& group ) void Config::setAutologinGroup( const QString& group ) { - setGS( QStringLiteral( "autologinGroup" ), group ); + insertInGlobalStorage( QStringLiteral( "autologinGroup" ), group ); emit autologinGroupChanged( group ); } void Config::setSudoersGroup( const QString& group ) { - setGS( QStringLiteral( "sudoersGroup" ), group ); + insertInGlobalStorage( QStringLiteral( "sudoersGroup" ), group ); emit sudoersGroupChanged( group ); } @@ -82,7 +86,53 @@ Config::setLoginName( const QString& login ) m_customLoginName = !login.isEmpty(); m_loginName = login; emit loginNameChanged( login ); + emit loginNameStatusChanged( loginNameStatus() ); + } +} + +const QStringList& +Config::forbiddenLoginNames() +{ + static QStringList forbidden { "root" }; + return forbidden; +} + +QString +Config::loginNameStatus() const +{ + // An empty login is "ok", even if it isn't really + if ( m_loginName.isEmpty() ) + { + return QString(); + } + + QRegExpValidator validateEntireLoginName( USERNAME_RX ); + QRegExpValidator validateFirstLetter( QRegExp( "[a-z_].*" ) ); // anchors are implicit in QRegExpValidator + int pos = -1; + + if ( m_loginName.length() > USERNAME_MAX_LENGTH ) + { + return tr( "Your username is too long." ); + } + QString login( m_loginName ); // make a copy because validate() doesn't take const& + if ( validateFirstLetter.validate( login, pos ) == QValidator::Invalid ) + { + return tr( "Your username must start with a lowercase letter or underscore." ); + } + if ( validateEntireLoginName.validate( login, pos ) == QValidator::Invalid ) + { + return tr( "Only lowercase letters, numbers, underscore and hyphen are allowed." ); } + + for ( const QString& badName : forbiddenLoginNames() ) + { + if ( 0 == QString::compare( badName, m_loginName, Qt::CaseSensitive ) ) + { + return tr( "'%1' is not allowed as user name." ).arg( badName ); + } + } + + return QString(); } void @@ -133,7 +183,6 @@ guessProductName() static QString makeLoginNameSuggestion( const QStringList& parts ) { - static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); if ( parts.isEmpty() || parts.first().isEmpty() ) { return QString(); @@ -199,6 +248,7 @@ Config::setFullName( const QString& name ) { m_loginName = login; emit loginNameChanged( login ); + emit loginNameStatusChanged( loginNameStatus() ); } } if ( !m_customHostName ) diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 6a5ff0105..91a494619 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -35,6 +35,7 @@ class Config : public QObject Q_PROPERTY( QString fullName READ fullName WRITE setFullName NOTIFY fullNameChanged ) Q_PROPERTY( QString loginName READ loginName WRITE setLoginName NOTIFY loginNameChanged ) + Q_PROPERTY( QString loginNameStatus READ loginNameStatus NOTIFY loginNameStatusChanged ) Q_PROPERTY( QString hostName READ hostName WRITE setHostName NOTIFY hostNameChanged ) @@ -60,10 +61,14 @@ public: QString fullName() const { return m_fullName; } /// The login name of the user QString loginName() const { return m_loginName; } + /// Status message about login -- empty for "ok" + QString loginNameStatus() const; /// The host name (name for the system) QString hostName() const { return m_hostName; } + static const QStringList& forbiddenLoginNames(); + public Q_SLOTS: /** @brief Sets the user's shell if possible * @@ -94,6 +99,7 @@ signals: void sudoersGroupChanged( const QString& ); void fullNameChanged( const QString& ); void loginNameChanged( const QString& ); + void loginNameStatusChanged( const QString& ); void hostNameChanged( const QString& ); private: diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index ee2719091..cc940502e 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -46,7 +46,6 @@ #include #include -static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); static const QRegExp HOSTNAME_RX( "^[a-zA-Z0-9][-a-zA-Z0-9_]*$" ); static constexpr const int USERNAME_MAX_LENGTH = 31; static constexpr const int HOSTNAME_MIN_LENGTH = 2; @@ -129,7 +128,7 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) connect( ui->textBoxLoginName, &QLineEdit::textEdited, config, &Config::setLoginName ); connect( config, &Config::loginNameChanged, ui->textBoxLoginName, &QLineEdit::setText ); - connect( config, &Config::loginNameChanged, this, &UsersPage::validateUsernameText ); + connect( config, &Config::loginNameStatusChanged, this, &UsersPage::reportLoginNameStatus ); setWriteRootPassword( true ); ui->checkBoxReusePassword->setChecked( true ); @@ -277,55 +276,31 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) checkReady( isReady() ); } - void -UsersPage::validateUsernameText( const QString& textRef ) +UsersPage::reportLoginNameStatus( const QString& status ) { - QString text( textRef ); - QRegExpValidator val_whole( USERNAME_RX ); - QRegExpValidator val_start( QRegExp( "[a-z_].*" ) ); // anchors are implicit in QRegExpValidator - int pos = -1; - - if ( text.isEmpty() ) - { - ui->labelUsernameError->clear(); - ui->labelUsername->clear(); - m_readyUsername = false; - } - else if ( text.length() > USERNAME_MAX_LENGTH ) - { - labelError( ui->labelUsername, ui->labelUsernameError, tr( "Your username is too long." ) ); - m_readyUsername = false; - } - else if ( val_start.validate( text, pos ) == QValidator::Invalid ) - { - labelError( ui->labelUsername, - ui->labelUsernameError, - tr( "Your username must start with a lowercase letter or underscore." ) ); - m_readyUsername = false; - } - else if ( val_whole.validate( text, pos ) == QValidator::Invalid ) + if ( status.isEmpty() ) { - labelError( ui->labelUsername, - ui->labelUsernameError, - tr( "Only lowercase letters, numbers, underscore and hyphen are allowed." ) ); - m_readyUsername = false; - } - else if ( 0 == QString::compare( "root", text, Qt::CaseSensitive ) ) - { - labelError( ui->labelUsername, ui->labelUsernameError, tr( "'root' is not allowed as user name." ) ); - m_readyUsername = false; + if ( m_config->loginName().isEmpty() ) + { + ui->labelUsernameError->clear(); + ui->labelUsername->clear(); + m_readyUsername = false; + } + else + { + labelOk( ui->labelUsername, ui->labelUsernameError ); + m_readyUsername = true; + } } else { - labelOk( ui->labelUsername, ui->labelUsernameError ); - m_readyUsername = true; + labelError( ui->labelUsername, ui->labelUsernameError, status ); + m_readyUsername = false; } - emit checkReady( isReady() ); } - void UsersPage::validateHostnameText( const QString& textRef ) { diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index ac5701b2d..7cf83100c 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -72,7 +72,7 @@ public: protected slots: void onFullNameTextEdited( const QString& ); - void validateUsernameText( const QString& ); + void reportLoginNameStatus( const QString& ); void validateHostnameText( const QString& ); void onPasswordTextChanged( const QString& ); void onRootPasswordTextChanged( const QString& ); From 9018913af53b97acb3bc6eb1a749ec78448b84e9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 10:45:38 +0200 Subject: [PATCH 314/335] [users] Move hostname validation to Config --- src/modules/users/Config.cpp | 73 ++++++++++++++++++++++----- src/modules/users/Config.h | 5 ++ src/modules/users/UsersPage.cpp | 89 +++++++++++---------------------- src/modules/users/UsersPage.h | 2 +- 4 files changed, 97 insertions(+), 72 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 03ae60b2f..bc1113672 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -33,6 +33,10 @@ static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); static constexpr const int USERNAME_MAX_LENGTH = 31; +static const QRegExp HOSTNAME_RX( "^[a-zA-Z0-9][-a-zA-Z0-9_]*$" ); +static constexpr const int HOSTNAME_MIN_LENGTH = 2; +static constexpr const int HOSTNAME_MAX_LENGTH = 63; + Config::Config( QObject* parent ) : QObject( parent ) { @@ -106,15 +110,22 @@ Config::loginNameStatus() const return QString(); } - QRegExpValidator validateEntireLoginName( USERNAME_RX ); - QRegExpValidator validateFirstLetter( QRegExp( "[a-z_].*" ) ); // anchors are implicit in QRegExpValidator - int pos = -1; - if ( m_loginName.length() > USERNAME_MAX_LENGTH ) { return tr( "Your username is too long." ); } + for ( const QString& badName : forbiddenLoginNames() ) + { + if ( 0 == QString::compare( badName, m_loginName, Qt::CaseSensitive ) ) + { + return tr( "'%1' is not allowed as username." ).arg( badName ); + } + } + QString login( m_loginName ); // make a copy because validate() doesn't take const& + QRegExpValidator validateEntireLoginName( USERNAME_RX ); + QRegExpValidator validateFirstLetter( QRegExp( "[a-z_].*" ) ); // anchors are implicit in QRegExpValidator + int pos = -1; if ( validateFirstLetter.validate( login, pos ) == QValidator::Invalid ) { return tr( "Your username must start with a lowercase letter or underscore." ); @@ -124,14 +135,6 @@ Config::loginNameStatus() const return tr( "Only lowercase letters, numbers, underscore and hyphen are allowed." ); } - for ( const QString& badName : forbiddenLoginNames() ) - { - if ( 0 == QString::compare( badName, m_loginName, Qt::CaseSensitive ) ) - { - return tr( "'%1' is not allowed as user name." ).arg( badName ); - } - } - return QString(); } @@ -143,7 +146,52 @@ Config::setHostName( const QString& host ) m_customHostName = !host.isEmpty(); m_hostName = host; emit hostNameChanged( host ); + emit hostNameStatusChanged( hostNameStatus() ); + } +} + +const QStringList& +Config::forbiddenHostNames() +{ + static QStringList forbidden { "localhost" }; + return forbidden; +} + +QString +Config::hostNameStatus() const +{ + // An empty hostname is "ok", even if it isn't really + if ( m_hostName.isEmpty() ) + { + return QString(); + } + + if ( m_hostName.length() < HOSTNAME_MIN_LENGTH ) + { + return tr( "Your hostname is too short." ); } + if ( m_hostName.length() > HOSTNAME_MAX_LENGTH ) + { + return tr( "Your hostname is too long." ); + } + for ( const QString& badName : forbiddenHostNames() ) + { + if ( 0 == QString::compare( badName, m_hostName, Qt::CaseSensitive ) ) + { + return tr( "'%1' is not allowed as hostname." ).arg( badName ); + } + } + + QString text = m_hostName; + QRegExpValidator val( HOSTNAME_RX ); + int pos = -1; + + if ( val.validate( text, pos ) == QValidator::Invalid ) + { + return tr( "Only letters, numbers, underscore and hyphen are allowed." ); + } + + return QString(); } @@ -258,6 +306,7 @@ Config::setFullName( const QString& name ) { m_hostName = hostname; emit hostNameChanged( hostname ); + emit hostNameStatusChanged( hostNameStatus() ); } } } diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 91a494619..824b70ba8 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -38,6 +38,7 @@ class Config : public QObject Q_PROPERTY( QString loginNameStatus READ loginNameStatus NOTIFY loginNameStatusChanged ) Q_PROPERTY( QString hostName READ hostName WRITE setHostName NOTIFY hostNameChanged ) + Q_PROPERTY( QString hostNameStatus READ hostNameStatus NOTIFY hostNameStatusChanged ) public: Config( QObject* parent = nullptr ); @@ -66,8 +67,11 @@ public: /// The host name (name for the system) QString hostName() const { return m_hostName; } + /// Status message about hostname -- empty for "ok" + QString hostNameStatus() const; static const QStringList& forbiddenLoginNames(); + static const QStringList& forbiddenHostNames(); public Q_SLOTS: /** @brief Sets the user's shell if possible @@ -101,6 +105,7 @@ signals: void loginNameChanged( const QString& ); void loginNameStatusChanged( const QString& ); void hostNameChanged( const QString& ); + void hostNameStatusChanged( const QString& ); private: QString m_userShell; diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index cc940502e..7983e29ea 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -46,11 +46,6 @@ #include #include -static const QRegExp HOSTNAME_RX( "^[a-zA-Z0-9][-a-zA-Z0-9_]*$" ); -static constexpr const int USERNAME_MAX_LENGTH = 31; -static constexpr const int HOSTNAME_MIN_LENGTH = 2; -static constexpr const int HOSTNAME_MAX_LENGTH = 63; - /** @brief How bad is the error for labelError() ? */ enum class Badness { @@ -77,6 +72,32 @@ labelOk( QLabel* pix, QLabel* label ) pix->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::Yes, CalamaresUtils::Original, label->size() ) ); } +/** Indicate error, update @p ok based on @p status */ +static inline void +labelStatus( QLabel* pix, QLabel* label, const QString& value, const QString& status, bool& ok ) +{ + if ( status.isEmpty() ) + { + if ( value.isEmpty() ) + { + // This is different from labelOK() because no checkmark is shown + label->clear(); + pix->clear(); + ok = false; + } + else + { + labelOk( pix, label ); + ok = true; + } + } + else + { + labelError( pix, label, status ); + ok = false; + } +} + UsersPage::UsersPage( Config* config, QWidget* parent ) : QWidget( parent ) , ui( new Ui::Page_UserSetup ) @@ -124,7 +145,7 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) connect( ui->textBoxHostName, &QLineEdit::textEdited, config, &Config::setHostName ); connect( config, &Config::hostNameChanged, ui->textBoxHostName, &QLineEdit::setText ); - connect( config, &Config::hostNameChanged, this, &UsersPage::validateHostnameText ); + connect( config, &Config::hostNameStatusChanged, this, &UsersPage::reportHostNameStatus ); connect( ui->textBoxLoginName, &QLineEdit::textEdited, config, &Config::setLoginName ); connect( config, &Config::loginNameChanged, ui->textBoxLoginName, &QLineEdit::setText ); @@ -279,64 +300,14 @@ UsersPage::onFullNameTextEdited( const QString& textRef ) void UsersPage::reportLoginNameStatus( const QString& status ) { - if ( status.isEmpty() ) - { - if ( m_config->loginName().isEmpty() ) - { - ui->labelUsernameError->clear(); - ui->labelUsername->clear(); - m_readyUsername = false; - } - else - { - labelOk( ui->labelUsername, ui->labelUsernameError ); - m_readyUsername = true; - } - } - else - { - labelError( ui->labelUsername, ui->labelUsernameError, status ); - m_readyUsername = false; - } + labelStatus( ui->labelUsername, ui->labelUsernameError, m_config->loginName(), status, m_readyUsername ); emit checkReady( isReady() ); } void -UsersPage::validateHostnameText( const QString& textRef ) +UsersPage::reportHostNameStatus( const QString& status ) { - QString text = textRef; - QRegExpValidator val( HOSTNAME_RX ); - int pos = -1; - - if ( text.isEmpty() ) - { - ui->labelHostnameError->clear(); - ui->labelHostname->clear(); - m_readyHostname = false; - } - else if ( text.length() < HOSTNAME_MIN_LENGTH ) - { - labelError( ui->labelHostname, ui->labelHostnameError, tr( "Your hostname is too short." ) ); - m_readyHostname = false; - } - else if ( text.length() > HOSTNAME_MAX_LENGTH ) - { - labelError( ui->labelHostname, ui->labelHostnameError, tr( "Your hostname is too long." ) ); - m_readyHostname = false; - } - else if ( val.validate( text, pos ) == QValidator::Invalid ) - { - labelError( ui->labelHostname, - ui->labelHostnameError, - tr( "Only letters, numbers, underscore and hyphen are allowed." ) ); - m_readyHostname = false; - } - else - { - labelOk( ui->labelHostname, ui->labelHostnameError ); - m_readyHostname = true; - } - + labelStatus( ui->labelHostname, ui->labelHostnameError, m_config->hostName(), status, m_readyHostname ); emit checkReady( isReady() ); } diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 7cf83100c..7e0830dc0 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -73,7 +73,7 @@ public: protected slots: void onFullNameTextEdited( const QString& ); void reportLoginNameStatus( const QString& ); - void validateHostnameText( const QString& ); + void reportHostNameStatus( const QString& ); void onPasswordTextChanged( const QString& ); void onRootPasswordTextChanged( const QString& ); From 0813ec33278381cf3bc4bcd0f3508a3514699001 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 10:49:12 +0200 Subject: [PATCH 315/335] [users] Misc cleanups - unused includes - avoid "my--pc" .. the dash is inserted by makeHostnameSuggestion() --- src/modules/users/Config.cpp | 2 +- src/modules/users/UsersPage.cpp | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index bc1113672..9a9ebe693 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -221,7 +221,7 @@ guessProductName() } if ( dmiProduct.isEmpty() ) { - dmiProduct = QStringLiteral( "-pc" ); + dmiProduct = QStringLiteral( "pc" ); } tried = true; } diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 7983e29ea..af5a1391e 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -43,8 +43,6 @@ #include #include #include -#include -#include /** @brief How bad is the error for labelError() ? */ enum class Badness From 6c930af5cbe760305fb559874043d6da4f7af02e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 11:18:07 +0200 Subject: [PATCH 316/335] [users] Use convenience method for labeling Full Name --- src/modules/users/UsersPage.cpp | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index af5a1391e..0877bf0e3 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -278,20 +278,9 @@ UsersPage::setWriteRootPassword( bool write ) void -UsersPage::onFullNameTextEdited( const QString& textRef ) +UsersPage::onFullNameTextEdited( const QString& fullName ) { - if ( textRef.isEmpty() ) - { - ui->labelFullNameError->clear(); - ui->labelFullName->clear(); - m_readyFullName = false; - } - else - { - ui->labelFullName->setPixmap( - CalamaresUtils::defaultPixmap( CalamaresUtils::Yes, CalamaresUtils::Original, ui->labelFullName->size() ) ); - m_readyFullName = true; - } + labelStatus( ui->labelFullName, ui->labelFullNameError, fullName, QString(), m_readyFullName ); checkReady( isReady() ); } From 45b71c24e771d69d22699337bbd030590eb1ed4f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 11:41:52 +0200 Subject: [PATCH 317/335] [users] Move autologin setting to Config --- src/modules/users/Config.cpp | 12 ++++++++++++ src/modules/users/Config.h | 11 +++++++++++ src/modules/users/UsersPage.cpp | 16 +++++++--------- src/modules/users/UsersPage.h | 1 - src/modules/users/UsersViewStep.cpp | 1 - src/modules/users/page_usersetup.ui | 2 +- 6 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 9a9ebe693..f245aa866 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -312,6 +312,16 @@ Config::setFullName( const QString& name ) } } +void +Config::setAutoLogin( bool b ) +{ + if ( b != m_doAutoLogin ) + { + m_doAutoLogin = b; + emit autoLoginChanged( b ); + } +} + void Config::setConfigurationMap( const QVariantMap& configurationMap ) { @@ -325,4 +335,6 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) setAutologinGroup( CalamaresUtils::getString( configurationMap, "autologinGroup" ) ); setSudoersGroup( CalamaresUtils::getString( configurationMap, "sudoersGroup" ) ); + + m_doAutoLogin = CalamaresUtils::getBool( configurationMap, "doAutologin", false ); } diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 824b70ba8..e7ab8a736 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -33,6 +33,8 @@ class Config : public QObject Q_PROPERTY( QString autologinGroup READ autologinGroup WRITE setAutologinGroup NOTIFY autologinGroupChanged ) Q_PROPERTY( QString sudoersGroup READ sudoersGroup WRITE setSudoersGroup NOTIFY sudoersGroupChanged ) + Q_PROPERTY( bool doAutoLogin READ doAutoLogin WRITE setAutoLogin NOTIFY autoLoginChanged ) + Q_PROPERTY( QString fullName READ fullName WRITE setFullName NOTIFY fullNameChanged ) Q_PROPERTY( QString loginName READ loginName WRITE setLoginName NOTIFY loginNameChanged ) Q_PROPERTY( QString loginNameStatus READ loginNameStatus NOTIFY loginNameStatusChanged ) @@ -70,6 +72,9 @@ public: /// Status message about hostname -- empty for "ok" QString hostNameStatus() const; + /// Should the user be automatically logged-in? + bool doAutoLogin() const { return m_doAutoLogin; } + static const QStringList& forbiddenLoginNames(); static const QStringList& forbiddenHostNames(); @@ -97,6 +102,9 @@ public Q_SLOTS: /// Sets the host name (flags it as "custom") void setHostName( const QString& host ); + /// Sets the autologin flag + void setAutoLogin( bool b ); + signals: void userShellChanged( const QString& ); void autologinGroupChanged( const QString& ); @@ -106,6 +114,7 @@ signals: void loginNameStatusChanged( const QString& ); void hostNameChanged( const QString& ); void hostNameStatusChanged( const QString& ); + void autoLoginChanged( bool ); private: QString m_userShell; @@ -114,6 +123,8 @@ private: QString m_fullName; QString m_loginName; QString m_hostName; + bool m_doAutoLogin = false; + bool m_customLoginName = false; bool m_customHostName = false; }; diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 0877bf0e3..c9eb227e7 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -149,6 +149,11 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) connect( config, &Config::loginNameChanged, ui->textBoxLoginName, &QLineEdit::setText ); connect( config, &Config::loginNameStatusChanged, this, &UsersPage::reportLoginNameStatus ); + connect( ui->checkBoxDoAutoLogin, &QCheckBox::stateChanged, this, [this]( int checked ) { + m_config->setAutoLogin( checked != Qt::Unchecked ); + } ); + connect( config, &Config::autoLoginChanged, ui->checkBoxDoAutoLogin, &QCheckBox::setChecked ); + setWriteRootPassword( true ); ui->checkBoxReusePassword->setChecked( true ); ui->checkBoxValidatePassword->setChecked( true ); @@ -239,7 +244,7 @@ UsersPage::createJobs( const QStringList& defaultGroupsList ) Calamares::Job* j; j = new CreateUserJob( m_config->loginName(), m_config->fullName().isEmpty() ? m_config->loginName() : m_config->fullName(), - ui->checkBoxAutoLogin->isChecked(), + m_config->doAutoLogin(), defaultGroupsList ); list.append( Calamares::job_ptr( j ) ); @@ -248,7 +253,7 @@ UsersPage::createJobs( const QStringList& defaultGroupsList ) gs->insert( "reuseRootPassword", ui->checkBoxReusePassword->isChecked() ); } gs->insert( "hostname", m_config->hostName() ); - if ( ui->checkBoxAutoLogin->isChecked() ) + if ( m_config->doAutoLogin() ) { gs->insert( "autologinUser", m_config->loginName() ); } @@ -378,13 +383,6 @@ UsersPage::setValidatePasswordDefault( bool checked ) emit checkReady( isReady() ); } -void -UsersPage::setAutologinDefault( bool checked ) -{ - ui->checkBoxAutoLogin->setChecked( checked ); - emit checkReady( isReady() ); -} - void UsersPage::setReusePasswordDefault( bool checked ) { diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 7e0830dc0..7cd522498 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -54,7 +54,6 @@ public: void setWriteRootPassword( bool show ); void setPasswordCheckboxVisible( bool visible ); void setValidatePasswordDefault( bool checked ); - void setAutologinDefault( bool checked ); void setReusePasswordDefault( bool checked ); /** @brief Process entries in the passwordRequirements config entry diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 03256d419..0826b8a28 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -180,7 +180,6 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) Calamares::JobQueue::instance()->globalStorage()->insert( "setRootPassword", setRootPassword ); m_widget->setWriteRootPassword( setRootPassword ); - m_widget->setAutologinDefault( getBool( configurationMap, "doAutologin", false ) ); m_widget->setReusePasswordDefault( getBool( configurationMap, "doReusePassword", false ) ); if ( configurationMap.contains( "passwordRequirements" ) diff --git a/src/modules/users/page_usersetup.ui b/src/modules/users/page_usersetup.ui index 4aefa9981..d880673b8 100644 --- a/src/modules/users/page_usersetup.ui +++ b/src/modules/users/page_usersetup.ui @@ -456,7 +456,7 @@ - + Log in automatically without asking for the password. From 6a03bcb25e19285b0aa8432857c8d6f11db1ab27 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 11:59:53 +0200 Subject: [PATCH 318/335] [users] Move setRootPassword to Config - this really controls whether a root password is written during installtion, so rename to writeRootPassword in the code. --- src/modules/users/Config.cpp | 3 +++ src/modules/users/Config.h | 3 +++ src/modules/users/UsersPage.cpp | 42 ++++++++++------------------- src/modules/users/UsersPage.h | 3 --- src/modules/users/UsersViewStep.cpp | 4 --- 5 files changed, 20 insertions(+), 35 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index f245aa866..1219c2a3c 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -337,4 +337,7 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) setSudoersGroup( CalamaresUtils::getString( configurationMap, "sudoersGroup" ) ); m_doAutoLogin = CalamaresUtils::getBool( configurationMap, "doAutologin", false ); + + m_writeRootPassword = CalamaresUtils::getBool( configurationMap, "setRootPassword", true ); + Calamares::JobQueue::instance()->globalStorage()->insert( "setRootPassword", m_writeRootPassword ); } diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index e7ab8a736..d32ddc8f2 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -74,6 +74,8 @@ public: /// Should the user be automatically logged-in? bool doAutoLogin() const { return m_doAutoLogin; } + /// Should the root password be written (if false, no password is set and the root account is disabled for login) + bool writeRootPassword() const { return m_writeRootPassword; } static const QStringList& forbiddenLoginNames(); static const QStringList& forbiddenHostNames(); @@ -124,6 +126,7 @@ private: QString m_loginName; QString m_hostName; bool m_doAutoLogin = false; + bool m_writeRootPassword = true; bool m_customLoginName = false; bool m_customHostName = false; diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index c9eb227e7..268e6099e 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -105,7 +105,6 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) , m_readyHostname( false ) , m_readyPassword( false ) , m_readyRootPassword( false ) - , m_writeRootPassword( true ) { ui->setupUi( this ); @@ -119,22 +118,19 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) onRootPasswordTextChanged( ui->textBoxRootPassword->text() ); checkReady( isReady() ); } ); - connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, [this]( int checked ) { + connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, [this]( const int checked ) { /* When "reuse" is checked, hide the fields for explicitly * entering the root password. However, if we're going to * disable the root password anyway, hide them all regardless of * the checkbox -- so when writeRoot is false, checked needs * to be true, to hide them all. */ - if ( !m_writeRootPassword ) - { - checked = true; - } - ui->labelChooseRootPassword->setVisible( !checked ); - ui->labelRootPassword->setVisible( !checked ); - ui->labelRootPasswordError->setVisible( !checked ); - ui->textBoxRootPassword->setVisible( !checked ); - ui->textBoxVerifiedRootPassword->setVisible( !checked ); + const bool visible = m_config->writeRootPassword() ? !checked : false; + ui->labelChooseRootPassword->setVisible( visible ); + ui->labelRootPassword->setVisible( visible ); + ui->labelRootPasswordError->setVisible( visible ); + ui->textBoxRootPassword->setVisible( visible ); + ui->textBoxVerifiedRootPassword->setVisible( visible ); checkReady( isReady() ); } ); @@ -154,7 +150,7 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) } ); connect( config, &Config::autoLoginChanged, ui->checkBoxDoAutoLogin, &QCheckBox::setChecked ); - setWriteRootPassword( true ); + ui->checkBoxReusePassword->setVisible( m_config->writeRootPassword() ); ui->checkBoxReusePassword->setChecked( true ); ui->checkBoxValidatePassword->setChecked( true ); @@ -196,18 +192,16 @@ bool UsersPage::isReady() { bool readyFields = m_readyFullName && m_readyHostname && m_readyPassword && m_readyUsername; - if ( !m_writeRootPassword || ui->checkBoxReusePassword->isChecked() ) - { - return readyFields; - } - - return readyFields && m_readyRootPassword; + // If we're going to write a root password, we need a valid one (or reuse the user's password) + readyFields + &= m_config->writeRootPassword() ? ( m_readyRootPassword || ui->checkBoxReusePassword->isChecked() ) : true; + return readyFields; } QString UsersPage::getRootPassword() const { - if ( m_writeRootPassword ) + if ( m_config->writeRootPassword() ) { if ( ui->checkBoxReusePassword->isChecked() ) { @@ -248,7 +242,7 @@ UsersPage::createJobs( const QStringList& defaultGroupsList ) defaultGroupsList ); list.append( Calamares::job_ptr( j ) ); - if ( m_writeRootPassword ) + if ( m_config->writeRootPassword() ) { gs->insert( "reuseRootPassword", ui->checkBoxReusePassword->isChecked() ); } @@ -274,14 +268,6 @@ UsersPage::onActivate() } -void -UsersPage::setWriteRootPassword( bool write ) -{ - m_writeRootPassword = write; - ui->checkBoxReusePassword->setVisible( write ); -} - - void UsersPage::onFullNameTextEdited( const QString& fullName ) { diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 7cd522498..35f7f0938 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -51,7 +51,6 @@ public: void onActivate(); - void setWriteRootPassword( bool show ); void setPasswordCheckboxVisible( bool visible ); void setValidatePasswordDefault( bool checked ); void setReusePasswordDefault( bool checked ); @@ -101,8 +100,6 @@ private: bool m_readyHostname; bool m_readyPassword; bool m_readyRootPassword; - - bool m_writeRootPassword; }; #endif // USERSPAGE_H diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 0826b8a28..713811246 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -176,10 +176,6 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_defaultGroups = QStringList { "lp", "video", "network", "storage", "wheel", "audio" }; } - bool setRootPassword = getBool( configurationMap, "setRootPassword", true ); - Calamares::JobQueue::instance()->globalStorage()->insert( "setRootPassword", setRootPassword ); - - m_widget->setWriteRootPassword( setRootPassword ); m_widget->setReusePasswordDefault( getBool( configurationMap, "doReusePassword", false ) ); if ( configurationMap.contains( "passwordRequirements" ) From cc2e3f79ff045cd577ebc28e8f89c19350aadd58 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 12:16:03 +0200 Subject: [PATCH 319/335] [users] Move job creation from widget to viewstep - This is a half-step: the ViewStep shouldn't do job creation either, eventually it needs to be the Config object, but this is better than asking the widget (UI) to create some jobs. - When updating login- or host-name, or the autologin setting, set it in GS as well. This is a minor improvement over doing it only when leaving the page. - Since the Config object isn't complete, there are leftovers in the widget, which has a fillGlobalStorage() for the not-jobs-related bits previously in createJobs(). --- src/modules/users/Config.cpp | 29 ++++++++++++++++++++++++++++ src/modules/users/UsersPage.cpp | 30 +++++------------------------ src/modules/users/UsersPage.h | 5 ++--- src/modules/users/UsersViewStep.cpp | 10 ++++++++-- 4 files changed, 44 insertions(+), 30 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 1219c2a3c..bb739cbd1 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -87,6 +87,16 @@ Config::setLoginName( const QString& login ) { if ( login != m_loginName ) { + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( login.isEmpty() ) + { + gs->remove( "username" ); + } + else + { + gs->insert( "username", login ); + } + m_customLoginName = !login.isEmpty(); m_loginName = login; emit loginNameChanged( login ); @@ -143,6 +153,16 @@ Config::setHostName( const QString& host ) { if ( host != m_hostName ) { + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( host.isEmpty() ) + { + gs->remove( "hostname" ); + } + else + { + gs->insert( "hostname", host ); + } + m_customHostName = !host.isEmpty(); m_hostName = host; emit hostNameChanged( host ); @@ -317,6 +337,15 @@ Config::setAutoLogin( bool b ) { if ( b != m_doAutoLogin ) { + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( b ) + { + gs->insert( "autologinUser", loginName() ); + } + else + { + gs->remove( "autologinUser" ); + } m_doAutoLogin = b; emit autoLoginChanged( b ); } diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 268e6099e..c4502256a 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -24,12 +24,9 @@ */ #include "UsersPage.h" -#include "ui_page_usersetup.h" #include "Config.h" -#include "CreateUserJob.h" -#include "SetHostNameJob.h" -#include "SetPasswordJob.h" +#include "ui_page_usersetup.h" #include "GlobalStorage.h" #include "JobQueue.h" @@ -189,7 +186,7 @@ UsersPage::retranslate() bool -UsersPage::isReady() +UsersPage::isReady() const { bool readyFields = m_readyFullName && m_readyHostname && m_readyPassword && m_readyUsername; // If we're going to write a root password, we need a valid one (or reuse the user's password) @@ -224,38 +221,21 @@ UsersPage::getUserPassword() const return QPair< QString, QString >( m_config->loginName(), ui->textBoxUserPassword->text() ); } -QList< Calamares::job_ptr > -UsersPage::createJobs( const QStringList& defaultGroupsList ) +void +UsersPage::fillGlobalStorage() const { - QList< Calamares::job_ptr > list; if ( !isReady() ) { - return list; + return; } Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - Calamares::Job* j; - j = new CreateUserJob( m_config->loginName(), - m_config->fullName().isEmpty() ? m_config->loginName() : m_config->fullName(), - m_config->doAutoLogin(), - defaultGroupsList ); - list.append( Calamares::job_ptr( j ) ); - if ( m_config->writeRootPassword() ) { gs->insert( "reuseRootPassword", ui->checkBoxReusePassword->isChecked() ); } - gs->insert( "hostname", m_config->hostName() ); - if ( m_config->doAutoLogin() ) - { - gs->insert( "autologinUser", m_config->loginName() ); - } - - gs->insert( "username", m_config->loginName() ); gs->insert( "password", CalamaresUtils::obscure( ui->textBoxUserPassword->text() ) ); - - return list; } diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 35f7f0938..b8cb0f06a 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -25,7 +25,6 @@ #define USERSPAGE_H #include "CheckPWQuality.h" -#include "Job.h" #include @@ -45,9 +44,9 @@ public: explicit UsersPage( Config* config, QWidget* parent = nullptr ); virtual ~UsersPage(); - bool isReady(); + bool isReady() const; - Calamares::JobList createJobs( const QStringList& defaultGroupsList ); + void fillGlobalStorage() const; void onActivate(); diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 713811246..ddaf4837b 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -21,6 +21,7 @@ #include "UsersViewStep.h" #include "Config.h" +#include "CreateUserJob.h" #include "SetHostNameJob.h" #include "SetPasswordJob.h" #include "UsersPage.h" @@ -138,13 +139,16 @@ void UsersViewStep::onLeave() { m_jobs.clear(); - if ( !m_widget ) + if ( !m_widget || !m_widget->isReady() ) { return; } - m_jobs.append( m_widget->createJobs( m_defaultGroups ) ); Calamares::Job* j; + j = new CreateUserJob( m_config->loginName(), + m_config->fullName().isEmpty() ? m_config->loginName() : m_config->fullName(), + m_config->doAutoLogin(), + m_defaultGroups ); auto userPW = m_widget->getUserPassword(); j = new SetPasswordJob( userPW.first, userPW.second ); @@ -155,6 +159,8 @@ UsersViewStep::onLeave() j = new SetHostNameJob( m_config->hostName(), m_actions ); m_jobs.append( Calamares::job_ptr( j ) ); + + m_widget->fillGlobalStorage(); } From b06498194e177a3067cb2d7d22bda6e8c5a8eb5e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 14:46:56 +0200 Subject: [PATCH 320/335] [machineid] Fix up schema - schema didn't allow recent (2019) configuration entries - remove mention of deprecated key from example config --- src/modules/machineid/machineid.conf | 2 -- src/modules/machineid/machineid.schema.yaml | 10 +++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/machineid/machineid.conf b/src/modules/machineid/machineid.conf index 97bd10a06..fa42655fd 100644 --- a/src/modules/machineid/machineid.conf +++ b/src/modules/machineid/machineid.conf @@ -15,8 +15,6 @@ dbus: true # Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id # (ignored if dbus is false, or if there is no /etc/machine-id to point to). dbus-symlink: true -# this is a deprecated form of *dbus-symlink* -symlink: true # Whether to create an entropy file entropy: false diff --git a/src/modules/machineid/machineid.schema.yaml b/src/modules/machineid/machineid.schema.yaml index 588a7fa4e..c5eb55b1b 100644 --- a/src/modules/machineid/machineid.schema.yaml +++ b/src/modules/machineid/machineid.schema.yaml @@ -4,6 +4,10 @@ $id: https://calamares.io/schemas/machineid additionalProperties: false type: object properties: - "systemd": { type: boolean, default: true } - "dbus": { type: boolean, default: true } - "symlink": { type: boolean, default: true } + systemd: { type: boolean, default: true } + dbus: { type: boolean, default: true } + "dbus-symlink": { type: boolean, default: true } + entropy: { type: boolean, default: false } + "entropy-copy": { type: boolean, default: false } + # Deprecated properties + symlink: { type: boolean, default: true } From 9568fc082ff8e76d56cd6cb8548a50cbb01fdc6f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 14:59:36 +0200 Subject: [PATCH 321/335] [calamares] Try to reduce compile-churn with version header - Very rarely do we need the full-git-version of Calamares, so split that into a separate header with a little trickery. - In the "normal" version header, drop the full-git-version values. --- CMakeLists.txt | 6 +++++- src/calamares/CalamaresVersion.h.in | 2 +- src/calamares/CalamaresVersionX.h.in | 13 +++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/calamares/CalamaresVersionX.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b6f03fea..43ca1bc56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -537,7 +537,11 @@ if( CALAMARES_VERSION_RC ) set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} ) endif() -# additional info for non-release builds +# Additional info for non-release builds. The "extended" version information +# with date and git information (commit, dirty status) is used only +# by CalamaresVersionX.h, which is included by consumers that need a full +# version number with all that information; normal consumers can include +# CalamaresVersion.h with more stable numbers. if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" ) include( CMakeDateStamp ) set( CALAMARES_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" ) diff --git a/src/calamares/CalamaresVersion.h.in b/src/calamares/CalamaresVersion.h.in index 4ac7ee1d1..54a44888a 100644 --- a/src/calamares/CalamaresVersion.h.in +++ b/src/calamares/CalamaresVersion.h.in @@ -4,7 +4,7 @@ #cmakedefine CALAMARES_ORGANIZATION_NAME "${CALAMARES_ORGANIZATION_NAME}" #cmakedefine CALAMARES_ORGANIZATION_DOMAIN "${CALAMARES_ORGANIZATION_DOMAIN}" #cmakedefine CALAMARES_APPLICATION_NAME "${CALAMARES_APPLICATION_NAME}" -#cmakedefine CALAMARES_VERSION "${CALAMARES_VERSION}" +#cmakedefine CALAMARES_VERSION "${CALAMARES_VERSION_SHORT}" #cmakedefine CALAMARES_VERSION_SHORT "${CALAMARES_VERSION_SHORT}" #cmakedefine CALAMARES_VERSION_MAJOR "${CALAMARES_VERSION_MAJOR}" diff --git a/src/calamares/CalamaresVersionX.h.in b/src/calamares/CalamaresVersionX.h.in new file mode 100644 index 000000000..75b124c11 --- /dev/null +++ b/src/calamares/CalamaresVersionX.h.in @@ -0,0 +1,13 @@ +// Same as CalamaresVersion.h, but with a full-git-extended VERSION +// rather than the short (vM.m.p) semantic version. +#ifndef CALAMARES_VERSION_H + +// On purpose, do not define the guard, but let CalamaresVersion.h do it +// #define CALAMARES_VERSION_H + +#include "CalamaresVersion.h" + +#undef CALAMARES_VERSION +#cmakedefine CALAMARES_VERSION "${CALAMARES_VERSION}" + +#endif // CALAMARES_VERSION_H From 38b347f8f2c1d36063db564c6fdf12dd9c0d557a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 14:58:43 +0200 Subject: [PATCH 322/335] [libcalamares] Take ownership of the versioning headers - The sources were in src/calamares but processed and generated in libcalamares, which is weird at best. - Generate an "extended" version header. - Use the extended version in the logger and nowhere else. - While here, minor coding style cleanups The overall change here means that after running CMake, only Logger.cpp needs to be rebuilt (if the extended version has changed) and not a handful of other files that don't need the full version number, but do happen to include CalamaresVersion.h --- src/libcalamares/CMakeLists.txt | 4 +++- .../CalamaresVersion.h.in | 0 .../CalamaresVersionX.h.in | 0 src/libcalamares/utils/Logger.cpp | 14 ++++++-------- 4 files changed, 9 insertions(+), 9 deletions(-) rename src/{calamares => libcalamares}/CalamaresVersion.h.in (100%) rename src/{calamares => libcalamares}/CalamaresVersionX.h.in (100%) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 56bacb32a..8e209f8a3 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -27,8 +27,10 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/CalamaresConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/CalamaresConfig.h ) -configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../calamares/CalamaresVersion.h.in +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/CalamaresVersion.h.in ${CMAKE_CURRENT_BINARY_DIR}/CalamaresVersion.h ) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/CalamaresVersionX.h.in + ${CMAKE_CURRENT_BINARY_DIR}/CalamaresVersionX.h ) set( OPTIONAL_PRIVATE_LIBRARIES "" ) set( OPTIONAL_PUBLIC_LIBRARIES "" ) diff --git a/src/calamares/CalamaresVersion.h.in b/src/libcalamares/CalamaresVersion.h.in similarity index 100% rename from src/calamares/CalamaresVersion.h.in rename to src/libcalamares/CalamaresVersion.h.in diff --git a/src/calamares/CalamaresVersionX.h.in b/src/libcalamares/CalamaresVersionX.h.in similarity index 100% rename from src/calamares/CalamaresVersionX.h.in rename to src/libcalamares/CalamaresVersionX.h.in diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index 72885d53f..5a2149f44 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -3,6 +3,7 @@ * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * * Calamares is free software: you can redistribute it and/or modify @@ -18,15 +19,12 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "Logger.h" -#include -#include +#include "CalamaresVersionX.h" +#include "utils/Dirs.h" #include #include @@ -35,10 +33,10 @@ #include #include -#include "CalamaresVersion.h" -#include "utils/Dirs.h" +#include +#include -#define LOGFILE_SIZE 1024 * 256 +static constexpr const int LOGFILE_SIZE = 1024 * 256; static std::ofstream logfile; static unsigned int s_threshold = From bfa1f618c7aade57bd2c51b11293ecf4931c765e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 28 Jul 2020 17:36:10 +0200 Subject: [PATCH 323/335] CMake: Improve RCC version-checking Previously, we check for RCC support every single time CMake runs. This is slightly wasteful, and it wasn't being done right anyway. But it's moot because: - Calamares supports back to Qt 5.9 - Qt 5.9's version of rcc (at least, 5.9.7) **does** support the command-line argument `--format-version 1` - Everything newer does too. Simplify translations a little, too: just use autorcc rather than building things by hand. --- CMakeModules/CalamaresAddTranslations.cmake | 36 ++------------------- src/calamares/CMakeLists.txt | 4 +-- 2 files changed, 4 insertions(+), 36 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index bb15fb122..88992faf5 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -22,46 +22,14 @@ include( CMakeParseArguments ) -if( NOT _rcc_version_support_checked ) - set( _rcc_version_support_checked TRUE ) - - # Extract the executable name - get_property( _rcc_executable - TARGET ${Qt5Core_RCC_EXECUTABLE} - PROPERTY IMPORTED_LOCATION - ) - if( NOT _rcc_executable ) - # Weird, probably now uses Qt5::rcc which is wrong too - set( _rcc_executable ${Qt5Core_RCC_EXECUTABLE} ) - endif() - - # Try an empty RCC file with explicit format-version - execute_process( - COMMAND echo "" - COMMAND ${Qt5Core_RCC_EXECUTABLE} --format-version 1 --list - - RESULT_VARIABLE _rcc_version_rv - ERROR_VARIABLE _rcc_version_dump - ) - if ( _rcc_version_rv EQUAL 0 ) - # Supported: force to the reproducible version - set( _rcc_version_support --format-version 1 ) - else() - # Older Qt versions (5.7, 5.8) don't support setting the - # rcc format-version, so won't be reproducible if they - # default to version 2. - set( _rcc_version_support "" ) - endif() - unset( _rcc_version_rv ) - unset( _rcc_version_dump ) -endif() - - # Internal macro for adding the C++ / Qt translations to the # build and install tree. Should be called only once, from # src/calamares/CMakeLists.txt. macro(add_calamares_translations language) list( APPEND CALAMARES_LANGUAGES ${ARGV} ) + set( _rcc_version_support --format-version 1 ) + set( calamares_i18n_qrc_content "\n" ) # calamares and qt language files diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index b632567b8..ff91904e2 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -34,9 +34,8 @@ include_directories( # Translations include( CalamaresAddTranslations ) add_calamares_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) -qt5_add_resources( calamaresRc calamares.qrc ) -add_executable( calamares_bin ${calamaresSources} ${calamaresRc} ${trans_outfile} ) +add_executable( calamares_bin ${calamaresSources} calamares.qrc ${trans_outfile} ) target_include_directories( calamares_bin PRIVATE ${CMAKE_SOURCE_DIR} ) set_target_properties(calamares_bin PROPERTIES @@ -45,6 +44,7 @@ set_target_properties(calamares_bin ) calamares_automoc( calamares_bin ) calamares_autouic( calamares_bin ) +calamares_autorcc( calamares_bin ) target_link_libraries( calamares_bin PRIVATE From afb0b36f586e262824ea9754300f903b0e93a808 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 10:01:49 +0200 Subject: [PATCH 324/335] CMake: simplify QRC generation Use configure_file() to avoid stomping on timestamps: if the list of translations doesn't change, we don't need to rebuild the translated QRC. --- CMakeModules/CalamaresAddTranslations.cmake | 25 +++++---------------- lang/calamares_i18n.qrc.in | 5 +++++ 2 files changed, 10 insertions(+), 20 deletions(-) create mode 100644 lang/calamares_i18n.qrc.in diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 88992faf5..5015301d2 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -28,12 +28,9 @@ include( CMakeParseArguments ) macro(add_calamares_translations language) list( APPEND CALAMARES_LANGUAGES ${ARGV} ) - set( _rcc_version_support --format-version 1 ) - - set( calamares_i18n_qrc_content "\n" ) + set( calamares_i18n_qrc_content "" ) # calamares and qt language files - set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}\n" ) foreach( lang ${CALAMARES_LANGUAGES} ) foreach( tlsource "calamares_${lang}" "tz_${lang}" ) if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) @@ -43,31 +40,19 @@ macro(add_calamares_translations language) endforeach() endforeach() - set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}\n" ) - set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}\n" ) - - file( WRITE ${CMAKE_BINARY_DIR}/lang/calamares_i18n.qrc "${calamares_i18n_qrc_content}" ) - - qt5_add_translation(QM_FILES ${TS_FILES}) - - ## HACK HACK HACK - around rcc limitations to allow out of source-tree building set( trans_file calamares_i18n ) - set( trans_srcfile ${CMAKE_BINARY_DIR}/lang/${trans_file}.qrc ) set( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc ) set( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx ) - # Copy the QRC file to the output directory - add_custom_command( - OUTPUT ${trans_infile} - COMMAND ${CMAKE_COMMAND} -E copy ${trans_srcfile} ${trans_infile} - MAIN_DEPENDENCY ${trans_srcfile} - ) + configure_file( ${CMAKE_SOURCE_DIR}/lang/calamares_i18n.qrc.in ${trans_infile} @ONLY ) + + qt5_add_translation(QM_FILES ${TS_FILES}) # Run the resource compiler (rcc_options should already be set) add_custom_command( OUTPUT ${trans_outfile} COMMAND "${Qt5Core_RCC_EXECUTABLE}" - ARGS ${rcc_options} ${_rcc_version_support} -name ${trans_file} -o ${trans_outfile} ${trans_infile} + ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile} MAIN_DEPENDENCY ${trans_infile} DEPENDS ${QM_FILES} ) diff --git a/lang/calamares_i18n.qrc.in b/lang/calamares_i18n.qrc.in new file mode 100644 index 000000000..1f0ac1604 --- /dev/null +++ b/lang/calamares_i18n.qrc.in @@ -0,0 +1,5 @@ + + +@calamares_i18n_qrc_content@ + + From 33eab6e8697ab91b23879ab50ed8337a86ee1af1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 10:58:07 +0200 Subject: [PATCH 325/335] CMake: improve validator dependency-checking The configvalidator has some extra Python dependencies. Cache the restults of checking the dependencies (convenient for developers), and also explain what's going on if the feature is switched off. --- CMakeLists.txt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 43ca1bc56..3dec2e55f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -356,23 +356,33 @@ set_package_properties( URL "https://python.org" PURPOSE "Python 3 interpreter for certain tests." ) + +set( _schema_explanation "" ) if ( PYTHONINTERP_FOUND ) - message(STATUS "Found Python 3 interpreter ${PYTHON_EXECUTABLE}") if ( BUILD_SCHEMA_TESTING ) # The configuration validator script has some dependencies, # and if they are not installed, don't run. If errors out # with exit(1) on missing dependencies. - exec_program( ${PYTHON_EXECUTABLE} ARGS "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" -x RETURN_VALUE _validator_deps ) + if ( CALAMARES_CONFIGVALIDATOR_CHECKED ) + set( _validator_deps ${CALAMARES_CONFIGVALIDATOR_RESULT} ) + else() + exec_program( ${PYTHON_EXECUTABLE} ARGS "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" -x RETURN_VALUE _validator_deps ) + set( CALAMARES_CONFIGVALIDATOR_CHECKED TRUE CACHE INTERNAL "Dependencies for configvalidator checked" ) + set( CALAMARES_CONFIGVALIDATOR_RESULT ${_validator_deps} CACHE INTERNAL "Result of configvalidator dependency check" ) + endif() # It should never succeed, but only returns 1 when the imports fail if ( _validator_deps EQUAL 1 ) - message(STATUS "BUILD_SCHEMA_TESTING dependencies are missing." ) + set( _schema_explanation " Missing dependencies for configvalidator.py." ) set( BUILD_SCHEMA_TESTING OFF ) endif() endif() else() # Can't run schema tests without Python3. + set( _schema_explanation " Missing Python3." ) set( BUILD_SCHEMA_TESTING OFF ) endif() +add_feature_info( yaml-schema BUILD_SCHEMA_TESTING "Validate YAML (config files) with schema.${_schema_explanation}" ) + find_package( PythonLibs ${PYTHONLIBS_VERSION} ) set_package_properties( PythonLibs PROPERTIES From b9372ba4328af677b6f5c132b4c6ae7ac6fb9dfe Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 12:18:25 +0200 Subject: [PATCH 326/335] [users] Move default groups setting to Config - drop groups from the viewstep - note that the Config object should also be in charge of creating Jobs (but then the de-tangling needs to be completed) - add tests of default groups loading Doesn't compile because QRegExpValidator is a gui thing. --- src/modules/users/CMakeLists.txt | 1 + src/modules/users/Config.cpp | 16 +++++++ src/modules/users/Config.h | 3 ++ src/modules/users/CreateUserTests.cpp | 61 ++++++++++++++++++++++++++- src/modules/users/UsersViewStep.cpp | 14 +----- src/modules/users/UsersViewStep.h | 1 - 6 files changed, 81 insertions(+), 15 deletions(-) diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index bf93eb26a..e2d2e3117 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -55,6 +55,7 @@ calamares_add_test( SOURCES CreateUserTests.cpp CreateUserJob.cpp + Config.cpp ) calamares_add_test( diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index bb739cbd1..060600894 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -351,6 +351,21 @@ Config::setAutoLogin( bool b ) } } +STATICTEST inline void +setConfigurationDefaultGroups( const QVariantMap& map, QStringList& defaultGroups ) +{ + // '#' is not a valid group name; use that to distinguish an empty-list + // in the configuration (which is a legitimate, if unusual, choice) + // from a bad or missing configuration value. + defaultGroups = CalamaresUtils::getStringList( map, QStringLiteral( "defaultGroups" ), QStringList { "#" } ); + if ( defaultGroups.contains( QStringLiteral( "#" ) ) ) + { + cWarning() << "Using fallback groups. Please check *defaultGroups* in users.conf"; + defaultGroups = QStringList { "lp", "video", "network", "storage", "wheel", "audio" }; + } +} + + void Config::setConfigurationMap( const QVariantMap& configurationMap ) { @@ -365,6 +380,7 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) setAutologinGroup( CalamaresUtils::getString( configurationMap, "autologinGroup" ) ); setSudoersGroup( CalamaresUtils::getString( configurationMap, "sudoersGroup" ) ); + setConfigurationDefaultGroups( configurationMap, m_defaultGroups ); m_doAutoLogin = CalamaresUtils::getBool( configurationMap, "doAutologin", false ); m_writeRootPassword = CalamaresUtils::getBool( configurationMap, "setRootPassword", true ); diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index d32ddc8f2..b84dc5aaf 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -77,6 +77,8 @@ public: /// Should the root password be written (if false, no password is set and the root account is disabled for login) bool writeRootPassword() const { return m_writeRootPassword; } + const QStringList& defaultGroups() const { return m_defaultGroups; } + static const QStringList& forbiddenLoginNames(); static const QStringList& forbiddenHostNames(); @@ -119,6 +121,7 @@ signals: void autoLoginChanged( bool ); private: + QStringList m_defaultGroups; QString m_userShell; QString m_autologinGroup; QString m_sudoersGroup; diff --git a/src/modules/users/CreateUserTests.cpp b/src/modules/users/CreateUserTests.cpp index b351109b3..50592a384 100644 --- a/src/modules/users/CreateUserTests.cpp +++ b/src/modules/users/CreateUserTests.cpp @@ -17,6 +17,7 @@ * along with Calamares. If not, see . */ +#include "Config.h" #include "CreateUserJob.h" #include "utils/Logger.h" @@ -25,8 +26,8 @@ #include // Implementation details -extern QStringList groupsInTargetSystem( const QDir& targetRoot ); - +extern QStringList groupsInTargetSystem( const QDir& targetRoot ); // CreateUserJob +extern void setConfigurationDefaultGroups( const QVariantMap& map, QStringList& defaultGroups ); class CreateUserTests : public QObject { @@ -39,6 +40,7 @@ private Q_SLOTS: void initTestCase(); void testReadGroup(); + void testDefaultGroups(); }; CreateUserTests::CreateUserTests() {} @@ -73,6 +75,61 @@ CreateUserTests::testReadGroup() } } +void +CreateUserTests::testDefaultGroups() +{ + { + QStringList groups; + QVariantMap hweelGroup; + QVERIFY( groups.isEmpty() ); + hweelGroup.insert( "defaultGroups", QStringList { "hweel" } ); + setConfigurationDefaultGroups( hweelGroup, groups ); + QCOMPARE( groups.count(), 1 ); + QVERIFY( groups.contains( "hweel" ) ); + } + + { + QStringList desired { "wheel", "root", "operator" }; + QStringList groups; + QVariantMap threeGroup; + QVERIFY( groups.isEmpty() ); + threeGroup.insert( "defaultGroups", desired ); + setConfigurationDefaultGroups( threeGroup, groups ); + QCOMPARE( groups.count(), 3 ); + QVERIFY( !groups.contains( "hweel" ) ); + QCOMPARE( groups, desired ); + } + + { + QStringList groups; + QVariantMap explicitEmpty; + QVERIFY( groups.isEmpty() ); + explicitEmpty.insert( "defaultGroups", QStringList() ); + setConfigurationDefaultGroups( explicitEmpty, groups ); + QCOMPARE( groups.count(), 0 ); + } + + { + QStringList groups; + QVariantMap missing; + QVERIFY( groups.isEmpty() ); + setConfigurationDefaultGroups( missing, groups ); + QCOMPARE( groups.count(), 6 ); // because of fallback! + QVERIFY( groups.contains( "lp" ) ); + } + + { + QStringList groups; + QVariantMap typeMismatch; + QVERIFY( groups.isEmpty() ); + typeMismatch.insert( "defaultGroups", 1 ); + setConfigurationDefaultGroups( typeMismatch, groups ); + QCOMPARE( groups.count(), 6 ); // because of fallback! + QVERIFY( groups.contains( "lp" ) ); + } +} + + QTEST_GUILESS_MAIN( CreateUserTests ) #include "utils/moc-warnings.h" diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index ddaf4837b..b9ea3ae17 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -145,10 +145,11 @@ UsersViewStep::onLeave() } Calamares::Job* j; + // TODO: Config object should create jobs, like this one, that depend only on config values j = new CreateUserJob( m_config->loginName(), m_config->fullName().isEmpty() ? m_config->loginName() : m_config->fullName(), m_config->doAutoLogin(), - m_defaultGroups ); + m_config->defaultGroups() ); auto userPW = m_widget->getUserPassword(); j = new SetPasswordJob( userPW.first, userPW.second ); @@ -171,17 +172,6 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) (void)this->widget(); using CalamaresUtils::getBool; - if ( configurationMap.contains( "defaultGroups" ) - && configurationMap.value( "defaultGroups" ).type() == QVariant::List ) - { - m_defaultGroups = configurationMap.value( "defaultGroups" ).toStringList(); - } - else - { - cWarning() << "Using fallback groups. Please check defaultGroups in users.conf"; - m_defaultGroups = QStringList { "lp", "video", "network", "storage", "wheel", "audio" }; - } - m_widget->setReusePasswordDefault( getBool( configurationMap, "doReusePassword", false ) ); if ( configurationMap.contains( "passwordRequirements" ) diff --git a/src/modules/users/UsersViewStep.h b/src/modules/users/UsersViewStep.h index aacf11f2a..5c3674571 100644 --- a/src/modules/users/UsersViewStep.h +++ b/src/modules/users/UsersViewStep.h @@ -61,7 +61,6 @@ private: UsersPage* m_widget; QList< Calamares::job_ptr > m_jobs; - QStringList m_defaultGroups; SetHostNameJob::Actions m_actions; Config* m_config; From f75839340a0183873ee43214ba77e0428242d2c0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 12:27:56 +0200 Subject: [PATCH 327/335] [users] Drop QRegExpValidator - QREValidator is a GUI part, so to avoid a dependency on GUI for the (non-GUI) Config object, port to the simpler QRE (which we had available anyway) --- src/modules/users/Config.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 060600894..6c6bbe90a 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -28,7 +28,6 @@ #include #include -#include static const QRegExp USERNAME_RX( "^[a-z_][a-z0-9_-]*[$]?$" ); static constexpr const int USERNAME_MAX_LENGTH = 31; @@ -132,15 +131,12 @@ Config::loginNameStatus() const } } - QString login( m_loginName ); // make a copy because validate() doesn't take const& - QRegExpValidator validateEntireLoginName( USERNAME_RX ); - QRegExpValidator validateFirstLetter( QRegExp( "[a-z_].*" ) ); // anchors are implicit in QRegExpValidator - int pos = -1; - if ( validateFirstLetter.validate( login, pos ) == QValidator::Invalid ) + QRegExp validateFirstLetter( "^[a-z_]" ); + if ( validateFirstLetter.indexIn( m_loginName ) != 0 ) { return tr( "Your username must start with a lowercase letter or underscore." ); } - if ( validateEntireLoginName.validate( login, pos ) == QValidator::Invalid ) + if ( !USERNAME_RX.exactMatch( m_loginName ) ) { return tr( "Only lowercase letters, numbers, underscore and hyphen are allowed." ); } @@ -202,11 +198,7 @@ Config::hostNameStatus() const } } - QString text = m_hostName; - QRegExpValidator val( HOSTNAME_RX ); - int pos = -1; - - if ( val.validate( text, pos ) == QValidator::Invalid ) + if ( !HOSTNAME_RX.exactMatch( m_hostName ) ) { return tr( "Only letters, numbers, underscore and hyphen are allowed." ); } From cc1136fb0eb9d243a183c06b87c8aa4eb34cd07f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 13:23:41 +0200 Subject: [PATCH 328/335] [users] Untangle tests - name sources for tests consistently Test - chase some required source changes with the renaming - name test targets consistently too --- src/modules/users/CMakeLists.txt | 8 ++++---- .../users/{CreateUserTests.cpp => TestCreateUserJob.cpp} | 2 +- .../users/{PasswordTests.cpp => TestPasswordJob.cpp} | 2 +- src/modules/users/{PasswordTests.h => TestPasswordJob.h} | 0 src/modules/users/{Tests.cpp => TestSetHostNameJob.cpp} | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename src/modules/users/{CreateUserTests.cpp => TestCreateUserJob.cpp} (99%) rename src/modules/users/{PasswordTests.cpp => TestPasswordJob.cpp} (98%) rename src/modules/users/{PasswordTests.h => TestPasswordJob.h} (100%) rename src/modules/users/{Tests.cpp => TestSetHostNameJob.cpp} (99%) diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index e2d2e3117..a486e93c3 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -44,7 +44,7 @@ calamares_add_plugin( users calamares_add_test( userspasswordtest SOURCES - PasswordTests.cpp + TestPasswordJob.cpp SetPasswordJob.cpp LIBRARIES ${CRYPT_LIBRARIES} @@ -53,15 +53,15 @@ calamares_add_test( calamares_add_test( userscreatetest SOURCES - CreateUserTests.cpp + TestCreateUserJob.cpp CreateUserJob.cpp Config.cpp ) calamares_add_test( - userstest + usershostnametest SOURCES - Tests.cpp + TestSetHostNameJob.cpp SetHostNameJob.cpp LIBRARIES Qt5::DBus diff --git a/src/modules/users/CreateUserTests.cpp b/src/modules/users/TestCreateUserJob.cpp similarity index 99% rename from src/modules/users/CreateUserTests.cpp rename to src/modules/users/TestCreateUserJob.cpp index 50592a384..f8c28a235 100644 --- a/src/modules/users/CreateUserTests.cpp +++ b/src/modules/users/TestCreateUserJob.cpp @@ -134,4 +134,4 @@ QTEST_GUILESS_MAIN( CreateUserTests ) #include "utils/moc-warnings.h" -#include "CreateUserTests.moc" +#include "TestCreateUserJob.moc" diff --git a/src/modules/users/PasswordTests.cpp b/src/modules/users/TestPasswordJob.cpp similarity index 98% rename from src/modules/users/PasswordTests.cpp rename to src/modules/users/TestPasswordJob.cpp index 0c1b4bffc..7f38c109d 100644 --- a/src/modules/users/PasswordTests.cpp +++ b/src/modules/users/TestPasswordJob.cpp @@ -18,7 +18,7 @@ #include "SetPasswordJob.h" -#include "PasswordTests.h" +#include "TestPasswordJob.h" #include diff --git a/src/modules/users/PasswordTests.h b/src/modules/users/TestPasswordJob.h similarity index 100% rename from src/modules/users/PasswordTests.h rename to src/modules/users/TestPasswordJob.h diff --git a/src/modules/users/Tests.cpp b/src/modules/users/TestSetHostNameJob.cpp similarity index 99% rename from src/modules/users/Tests.cpp rename to src/modules/users/TestSetHostNameJob.cpp index 196fd9d68..9e08d4807 100644 --- a/src/modules/users/Tests.cpp +++ b/src/modules/users/TestSetHostNameJob.cpp @@ -142,4 +142,4 @@ QTEST_GUILESS_MAIN( UsersTests ) #include "utils/moc-warnings.h" -#include "Tests.moc" +#include "TestSetHostNameJob.moc" From 892e9798f4dd9400e3d97c7da81d8ed01af4cc5d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 13:31:39 +0200 Subject: [PATCH 329/335] [users] Sanitize tests - move the testing of config-object methods to its own tests - simplify file structure for the password job tests --- src/modules/users/CMakeLists.txt | 8 +- src/modules/users/TestCreateUserJob.cpp | 58 ------------ src/modules/users/TestPasswordJob.cpp | 23 ++++- src/modules/users/TestPasswordJob.h | 36 -------- src/modules/users/TestSetHostNameJob.cpp | 3 +- src/modules/users/Tests.cpp | 113 +++++++++++++++++++++++ 6 files changed, 141 insertions(+), 100 deletions(-) delete mode 100644 src/modules/users/TestPasswordJob.h create mode 100644 src/modules/users/Tests.cpp diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index a486e93c3..5fafcd4f3 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -55,7 +55,6 @@ calamares_add_test( SOURCES TestCreateUserJob.cpp CreateUserJob.cpp - Config.cpp ) calamares_add_test( @@ -66,3 +65,10 @@ calamares_add_test( LIBRARIES Qt5::DBus ) + +calamares_add_test( + userstest + SOURCES + Tests.cpp + Config.cpp +) diff --git a/src/modules/users/TestCreateUserJob.cpp b/src/modules/users/TestCreateUserJob.cpp index f8c28a235..610f84eef 100644 --- a/src/modules/users/TestCreateUserJob.cpp +++ b/src/modules/users/TestCreateUserJob.cpp @@ -17,7 +17,6 @@ * along with Calamares. If not, see . */ -#include "Config.h" #include "CreateUserJob.h" #include "utils/Logger.h" @@ -27,7 +26,6 @@ // Implementation details extern QStringList groupsInTargetSystem( const QDir& targetRoot ); // CreateUserJob -extern void setConfigurationDefaultGroups( const QVariantMap& map, QStringList& defaultGroups ); class CreateUserTests : public QObject { @@ -40,7 +38,6 @@ private Q_SLOTS: void initTestCase(); void testReadGroup(); - void testDefaultGroups(); }; CreateUserTests::CreateUserTests() {} @@ -75,61 +72,6 @@ CreateUserTests::testReadGroup() } } -void -CreateUserTests::testDefaultGroups() -{ - { - QStringList groups; - QVariantMap hweelGroup; - QVERIFY( groups.isEmpty() ); - hweelGroup.insert( "defaultGroups", QStringList { "hweel" } ); - setConfigurationDefaultGroups( hweelGroup, groups ); - QCOMPARE( groups.count(), 1 ); - QVERIFY( groups.contains( "hweel" ) ); - } - - { - QStringList desired { "wheel", "root", "operator" }; - QStringList groups; - QVariantMap threeGroup; - QVERIFY( groups.isEmpty() ); - threeGroup.insert( "defaultGroups", desired ); - setConfigurationDefaultGroups( threeGroup, groups ); - QCOMPARE( groups.count(), 3 ); - QVERIFY( !groups.contains( "hweel" ) ); - QCOMPARE( groups, desired ); - } - - { - QStringList groups; - QVariantMap explicitEmpty; - QVERIFY( groups.isEmpty() ); - explicitEmpty.insert( "defaultGroups", QStringList() ); - setConfigurationDefaultGroups( explicitEmpty, groups ); - QCOMPARE( groups.count(), 0 ); - } - - { - QStringList groups; - QVariantMap missing; - QVERIFY( groups.isEmpty() ); - setConfigurationDefaultGroups( missing, groups ); - QCOMPARE( groups.count(), 6 ); // because of fallback! - QVERIFY( groups.contains( "lp" ) ); - } - - { - QStringList groups; - QVariantMap typeMismatch; - QVERIFY( groups.isEmpty() ); - typeMismatch.insert( "defaultGroups", 1 ); - setConfigurationDefaultGroups( typeMismatch, groups ); - QCOMPARE( groups.count(), 6 ); // because of fallback! - QVERIFY( groups.contains( "lp" ) ); - } -} - - QTEST_GUILESS_MAIN( CreateUserTests ) #include "utils/moc-warnings.h" diff --git a/src/modules/users/TestPasswordJob.cpp b/src/modules/users/TestPasswordJob.cpp index 7f38c109d..8677f88c2 100644 --- a/src/modules/users/TestPasswordJob.cpp +++ b/src/modules/users/TestPasswordJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,11 +19,19 @@ #include "SetPasswordJob.h" -#include "TestPasswordJob.h" - #include -QTEST_GUILESS_MAIN( PasswordTests ) +class PasswordTests : public QObject +{ + Q_OBJECT +public: + PasswordTests(); + ~PasswordTests() override; + +private Q_SLOTS: + void initTestCase(); + void testSalt(); +}; PasswordTests::PasswordTests() {} @@ -48,3 +57,9 @@ PasswordTests::testSalt() QVERIFY( s.endsWith( '$' ) ); qDebug() << "Obtained salt" << s; } + +QTEST_GUILESS_MAIN( PasswordTests ) + +#include "utils/moc-warnings.h" + +#include "TestPasswordJob.moc" diff --git a/src/modules/users/TestPasswordJob.h b/src/modules/users/TestPasswordJob.h deleted file mode 100644 index 3b4b5d201..000000000 --- a/src/modules/users/TestPasswordJob.h +++ /dev/null @@ -1,36 +0,0 @@ -/* === This file is part of Calamares - === - * - * Copyright 2017, Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - */ - -#ifndef PASSWORDTESTS_H -#define PASSWORDTESTS_H - -#include - -class PasswordTests : public QObject -{ - Q_OBJECT -public: - PasswordTests(); - ~PasswordTests() override; - -private Q_SLOTS: - void initTestCase(); - void testSalt(); -}; - -#endif diff --git a/src/modules/users/TestSetHostNameJob.cpp b/src/modules/users/TestSetHostNameJob.cpp index 9e08d4807..0e887a5f1 100644 --- a/src/modules/users/TestSetHostNameJob.cpp +++ b/src/modules/users/TestSetHostNameJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/Tests.cpp b/src/modules/users/Tests.cpp new file mode 100644 index 000000000..a4ee45fe2 --- /dev/null +++ b/src/modules/users/Tests.cpp @@ -0,0 +1,113 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "Config.h" + +#include "utils/Logger.h" + +#include + +// Implementation details +extern void setConfigurationDefaultGroups( const QVariantMap& map, QStringList& defaultGroups ); + +/** @brief Test Config object methods and internals + * + */ +class UserTests : public QObject +{ + Q_OBJECT +public: + UserTests(); + virtual ~UserTests() {} + +private Q_SLOTS: + void initTestCase(); + + void testDefaultGroups(); +}; + +UserTests::UserTests() {} + +void +UserTests::initTestCase() +{ + Logger::setupLogLevel( Logger::LOGDEBUG ); + cDebug() << "Users test started."; +} + +void +UserTests::testDefaultGroups() +{ + { + QStringList groups; + QVariantMap hweelGroup; + QVERIFY( groups.isEmpty() ); + hweelGroup.insert( "defaultGroups", QStringList { "hweel" } ); + setConfigurationDefaultGroups( hweelGroup, groups ); + QCOMPARE( groups.count(), 1 ); + QVERIFY( groups.contains( "hweel" ) ); + } + + { + QStringList desired { "wheel", "root", "operator" }; + QStringList groups; + QVariantMap threeGroup; + QVERIFY( groups.isEmpty() ); + threeGroup.insert( "defaultGroups", desired ); + setConfigurationDefaultGroups( threeGroup, groups ); + QCOMPARE( groups.count(), 3 ); + QVERIFY( !groups.contains( "hweel" ) ); + QCOMPARE( groups, desired ); + } + + { + QStringList groups; + QVariantMap explicitEmpty; + QVERIFY( groups.isEmpty() ); + explicitEmpty.insert( "defaultGroups", QStringList() ); + setConfigurationDefaultGroups( explicitEmpty, groups ); + QCOMPARE( groups.count(), 0 ); + } + + { + QStringList groups; + QVariantMap missing; + QVERIFY( groups.isEmpty() ); + setConfigurationDefaultGroups( missing, groups ); + QCOMPARE( groups.count(), 6 ); // because of fallback! + QVERIFY( groups.contains( "lp" ) ); + } + + { + QStringList groups; + QVariantMap typeMismatch; + QVERIFY( groups.isEmpty() ); + typeMismatch.insert( "defaultGroups", 1 ); + setConfigurationDefaultGroups( typeMismatch, groups ); + QCOMPARE( groups.count(), 6 ); // because of fallback! + QVERIFY( groups.contains( "lp" ) ); + } +} + + +QTEST_GUILESS_MAIN( UserTests ) + +#include "utils/moc-warnings.h" + +#include "Tests.moc" From 43cd415d9adf3ea99216e2c6d709a41ac747fc9d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 13:42:56 +0200 Subject: [PATCH 330/335] [partition] Switch to 'modern' Error/ok icons --- src/modules/partition/gui/EncryptWidget.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp index 42a073db7..8fb9a7b30 100644 --- a/src/modules/partition/gui/EncryptWidget.cpp +++ b/src/modules/partition/gui/EncryptWidget.cpp @@ -141,15 +141,16 @@ EncryptWidget::onPassphraseEdited() m_ui->m_iconLabel->setToolTip( QString() ); if ( p1.isEmpty() && p2.isEmpty() ) { - m_ui->m_iconLabel->clear(); + applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusWarning ); + m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) ); } else if ( p1 == p2 ) { - applyPixmap( m_ui->m_iconLabel, CalamaresUtils::Yes ); + applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusOk ); } else { - applyPixmap( m_ui->m_iconLabel, CalamaresUtils::No ); + applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusError ); m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) ); } From f1c4caba483c5ddadadfd85b72bdebb2f1857a5d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 13:59:06 +0200 Subject: [PATCH 331/335] [partition] Refactor checking next-enabled - move the calculations to an own method (so it can use early-return and log things to explain why next is disabled) --- src/modules/partition/gui/ChoicePage.cpp | 66 +++++++++++++++++------- src/modules/partition/gui/ChoicePage.h | 1 + 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 9e48e69ac..9f654b1bf 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1442,46 +1442,74 @@ ChoicePage::currentChoice() const return m_choice; } - -void -ChoicePage::updateNextEnabled() +bool +ChoicePage::calculateNextEnabled() const { bool enabled = false; - auto sm_p = m_beforePartitionBarsView ? m_beforePartitionBarsView->selectionModel() : nullptr; switch ( m_choice ) { case NoChoice: - enabled = false; - break; + cDebug() << "No partitioning choice"; + return false; case Replace: case Alongside: - enabled = sm_p && sm_p->currentIndex().isValid(); + if ( !( sm_p && sm_p->currentIndex().isValid() ) ) + { + cDebug() << "No partition selected"; + return false; + } break; case Erase: case Manual: enabled = true; } - if ( m_isEfi && - ( m_choice == Alongside || - m_choice == Replace ) ) + if (!enabled) + { + cDebug() << "No valid choice made"; + return false; + } + + + if ( m_isEfi && ( m_choice == Alongside || m_choice == Replace ) ) { if ( m_core->efiSystemPartitions().count() == 0 ) - enabled = false; + { + cDebug() << "No EFI partition for alongside or replace"; + return false; + } } - if ( m_choice != Manual && - m_encryptWidget->isVisible() && - m_encryptWidget->state() == EncryptWidget::Encryption::Unconfirmed ) - enabled = false; + if ( m_choice != Manual && m_encryptWidget->isVisible() ) + { + switch ( m_encryptWidget->state() ) + { + case EncryptWidget::Encryption::Unconfirmed: + cDebug() << "No passphrase provided"; + return false; + case EncryptWidget::Encryption::Disabled: + case EncryptWidget::Encryption::Confirmed: + // Checkbox not checked, **or** passphrases match + break; + } + } - if ( enabled == m_nextEnabled ) - return; + return true; +} - m_nextEnabled = enabled; - emit nextStatusChanged( enabled ); + +void +ChoicePage::updateNextEnabled() +{ + bool enabled = calculateNextEnabled(); + + if ( enabled != m_nextEnabled ) + { + m_nextEnabled = enabled; + emit nextStatusChanged( enabled ); + } } void diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index 1ff8f0d40..a28892011 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -126,6 +126,7 @@ private slots: void onEraseSwapChoiceChanged(); private: + bool calculateNextEnabled() const; void updateNextEnabled(); void setupChoices(); QComboBox* createBootloaderComboBox( QWidget* parentButton ); From 0eb1f002db2d61ea2414cc80736c2e53de818b13 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 14:13:43 +0200 Subject: [PATCH 332/335] [partition] defuse is-next-enabled Both the KPMCore and the ChoicePage -- asynchronously -- were connected to the nextStatusChanged() signal. So if the core said next was true, that could end up communicated to the ViewManager, enabling the *next* button in the UI. Changing to the *erase* page generally triggers a KPMCore reload, which later emits a `hasRootMountPointChanged()` signal, once the layout is applied and the disk gets a root mount point. So we'd get a `true` from KPMCore, which -- because it was connected directly to the signal to the VM -- would override any other considerations. Hook up both signals to an intermediate slot that just recalculates whether the next button should be enabled, based on the state both of the Choice page and whatever else. --- src/modules/partition/gui/PartitionViewStep.cpp | 9 +++++++-- src/modules/partition/gui/PartitionViewStep.h | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index b0142a82a..900d10e57 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -107,8 +107,8 @@ PartitionViewStep::continueLoading() m_waitingWidget->deleteLater(); m_waitingWidget = nullptr; - connect( m_core, &PartitionCoreModule::hasRootMountPointChanged, this, &PartitionViewStep::nextStatusChanged ); - connect( m_choicePage, &ChoicePage::nextStatusChanged, this, &PartitionViewStep::nextStatusChanged ); + connect( m_core, &PartitionCoreModule::hasRootMountPointChanged, this, &PartitionViewStep::nextPossiblyChanged ); + connect( m_choicePage, &ChoicePage::nextStatusChanged, this, &PartitionViewStep::nextPossiblyChanged ); } @@ -348,6 +348,11 @@ PartitionViewStep::isNextEnabled() const return false; } +void +PartitionViewStep::nextPossiblyChanged(bool) +{ + emit nextStatusChanged( isNextEnabled() ); +} bool PartitionViewStep::isBackEnabled() const diff --git a/src/modules/partition/gui/PartitionViewStep.h b/src/modules/partition/gui/PartitionViewStep.h index 63d11c816..47479a135 100644 --- a/src/modules/partition/gui/PartitionViewStep.h +++ b/src/modules/partition/gui/PartitionViewStep.h @@ -78,6 +78,9 @@ private: void initPartitionCoreModule(); void continueLoading(); + /// "slot" for changes to next-status from the KPMCore and ChoicePage + void nextPossiblyChanged( bool ); + PartitionCoreModule* m_core; QStackedWidget* m_widget; ChoicePage* m_choicePage; From ef4c2666e1d964f2c42fd39ea365029289c44770 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 14:46:07 +0200 Subject: [PATCH 333/335] [partition] Update icons on all state changes The encryption widget (passphrase for disk encryption) should show ok / warning / error whenever the state changes; this avoids it showing up first with **no** icon (it should show a warning when both passphrases are empty). --- src/modules/partition/gui/EncryptWidget.cpp | 57 +++++++++++---------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp index 8fb9a7b30..5e44c15fd 100644 --- a/src/modules/partition/gui/EncryptWidget.cpp +++ b/src/modules/partition/gui/EncryptWidget.cpp @@ -91,9 +91,39 @@ EncryptWidget::retranslate() } +///@brief Give @p label the @p pixmap from the standard-pixmaps +static void +applyPixmap( QLabel* label, CalamaresUtils::ImageType pixmap ) +{ + label->setFixedWidth( label->height() ); + label->setPixmap( CalamaresUtils::defaultPixmap( pixmap, CalamaresUtils::Original, label->size() ) ); +} + void EncryptWidget::updateState() { + if ( m_ui->m_passphraseLineEdit->isVisible() ) + { + QString p1 = m_ui->m_passphraseLineEdit->text(); + QString p2 = m_ui->m_confirmLineEdit->text(); + + if ( p1.isEmpty() && p2.isEmpty() ) + { + applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusWarning ); + m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) ); + } + else if ( p1 == p2 ) + { + applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusOk ); + m_ui->m_iconLabel->setToolTip( QString() ); + } + else + { + applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusError ); + m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) ); + } + } + Encryption newState; if ( m_ui->m_encryptCheckBox->isChecked() ) { @@ -119,14 +149,6 @@ EncryptWidget::updateState() } } -///@brief Give @p label the @p pixmap from the standard-pixmaps -static void -applyPixmap( QLabel* label, CalamaresUtils::ImageType pixmap ) -{ - label->setFixedWidth( label->height() ); - label->setPixmap( CalamaresUtils::defaultPixmap( pixmap, CalamaresUtils::Original, label->size() ) ); -} - void EncryptWidget::onPassphraseEdited() { @@ -135,25 +157,6 @@ EncryptWidget::onPassphraseEdited() m_ui->m_iconLabel->show(); } - QString p1 = m_ui->m_passphraseLineEdit->text(); - QString p2 = m_ui->m_confirmLineEdit->text(); - - m_ui->m_iconLabel->setToolTip( QString() ); - if ( p1.isEmpty() && p2.isEmpty() ) - { - applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusWarning ); - m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) ); - } - else if ( p1 == p2 ) - { - applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusOk ); - } - else - { - applyPixmap( m_ui->m_iconLabel, CalamaresUtils::StatusError ); - m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) ); - } - updateState(); } From 33fd5a1fad30b4d44c236335d8732923fbd2d12b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 17:56:30 +0200 Subject: [PATCH 334/335] [partition] Report a valid choice if a partition is selected --- src/modules/partition/gui/ChoicePage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 9f654b1bf..1d0c96623 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1460,6 +1460,7 @@ ChoicePage::calculateNextEnabled() const cDebug() << "No partition selected"; return false; } + enabled = true; break; case Erase: case Manual: From 14df0328031dd020d693e16cb669ee402bdf7b59 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 29 Jul 2020 22:32:52 +0200 Subject: [PATCH 335/335] CI: build verbose the first time, too --- ci/travis-continuous.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/travis-continuous.sh b/ci/travis-continuous.sh index aefaca6f8..567a55d3d 100755 --- a/ci/travis-continuous.sh +++ b/ci/travis-continuous.sh @@ -24,7 +24,7 @@ section "cmake $CMAKE_ARGS $SRCDIR" cmake $CMAKE_ARGS $SRCDIR || { echo "! CMake failed" ; exit 1 ; } section "make" -make -j2 || { echo "! Make recheck" ; pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } +make -j2 VERBOSE=1 || { echo "! Make recheck" ; pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; } section "make install"