Merge branch 'master' into emergency-modules

This commit is contained in:
Adriaan de Groot 2018-06-14 17:15:40 -04:00
commit 2d7eea6d73
57 changed files with 3807 additions and 634 deletions

View File

@ -33,12 +33,75 @@ project( calamares C CXX )
cmake_minimum_required( VERSION 3.2 )
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" )
set( CMAKE_CXX_STANDARD 14 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_C_STANDARD 99 )
set( CMAKE_C_STANDARD_REQUIRED ON )
### OPTIONS
#
option( INSTALL_CONFIG "Install configuration files" ON )
option( INSTALL_POLKIT "Install Polkit configuration" ON )
option( BUILD_TESTING "Build the testing tree." ON )
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON )
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
### Calamares application info
#
set( CALAMARES_ORGANIZATION_NAME "Calamares" )
set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" )
set( CALAMARES_APPLICATION_NAME "Calamares" )
set( CALAMARES_DESCRIPTION_SUMMARY
"The distribution-independent installer framework" )
set( CALAMARES_VERSION_MAJOR 3 )
set( CALAMARES_VERSION_MINOR 2 )
set( CALAMARES_VERSION_PATCH 0 )
set( CALAMARES_VERSION_RC 0 )
### Transifex (languages) info
#
# complete = 100% translated,
# good = nearly complete (use own judgement, right now >= 75%)
# ok = incomplete (more than 25% untranslated),
# bad = 0% translated, placeholder in tx; these are not included.
#
# Language en (source language) is added later. It isn't listed in
# Transifex either. Get the list of languages and their status
# from https://transifex.com/calamares/calamares/ .
#
# When adding a new language, take care that it is properly loaded
# by the translation framework. Languages with alternate scripts
# (sr@latin in particular) may need special handling in CalamaresUtils.cpp.
#
# TODO: drop the es_ES translation from Transifex
# TODO: move eo (Esperanto) to _ok once Qt can actually create a
# locale for it.
#
# NOTE: when updating the list from Transifex, copy these four lines
# and prefix each variable name with "p", so that the automatic
# checks for new languages and misspelled ones are done (that is,
# copy these four lines to four backup lines, add "p", and then update
# the original four lines with the current translations).
set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ )
set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk )
set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb
sl sr@latin mr es_PR kk kn et be )
set( _tx_bad uz lo ur gu fr_CH fa eo ko )
### Required versions
#
# See DEPENDENCIES section below.
set( QT_VERSION 5.7.0 )
set( YAMLCPP_VERSION 0.5.1 )
set( ECM_VERSION 5.18 )
set( PYTHONLIBS_VERSION 3.3 )
set( BOOSTPYTHON_VERSION 1.54.0 )
### CMAKE SETUP
#
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" )
# CMake 3.9, 3.10 compatibility
if( POLICY CMP0071 )
@ -52,8 +115,15 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
)
endif()
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
### C++ SETUP
#
set( CMAKE_CXX_STANDARD 14 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_C_STANDARD 99 )
set( CMAKE_C_STANDARD_REQUIRED ON )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
message( STATUS "Found Clang ${CMAKE_CXX_COMPILER_VERSION}, setting up Clang-specific compiler flags." )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
@ -123,28 +193,33 @@ endif()
include( FeatureSummary )
include( CMakeColors )
set( QT_VERSION 5.6.0 )
### DEPENDENCIES
#
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg Quick QuickWidgets )
find_package( YAMLCPP 0.5.1 REQUIRED )
find_package( PolkitQt5-1 REQUIRED )
find_package( YAMLCPP ${YAMLCPP_VERSION} REQUIRED )
if( INSTALL_POLKIT )
find_package( PolkitQt5-1 REQUIRED )
else()
# Find it anyway, for dependencies-reporting
find_package( PolkitQt5-1 )
endif()
set_package_properties(
PolkitQt5-1 PROPERTIES
DESCRIPTION "Qt5 support for Polkit"
URL "https://cgit.kde.org/polkit-qt-1.git"
PURPOSE "PolkitQt5-1 helps with installing Polkit configuration"
)
# Find ECM once, and add it to the module search path; Calamares
# modules that need ECM can do
# find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE),
# no need to mess with the module path after.
set( ECM_VERSION 5.18 )
find_package(ECM ${ECM_VERSION} NO_MODULE)
if( ECM_FOUND )
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
endif()
option( INSTALL_CONFIG "Install configuration files" ON )
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON )
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
option( BUILD_TESTING "Build the testing tree." ON )
find_package( KF5 COMPONENTS CoreAddons Crash )
if( NOT KF5Crash_FOUND )
set( WITH_KF5Crash OFF )
@ -154,7 +229,7 @@ if( BUILD_TESTING )
enable_testing()
endif ()
find_package( PythonLibs 3.3 )
find_package( PythonLibs ${PYTHONLIBS_VERSION} )
set_package_properties(
PythonLibs PROPERTIES
DESCRIPTION "C interface libraries for the Python 3 interpreter."
@ -164,7 +239,7 @@ set_package_properties(
if ( PYTHONLIBS_FOUND )
include( BoostPython3 )
find_boost_python3( 1.54.0 ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND )
find_boost_python3( ${BOOSTPYTHON_VERSION} ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND )
set_package_properties(
Boost PROPERTIES
PURPOSE "Boost.Python is used for Python job modules."
@ -189,33 +264,10 @@ endif()
### Transifex Translation status
#
# complete = 100% translated,
# good = nearly complete (use own judgement, right now >= 75%)
# ok = incomplete (more than 25% untranslated),
# bad = 0% translated, placeholder in tx; these are not included.
# Construct language lists for use. If there are p_tx* variables,
# then run an extra cmake-time check for consistency of the old
# (p_tx*) and new (_tx*) lists.
#
# Language en (source language) is added later. It isn't listed in
# Transifex either. Get the list of languages and their status
# from https://transifex.com/calamares/calamares/ .
#
# When adding a new language, take care that it is properly loaded
# by the translation framework. Languages with alternate scripts
# (sr@latin in particular) may need special handling in CalamaresUtils.cpp.
#
# TODO: drop the es_ES translation from Transifex
# TODO: move eo (Esperanto) to _ok once Qt can actually create a
# locale for it.
#
# NOTE: when updating the list from Transifex, copy these four lines
# and prefix each variable name with "p", so that the automatic
# checks for new languages and misspelled ones are done.
set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ )
set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk )
set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb
sl sr@latin mr es_PR kk kn et be )
set( _tx_bad uz lo ur gu fr_CH fa eo )
# check translation update
set( prev_tx ${p_tx_complete} ${p_tx_good} ${p_tx_ok} ${p_tx_bad} )
set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_bad} )
if ( prev_tx )
@ -245,74 +297,11 @@ endif()
unset( prev_tx )
unset( curr_tx )
add_subdirectory( lang ) # i18n tools
###
### Calamares application info
###
set( CALAMARES_ORGANIZATION_NAME "Calamares" )
set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" )
set( CALAMARES_APPLICATION_NAME "Calamares" )
set( CALAMARES_DESCRIPTION_SUMMARY "The distribution-independent installer framework" )
set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} )
list( SORT CALAMARES_TRANSLATION_LANGUAGES )
### Bump version here
set( CALAMARES_VERSION_MAJOR 3 )
set( CALAMARES_VERSION_MINOR 2 )
set( CALAMARES_VERSION_PATCH 0 )
set( CALAMARES_VERSION_RC 0 )
add_subdirectory( lang ) # i18n tools
set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} )
set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" )
if( CALAMARES_VERSION_RC )
set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} )
endif()
# additional info for non-release builds
if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
include( CMakeDateStamp )
set( CALAMARES_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
if( CALAMARES_VERSION_DATE GREATER 0 )
set( CALAMARES_VERSION ${CALAMARES_VERSION}.${CALAMARES_VERSION_DATE} )
endif()
include( CMakeVersionSource )
if( CMAKE_VERSION_SOURCE )
set( CALAMARES_VERSION ${CALAMARES_VERSION}-${CMAKE_VERSION_SOURCE} )
endif()
endif()
# enforce using constBegin, constEnd for const-iterators
add_definitions( "-DQT_STRICT_ITERATORS" )
# set paths
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
# Better default installation paths: GNUInstallDirs defines
# CMAKE_INSTALL_FULL_SYSCONFDIR to be CMAKE_INSTALL_PREFIX/etc by default
# but we really want /etc
if( NOT DEFINED CMAKE_INSTALL_SYSCONFDIR )
set( CMAKE_INSTALL_SYSCONFDIR "/etc" )
endif()
# make predefined install dirs available everywhere
include( GNUInstallDirs )
# make uninstall support
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
# Early configure these files as we need them later on
set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" )
set( CALAMARES_LIBRARIES calamares )
set( THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/thirdparty" )
### Example Distro
#
@ -365,7 +354,58 @@ endif()
# "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html"
add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.")
# add_subdirectory( thirdparty )
### CALAMARES PROPER
#
set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} )
set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" )
if( CALAMARES_VERSION_RC )
set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} )
endif()
# additional info for non-release builds
if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
include( CMakeDateStamp )
set( CALAMARES_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
if( CALAMARES_VERSION_DATE GREATER 0 )
set( CALAMARES_VERSION ${CALAMARES_VERSION}.${CALAMARES_VERSION_DATE} )
endif()
include( CMakeVersionSource )
if( CMAKE_VERSION_SOURCE )
set( CALAMARES_VERSION ${CALAMARES_VERSION}-${CMAKE_VERSION_SOURCE} )
endif()
endif()
# enforce using constBegin, constEnd for const-iterators
add_definitions( "-DQT_STRICT_ITERATORS" )
# set paths
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
# Better default installation paths: GNUInstallDirs defines
# CMAKE_INSTALL_FULL_SYSCONFDIR to be CMAKE_INSTALL_PREFIX/etc by default
# but we really want /etc
if( NOT DEFINED CMAKE_INSTALL_SYSCONFDIR )
set( CMAKE_INSTALL_SYSCONFDIR "/etc" )
endif()
# make predefined install dirs available everywhere
include( GNUInstallDirs )
# make uninstall support
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
# Early configure these files as we need them later on
set( CALAMARES_CMAKE_DIR "${CMAKE_SOURCE_DIR}/CMakeModules" )
set( CALAMARES_LIBRARIES calamares )
add_subdirectory( src )
add_feature_info(Python ${WITH_PYTHON} "Python job modules")
@ -373,14 +413,6 @@ add_feature_info(PythonQt ${WITH_PYTHONQT} "Python view modules")
add_feature_info(Config ${INSTALL_CONFIG} "Install Calamares configuration")
add_feature_info(KCrash ${WITH_KF5Crash} "Crash dumps via KCrash")
feature_summary(WHAT ALL)
get_directory_property( SKIPPED_MODULES
DIRECTORY src/modules
DEFINITION LIST_SKIPPED_MODULES
)
calamares_explain_skipped_modules( ${SKIPPED_MODULES} )
# Add all targets to the build-tree export set
set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files" )
set( CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" )
@ -434,12 +466,14 @@ if( INSTALL_CONFIG )
)
endif()
install(
FILES
com.github.calamares.calamares.policy
DESTINATION
"${POLKITQT-1_POLICY_FILES_INSTALL_DIR}"
)
if( INSTALL_POLKIT )
install(
FILES
com.github.calamares.calamares.policy
DESTINATION
"${POLKITQT-1_POLICY_FILES_INSTALL_DIR}"
)
endif()
install(
FILES
@ -465,3 +499,13 @@ configure_file(
add_custom_target( uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
)
### CMAKE SUMMARY REPORT
#
feature_summary(WHAT ALL)
get_directory_property( SKIPPED_MODULES
DIRECTORY src/modules
DEFINITION LIST_SKIPPED_MODULES
)
calamares_explain_skipped_modules( ${SKIPPED_MODULES} )

View File

@ -22,6 +22,40 @@
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 "<RCC version='1.0'></RCC>"
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.
@ -61,7 +95,7 @@ macro(add_calamares_translations language)
add_custom_command(
OUTPUT ${trans_outfile}
COMMAND "${Qt5Core_RCC_EXECUTABLE}"
ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile}
ARGS ${rcc_options} ${_rcc_version_support} -name ${trans_file} -o ${trans_outfile} ${trans_infile}
MAIN_DEPENDENCY ${trans_infile}
DEPENDS ${QM_FILES}
)

View File

@ -47,9 +47,9 @@ GenericName[es]=Instalador del Sistema
Comment[es]=Calamares Instalador del Sistema
Name[es]=Instalar Sistema
Icon[et]=calamares
GenericName[et]=Süsteemi installija
Comment[et]=Calamares Süsteemi installija
Name[et]=Installi süsteem
GenericName[et]=Süsteemipaigaldaja
Comment[et]=Calamares süsteemipaigaldaja
Name[et]=Paigalda süsteem
Name[eu]=Sistema instalatu
Name[es_PR]=Instalar el sistema
Icon[fr]=calamares
@ -92,9 +92,9 @@ GenericName[lt]=Sistemos diegimas į kompiuterį
Comment[lt]=Calamares Sistemos diegimo programa
Name[lt]=Įdiegti Sistemą
Icon[it_IT]=calamares
GenericName[it_IT]=Programma di installazione
Comment[it_IT]=Calamares  Installare il Sistema
Name[it_IT]=Installa il Sistema
GenericName[it_IT]=Programma d'installazione del sistema
Comment[it_IT]=Calamares Programma d'installazione del sistema
Name[it_IT]=Installa il sistema
Icon[nb]=calamares
GenericName[nb]=Systeminstallatør
Comment[nb]=Calamares-systeminstallatør
@ -156,6 +156,9 @@ Icon[eo]=calamares
GenericName[eo]=Sistema Instalilo
Comment[eo]=Calamares Sistema Instalilo
Name[eo]=Instali Sistemo
Icon[es_MX]=calamares
GenericName[es_MX]=Instalador del sistema
Comment[es_MX]=Calamares - Instalador del sistema
Name[es_MX]=Instalar el Sistema
Icon[pt_PT]=calamares
GenericName[pt_PT]=Instalador de Sistema

View File

@ -485,12 +485,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
<source>The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined.</source>
<translation type="unfinished"/>
<translation>Kommandoen kører i værtsmiljøet og har brug for at kende rodstien, men der er ikke defineret nogen rootMountPoint.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>Kommandoen har brug for at kende brugerens navn, men der er ikke defineret noget brugernavn.</translation>
</message>
</context>
<context>
@ -1670,7 +1670,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="194"/>
<source>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.</source>
<translation type="unfinished"/>
<translation>Partitionstabellen %1 har allerede %2 primære partitioner, og der kan ikke tilføjes flere. Fjern venligst en primær partition og tilføj i stedet en udviddet partition.</translation>
</message>
</context>
<context>

File diff suppressed because it is too large Load Diff

View File

@ -9,12 +9,12 @@
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="79"/>
<source>This system was started with an &lt;strong&gt;EFI&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from an EFI environment, this installer must deploy a boot loader application, like &lt;strong&gt;GRUB&lt;/strong&gt; or &lt;strong&gt;systemd-boot&lt;/strong&gt; on an &lt;strong&gt;EFI System Partition&lt;/strong&gt;. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</source>
<translation>See süsteem käivitati &lt;strong&gt;EFI&lt;/strong&gt; käivituskeskkonnas.&lt;br&gt;&lt;br&gt;Et seadistada käivitust EFI keskkonnast, peab see installija paigaldama käivituslaaduri rakenduse, näiteks &lt;strong&gt;GRUB&lt;/strong&gt; või &lt;strong&gt;systemd-boot&lt;/strong&gt; sinu &lt;strong&gt;EFI süsteemipartitsioonile&lt;/strong&gt;. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma.</translation>
<translation>See süsteem käivitati &lt;strong&gt;EFI&lt;/strong&gt; käivituskeskkonnas.&lt;br&gt;&lt;br&gt;Et seadistada käivitust EFI keskkonnast, peab see paigaldaja paigaldama käivituslaaduri rakenduse, näiteks &lt;strong&gt;GRUB&lt;/strong&gt; või &lt;strong&gt;systemd-boot&lt;/strong&gt; sinu &lt;strong&gt;EFI süsteemipartitsioonile&lt;/strong&gt;. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="91"/>
<source>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; 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.</source>
<translation>See süsteem käivitati &lt;strong&gt;BIOS&lt;/strong&gt; käivituskeskkonnas.&lt;br&gt;&lt;br&gt;Et seadistada käivitust BIOS keskkonnast, peab see installija paigaldama käivituslaaduri, näiteks &lt;strong&gt;GRUB&lt;/strong&gt;, kas mõne partitsiooni algusse või &lt;strong&gt;Master Boot Record&lt;/strong&gt;&apos;i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama.</translation>
<translation>See süsteem käivitati &lt;strong&gt;BIOS&lt;/strong&gt; käivituskeskkonnas.&lt;br&gt;&lt;br&gt;Et seadistada käivitust BIOS keskkonnast, peab see paigaldaja paigaldama käivituslaaduri, näiteks &lt;strong&gt;GRUB&lt;/strong&gt;, kas mõne partitsiooni algusse või &lt;strong&gt;Master Boot Record&lt;/strong&gt;&apos;i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama.</translation>
</message>
</context>
<context>
@ -37,7 +37,7 @@
<message>
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="111"/>
<source>Do not install a boot loader</source>
<translation>Ära installi käivituslaadurit</translation>
<translation>Ära paigalda käivituslaadurit</translation>
</message>
<message>
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="125"/>
@ -99,7 +99,7 @@
<message>
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="78"/>
<source>Install</source>
<translation>Installi</translation>
<translation>Paigalda</translation>
</message>
</context>
<context>
@ -179,24 +179,24 @@
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="267"/>
<source>Cancel installation without changing the system.</source>
<translation>Tühista installimine ilma süsteemi muutmata.</translation>
<translation>Tühista paigaldamine ilma süsteemi muutmata.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="255"/>
<source>&amp;Install</source>
<translation>&amp;Installi</translation>
<translation>&amp;Paigalda</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="303"/>
<source>Cancel installation?</source>
<translation>Tühista installimine?</translation>
<translation>Tühista paigaldamine?</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="304"/>
<source>Do you really want to cancel the current install process?
The installer will quit and all changes will be lost.</source>
<translation>Kas sa tõesti soovid tühistada praeguse installiprotsessi?
Installija sulgub ja kõik muutused kaovad.</translation>
<translation>Kas sa tõesti soovid tühistada praeguse paigaldusprotsessi?
Paigaldaja sulgub ning kõik muutused kaovad.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="309"/>
@ -221,12 +221,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="216"/>
<source>The %1 installer is about to make changes to your disk in order to install %2.&lt;br/&gt;&lt;strong&gt;You will not be able to undo these changes.&lt;/strong&gt;</source>
<translation>%1 installija on tegemas muudatusi sinu kettale, et installida %2.&lt;br/&gt;&lt;strong&gt;Sa ei saa neid muudatusi tagasi võtta.&lt;/strong&gt;</translation>
<translation>%1 paigaldaja on tegemas muudatusi sinu kettale, et paigaldada %2.&lt;br/&gt;&lt;strong&gt;Sa ei saa neid muudatusi tagasi võtta.&lt;/strong&gt;</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="221"/>
<source>&amp;Install now</source>
<translation>&amp;Installi kohe</translation>
<translation>&amp;Paigalda kohe</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="222"/>
@ -241,7 +241,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="262"/>
<source>The installation is complete. Close the installer.</source>
<translation>Installimine on lõpetatud. Sulge installija.</translation>
<translation>Paigaldamine on lõpetatud. Sulge paigaldaja.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="159"/>
@ -251,7 +251,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="160"/>
<source>Installation Failed</source>
<translation>Installimine ebaõnnestus</translation>
<translation>Paigaldamine ebaõnnestus</translation>
</message>
</context>
<context>
@ -282,7 +282,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/calamares/CalamaresWindow.cpp" line="44"/>
<source>%1 Installer</source>
<translation>%1 installija</translation>
<translation>%1 paigaldaja</translation>
</message>
<message>
<location filename="../src/calamares/CalamaresWindow.cpp" line="111"/>
@ -295,12 +295,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="96"/>
<source>This computer does not satisfy the minimum requirements for installing %1.&lt;br/&gt;Installation cannot continue. &lt;a href=&quot;#details&quot;&gt;Details...&lt;/a&gt;</source>
<translation>See arvuti ei rahulda %1 installimiseks vajalikke minimaaltingimusi.&lt;br/&gt;Installimine ei saa jätkuda. &lt;a href=&quot;#details&quot;&gt;Detailid...&lt;/a&gt;</translation>
<translation>See arvuti ei rahulda %1 paigldamiseks vajalikke minimaaltingimusi.&lt;br/&gt;Paigaldamine ei saa jätkuda. &lt;a href=&quot;#details&quot;&gt;Detailid...&lt;/a&gt;</translation>
</message>
<message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="113"/>
<source>This computer does not satisfy some of the recommended requirements for installing %1.&lt;br/&gt;Installation can continue, but some features might be disabled.</source>
<translation>See arvuti ei rahulda mõnda %1 installimiseks soovitatud tingimust.&lt;br/&gt;Installimine võib jätkuda, ent mõned funktsioonid võivad olla keelatud.</translation>
<translation>See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.&lt;br/&gt;Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud.</translation>
</message>
<message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="151"/>
@ -371,7 +371,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1040"/>
<source>&lt;strong&gt;Select a partition to install on&lt;/strong&gt;</source>
<translation>&lt;strong&gt;Vali partitsioon, kuhu installida&lt;/strong&gt;</translation>
<translation>&lt;strong&gt;Vali partitsioon, kuhu paigaldada&lt;/strong&gt;</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1096"/>
@ -412,7 +412,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1260"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1284"/>
<source>&lt;strong&gt;Install alongside&lt;/strong&gt;&lt;br/&gt;The installer will shrink a partition to make room for %1.</source>
<translation>&lt;strong&gt;Installi kõrvale&lt;/strong&gt;&lt;br/&gt;Installija vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1.</translation>
<translation>&lt;strong&gt;Paigalda kõrvale&lt;/strong&gt;&lt;br/&gt;Paigaldaja vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1213"/>
@ -485,12 +485,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
<source>The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined.</source>
<translation type="unfinished"/>
<translation>See käsklus käivitatakse hostikeskkonnas ning peab teadma juurteed, kuid rootMountPoint pole defineeritud.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>Käsklus peab teadma kasutaja nime, aga kasutajanimi pole defineeritud.</translation>
</message>
</context>
<context>
@ -599,7 +599,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="79"/>
<source>The installer failed to create partition on disk &apos;%1&apos;.</source>
<translation>Installija ei suutnud luua partitsiooni kettale &quot;%1&quot;.</translation>
<translation>Paigaldaja ei suutnud luua partitsiooni kettale &quot;%1&quot;.</translation>
</message>
</context>
<context>
@ -650,7 +650,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="72"/>
<source>The installer failed to create a partition table on %1.</source>
<translation>Installija ei suutnud luua partitsioonitabelit kettale %1.</translation>
<translation>Paigaldaja ei suutnud luua partitsioonitabelit kettale %1.</translation>
</message>
</context>
<context>
@ -711,7 +711,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/DeletePartitionJob.cpp" line="68"/>
<source>The installer failed to delete partition %1.</source>
<translation>Installija ei suutnud kustutada partitsiooni %1.</translation>
<translation>Paigaldaja ei suutnud kustutada partitsiooni %1.</translation>
</message>
</context>
<context>
@ -719,7 +719,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="150"/>
<source>The type of &lt;strong&gt;partition table&lt;/strong&gt; on the selected storage device.&lt;br&gt;&lt;br&gt;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.&lt;br&gt;This installer will keep the current partition table unless you explicitly choose otherwise.&lt;br&gt;If unsure, on modern systems GPT is preferred.</source>
<translation>&lt;strong&gt;Partitsioonitabeli&lt;/strong&gt; tüüp valitud mäluseadmel.&lt;br&gt;&lt;br&gt;Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.&lt;br&gt;See installija säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.&lt;br&gt;Kui pole kindel, eelista modernsetel süsteemidel GPT-d.</translation>
<translation>&lt;strong&gt;Partitsioonitabeli&lt;/strong&gt; tüüp valitud mäluseadmel.&lt;br&gt;&lt;br&gt;Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.&lt;br&gt;See paigaldaja säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.&lt;br&gt;Kui pole kindel, eelista modernsetel süsteemidel GPT-d.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="107"/>
@ -734,7 +734,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="121"/>
<source>This installer &lt;strong&gt;cannot detect a partition table&lt;/strong&gt; on the selected storage device.&lt;br&gt;&lt;br&gt;The device either has no partition table, or the partition table is corrupted or of an unknown type.&lt;br&gt;This installer can create a new partition table for you, either automatically, or through the manual partitioning page.</source>
<translation>See installija &lt;strong&gt;ei suuda tuvastada partitsioonitabelit&lt;/strong&gt;valitud mäluseadmel.&lt;br&gt;&lt;br&gt;Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.&lt;br&gt;See installija võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. </translation>
<translation>See paigaldaja &lt;strong&gt;ei suuda tuvastada partitsioonitabelit&lt;/strong&gt;valitud mäluseadmel.&lt;br&gt;&lt;br&gt;Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.&lt;br&gt;See paigaldaja võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. </translation>
</message>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="131"/>
@ -877,7 +877,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="147"/>
<source>Install %1 on &lt;strong&gt;new&lt;/strong&gt; %2 system partition.</source>
<translation>Installi %1 &lt;strong&gt;uude&lt;/strong&gt; %2 süsteemipartitsiooni.</translation>
<translation>Paigalda %1 &lt;strong&gt;uude&lt;/strong&gt; %2 süsteemipartitsiooni.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="151"/>
@ -887,7 +887,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="159"/>
<source>Install %2 on %3 system partition &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation>Installi %2 %3 süsteemipartitsioonile &lt;strong&gt;%1&lt;/strong&gt;.</translation>
<translation>Paigalda %2 %3 süsteemipartitsioonile &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="164"/>
@ -897,7 +897,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="176"/>
<source>Install boot loader on &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation>Installi käivituslaadur kohta &lt;strong&gt;%1&lt;/strong&gt;.</translation>
<translation>Paigalda käivituslaadur kohta &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="186"/>
@ -915,7 +915,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When this box is checked, your system will restart immediately when you click on &lt;span style=&quot; font-style:italic;&quot;&gt;Done&lt;/span&gt; or close the installer.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad &lt;span style=&quot; font-style:italic;&quot;&gt;Valmis&lt;/span&gt; või sulged installija.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad &lt;span style=&quot; font-style:italic;&quot;&gt;Valmis&lt;/span&gt; või sulged paigaldaja.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
@ -925,12 +925,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/finished/FinishedPage.cpp" line="51"/>
<source>&lt;h1&gt;All done.&lt;/h1&gt;&lt;br/&gt;%1 has been installed on your computer.&lt;br/&gt;You may now restart into your new system, or continue using the %2 Live environment.</source>
<translation>&lt;h1&gt;Kõik on valmis.&lt;/h1&gt;&lt;br/&gt;%1 on installitud sinu arvutisse.&lt;br/&gt;Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist.</translation>
<translation>&lt;h1&gt;Kõik on valmis.&lt;/h1&gt;&lt;br/&gt;%1 on paigaldatud sinu arvutisse.&lt;br/&gt;Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist.</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.cpp" line="109"/>
<source>&lt;h1&gt;Installation Failed&lt;/h1&gt;&lt;br/&gt;%1 has not been installed on your computer.&lt;br/&gt;The error message was: %2.</source>
<translation>&lt;h1&gt;Installimine ebaõnnestus&lt;/h1&gt;&lt;br/&gt;%1 ei installitud sinu arvutisse.&lt;br/&gt;Veateade oli: %2.</translation>
<translation>&lt;h1&gt;Paigaldamine ebaõnnestus&lt;/h1&gt;&lt;br/&gt;%1 ei paigaldatud sinu arvutisse.&lt;br/&gt;Veateade oli: %2.</translation>
</message>
</context>
<context>
@ -943,12 +943,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="124"/>
<source>Installation Complete</source>
<translation>Installimine lõpetatud</translation>
<translation>Paigaldus valmis</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="125"/>
<source>The installation of %1 is complete.</source>
<translation>%1 installimine on lõpetatud.</translation>
<translation>%1 paigaldus on valmis.</translation>
</message>
</context>
<context>
@ -971,7 +971,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="77"/>
<source>The installer failed to format partition %1 on disk &apos;%2&apos;.</source>
<translation>Installija ei suutnud vormindada partitsiooni %1 kettal &quot;%2&quot;.</translation>
<translation>Paigaldaja ei suutnud vormindada partitsiooni %1 kettal &quot;%2&quot;.</translation>
</message>
</context>
<context>
@ -979,12 +979,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="53"/>
<source>Konsole not installed</source>
<translation>Konsole pole installitud</translation>
<translation>Konsole pole paigaldatud</translation>
</message>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="54"/>
<source>Please install KDE Konsole and try again!</source>
<translation>Palun installi KDE Konsole ja proovi uuesti!</translation>
<translation>Palun paigalda KDE Konsole ja proovi uuesti!</translation>
</message>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="116"/>
@ -1059,7 +1059,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="115"/>
<source>&lt;h1&gt;License Agreement&lt;/h1&gt;This setup procedure will install proprietary software that is subject to licensing terms.</source>
<translation>&lt;h1&gt;Litsensileping&lt;/h1&gt;See seadistusprotseduur installib omandiõigusega tarkvara, mis vastab litsensitingimustele.</translation>
<translation>&lt;h1&gt;Litsensileping&lt;/h1&gt;See seadistusprotseduur paigaldab omandiõigusega tarkvara, mis vastab litsensitingimustele.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="118"/>
@ -1069,12 +1069,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="124"/>
<source>&lt;h1&gt;License Agreement&lt;/h1&gt;This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience.</source>
<translation>&lt;h1&gt;Litsensileping&lt;/h1&gt;See seadistusprotseduur võib installida omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust.</translation>
<translation>&lt;h1&gt;Litsensileping&lt;/h1&gt;See seadistusprotseduur võib paigaldada omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="129"/>
<source>Please review the End User License Agreements (EULAs) above.&lt;br/&gt;If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead.</source>
<translation>Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).&lt;br/&gt;Kui sa tingimustega ei nõustu, ei installita omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive.</translation>
<translation>Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).&lt;br/&gt;Kui sa tingimustega ei nõustu, ei paigaldata omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="159"/>
@ -1190,12 +1190,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="86"/>
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
<translation>Võrguinstall. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust)</translation>
<translation>Võrgupaigaldus. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust)</translation>
</message>
<message>
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="96"/>
<source>Network Installation. (Disabled: Received invalid groups data)</source>
<translation>Võrguinstall. (Keelatud: vastu võetud sobimatud grupiandmed)</translation>
<translation>Võrgupaigaldus. (Keelatud: vastu võetud sobimatud grupiandmed)</translation>
</message>
</context>
<context>
@ -1494,7 +1494,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/users/page_usersetup.ui" line="200"/>
<source>&lt;small&gt;If more than one person will use this computer, you can set up multiple accounts after installation.&lt;/small&gt;</source>
<translation>&lt;small&gt;Kui rohkem kui üks inimene kasutab seda arvutit, saad sa määrata mitu kontot peale installi.&lt;/small&gt;</translation>
<translation>&lt;small&gt;Kui rohkem kui üks inimene kasutab seda arvutit, saad sa pärast paigaldust määrata mitu kontot.&lt;/small&gt;</translation>
</message>
<message>
<location filename="../src/modules/users/page_usersetup.ui" line="335"/>
@ -1655,7 +1655,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="148"/>
<source>Install boot &amp;loader on:</source>
<translation>Installi käivituslaadur kohta:</translation>
<translation>Paigalda käivituslaadur kohta:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="169"/>
@ -1665,12 +1665,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="193"/>
<source>Can not create new partition</source>
<translation type="unfinished"/>
<translation>Uut partitsiooni ei saa luua</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="194"/>
<source>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.</source>
<translation type="unfinished"/>
<translation>Partitsioonitabel kohas %1 juba omab %2 peamist partitsiooni ning rohkem juurde ei saa lisada. Palun eemalda selle asemel üks peamine partitsioon ja lisa juurde laiendatud partitsioon. </translation>
</message>
</context>
<context>
@ -1688,12 +1688,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="158"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system.</source>
<translation>Installi %1 praeguse operatsioonisüsteemi &lt;strong&gt;kõrvale&lt;/strong&gt;</translation>
<translation>Paigalda %1 praeguse operatsioonisüsteemi &lt;strong&gt;kõrvale&lt;/strong&gt;</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="162"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk and install %1.</source>
<translation>&lt;strong&gt;Tühjenda&lt;/strong&gt; ketas ja installi %1.</translation>
<translation>&lt;strong&gt;Tühjenda&lt;/strong&gt; ketas ja paigalda %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="166"/>
@ -1708,12 +1708,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="184"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system on disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</source>
<translation>Installi %1 teise operatsioonisüsteemi &lt;strong&gt;kõrvale&lt;/strong&gt; kettal &lt;strong&gt;%2&lt;/strong&gt; (%3).</translation>
<translation>Paigalda %1 teise operatsioonisüsteemi &lt;strong&gt;kõrvale&lt;/strong&gt; kettal &lt;strong&gt;%2&lt;/strong&gt; (%3).</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="190"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</source>
<translation>&lt;strong&gt;Tühjenda&lt;/strong&gt; ketas &lt;strong&gt;%2&lt;/strong&gt; (%3) ja installi %1.</translation>
<translation>&lt;strong&gt;Tühjenda&lt;/strong&gt; ketas &lt;strong&gt;%2&lt;/strong&gt; (%3) ja paigalda %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="196"/>
@ -1800,7 +1800,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="67"/>
<source>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.</source>
<translation>Palun vali KDE Plasma Desktop&apos;ile välimus-ja-tunnetus. Sa võid selle sammu ka vahele jätta ja seadistada välimust-ja-tunnetust siis, kui süsteem on installitud. Välimuse-ja-tunnetuse valikule klõpsates näed selle reaalajas eelvaadet.</translation>
<translation>Palun vali KDE Plasma töölauale välimus-ja-tunnetus. Sa võid selle sammu ka vahele jätta ja seadistada välimust-ja-tunnetust siis, kui süsteem on paigaldatud. Välimuse-ja-tunnetuse valikule klõpsates näed selle reaalajas eelvaadet.</translation>
</message>
</context>
<context>
@ -1816,17 +1816,17 @@ Installija sulgub ja kõik muutused kaovad.</translation>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="83"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Salvestan faile hiljemaks...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="89"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Ühtegi faili ei konfigureeritud hiljemaks salvestamiseks.</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="145"/>
<source>Not all of the configured files could be preserved.</source>
<translation type="unfinished"/>
<translation>Ühtegi konfigureeritud faili ei suudetud säilitada.</translation>
</message>
</context>
<context>
@ -1947,7 +1947,7 @@ Väljund:
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="134"/>
<source>Select where to install %1.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Warning: &lt;/font&gt;this will delete all files on the selected partition.</source>
<translation>Vali, kuhu soovid %1 installida.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Hoiatus: &lt;/font&gt;see kustutab valitud partitsioonilt kõik failid.</translation>
<translation>Vali, kuhu soovid %1 paigaldada.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Hoiatus: &lt;/font&gt;see kustutab valitud partitsioonilt kõik failid.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="160"/>
@ -1957,17 +1957,17 @@ Väljund:
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="168"/>
<source>%1 cannot be installed on empty space. Please select an existing partition.</source>
<translation>%1 ei saa installida tühjale kohale. Palun vali olemasolev partitsioon.</translation>
<translation>%1 ei saa paigldada tühjale kohale. Palun vali olemasolev partitsioon.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="178"/>
<source>%1 cannot be installed on an extended partition. Please select an existing primary or logical partition.</source>
<translation>%1 ei saa installida laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon.</translation>
<translation>%1 ei saa paigaldada laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="188"/>
<source>%1 cannot be installed on this partition.</source>
<translation>%1 ei saa installida sellele partitsioonidel.</translation>
<translation>%1 ei saa sellele partitsioonile paigaldada.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="194"/>
@ -1999,7 +1999,7 @@ Väljund:
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="278"/>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="302"/>
<source>&lt;strong&gt;%3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;%1 will be installed on %2.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Warning: &lt;/font&gt;all data on partition %2 will be lost.</source>
<translation>&lt;strong&gt;%3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;%1 installitakse partitsioonile %2.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Hoiatus: &lt;/font&gt;kõik andmed partitsioonil %2 kaovad.</translation>
<translation>&lt;strong&gt;%3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;%1 paigaldatakse partitsioonile %2.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Hoiatus: &lt;/font&gt;kõik andmed partitsioonil %2 kaovad.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="270"/>
@ -2062,12 +2062,12 @@ Väljund:
<message>
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="155"/>
<source>The installer is not running with administrator rights.</source>
<translation>Installija ei tööta administraatoriõigustega.</translation>
<translation>Paigaldaja pole käivitatud administraatoriõigustega.</translation>
</message>
<message>
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="163"/>
<source>The screen is too small to display the installer.</source>
<translation>Ekraan on liiga väike installija kuvamiseks.</translation>
<translation>Ekraan on paigaldaja kuvamiseks liiga väike.</translation>
</message>
</context>
<context>
@ -2090,7 +2090,7 @@ Väljund:
<message>
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="85"/>
<source>The installer failed to resize partition %1 on disk &apos;%2&apos;.</source>
<translation>Installijal ebaõnnestus partitsiooni %1 suuruse muutmine kettal &quot;%2&quot;.</translation>
<translation>Paigaldajal ebaõnnestus partitsiooni %1 suuruse muutmine kettal &quot;%2&quot;.</translation>
</message>
</context>
<context>
@ -2246,7 +2246,7 @@ Väljund:
<message>
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="140"/>
<source>The installer failed to set flags on partition %1.</source>
<translation>Installija ei suutnud silte määrata partitsioonile %1.</translation>
<translation>Paigaldaja ei suutnud partitsioonile %1 silte määrata.</translation>
</message>
</context>
<context>
@ -2352,7 +2352,7 @@ Väljund:
<message>
<location filename="../src/modules/summary/SummaryPage.cpp" line="49"/>
<source>This is an overview of what will happen once you start the install procedure.</source>
<translation>See on ülevaade sellest mis juhtub, kui alustad installiprotseduuri.</translation>
<translation>See on ülevaade sellest mis juhtub, kui alustad paigaldusprotseduuri.</translation>
</message>
</context>
<context>
@ -2368,17 +2368,17 @@ Väljund:
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="43"/>
<source>Installation feedback</source>
<translation>Installimise tagasiside</translation>
<translation>Paigalduse tagasiside</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="53"/>
<source>Sending installation feedback.</source>
<translation>Saadan installimise tagasisidet.</translation>
<translation>Saadan paigalduse tagasisidet.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="88"/>
<source>Internal error in install-tracking.</source>
<translation>Installi jälitamisel esines sisemine viga.</translation>
<translation>Paigaldate jälitamisel esines sisemine viga.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="89"/>
@ -2430,7 +2430,7 @@ Väljund:
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="72"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By selecting this, you will send &lt;span style=&quot; font-weight:600;&quot;&gt;no information at all&lt;/span&gt; about your installation.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Seda valides &lt;span style=&quot; font-weight:600;&quot;&gt;ei saada sa üldse&lt;/span&gt; teavet oma installi kohta.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Seda valides &lt;span style=&quot; font-weight:600;&quot;&gt;ei saada sa üldse&lt;/span&gt; teavet oma paigalduse kohta.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="123"/>
@ -2454,22 +2454,22 @@ Väljund:
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="44"/>
<source>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.</source>
<translation>Installijälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 installivad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval.</translation>
<translation>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.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
<source>By selecting this you will send information about your installation and hardware. This information will &lt;b&gt;only be sent once&lt;/b&gt; after the installation finishes.</source>
<translation>Seda valides saadad sa teavet oma installi ja riistvara kohta. See teave &lt;b&gt;saadetakse ainult korra&lt;/b&gt;peale installi lõppu.</translation>
<translation>Seda valides saadad sa teavet oma paigalduse ja riistvara kohta. See teave &lt;b&gt;saadetakse ainult korra&lt;/b&gt;peale paigalduse lõppu.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="46"/>
<source>By selecting this you will &lt;b&gt;periodically&lt;/b&gt; send information about your installation, hardware and applications, to %1.</source>
<translation>Seda valides saadad sa %1-le &lt;b&gt;perioodiliselt&lt;/b&gt; infot oma installi, riistvara ja rakenduste kohta.</translation>
<translation>Seda valides saadad sa %1-le &lt;b&gt;perioodiliselt&lt;/b&gt; infot oma paigalduse, riistvara ja rakenduste kohta.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="47"/>
<source>By selecting this you will &lt;b&gt;regularly&lt;/b&gt; send information about your installation, hardware, applications and usage patterns, to %1.</source>
<translation>Seda valides saadad sa %1-le &lt;b&gt;regulaarselt&lt;/b&gt; infot oma installi, riistvara, rakenduste ja kasutusharjumuste kohta.</translation>
<translation>Seda valides saadad sa %1-le &lt;b&gt;regulaarselt&lt;/b&gt; infot oma paigalduse, riistvara, rakenduste ja kasutusharjumuste kohta.</translation>
</message>
</context>
<context>
@ -2557,17 +2557,17 @@ Väljund:
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
<source>&lt;h1&gt;Welcome to the %1 installer.&lt;/h1&gt;</source>
<translation>&lt;h1&gt;Tere tulemast %1 installijasse.&lt;/h1&gt;</translation>
<translation>&lt;h1&gt;Tere tulemast %1 paigaldajasse.&lt;/h1&gt;</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
<source>&lt;h1&gt;Welcome to the Calamares installer for %1.&lt;/h1&gt;</source>
<translation>&lt;h1&gt;Tere tulemast Calamares&apos;i installijasse %1 jaoks.&lt;/h1&gt;</translation>
<translation>&lt;h1&gt;Tere tulemast Calamares&apos;i paigaldajasse %1 jaoks.&lt;/h1&gt;</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="73"/>
<source>About %1 installer</source>
<translation>Teave %1 installija kohta</translation>
<translation>Teave %1 paigaldaja kohta</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>

View File

@ -485,12 +485,12 @@ L&apos;installateur se fermera et les changements seront perdus.</translation>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
<source>The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined.</source>
<translation type="unfinished"/>
<translation>La commande est exécutée dans l&apos;environnement hôte et a besoin de connaître le chemin racine, mais aucun point de montage racine n&apos;est défini.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>La commande a besoin de connaître le nom de l&apos;utilisateur, mais aucun nom d&apos;utilisateur n&apos;est défini.</translation>
</message>
</context>
<context>
@ -1665,12 +1665,12 @@ L&apos;installateur se fermera et les changements seront perdus.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="193"/>
<source>Can not create new partition</source>
<translation type="unfinished"/>
<translation>Impossible de créer une nouvelle partition</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="194"/>
<source>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.</source>
<translation type="unfinished"/>
<translation>La table de partition sur %1 contient déjà %2 partitions primaires, et aucune supplémentaire ne peut être ajoutée. Veuillez supprimer une partition primaire et créer une partition étendue à la place.</translation>
</message>
</context>
<context>
@ -1817,17 +1817,17 @@ Vous pouvez obtenir un aperçu des différentes apparences en cliquant sur celle
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="83"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Sauvegarde des fichiers en cours pour plus tard...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="89"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Aucun fichier de sélectionné pour sauvegarde ultérieure.</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="145"/>
<source>Not all of the configured files could be preserved.</source>
<translation type="unfinished"/>
<translation>Certains des fichiers configurés n&apos;ont pas pu être préservés.</translation>
</message>
</context>
<context>

View File

@ -487,12 +487,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
<source>The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined.</source>
<translation type="unfinished"/>
<translation>Perintah berjalan di lingkungan host dan perlu diketahui alur root-nya, tetapi bukan rootMountPoint yang ditentukan.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>Perintah perlu diketahui nama si pengguna, tetapi bukan nama pengguna yang ditentukan.</translation>
</message>
</context>
<context>
@ -1667,12 +1667,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="193"/>
<source>Can not create new partition</source>
<translation type="unfinished"/>
<translation>Tidak bisa menciptakan partisi baru.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="194"/>
<source>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.</source>
<translation type="unfinished"/>
<translation>Partisi tabel pada %1 sudah memiliki %2 partisi primer, dan tidak ada lagi yang bisa ditambahkan. Silakan hapus salah satu partisi primer dan tambahkan sebuah partisi extended, sebagai gantinya.</translation>
</message>
</context>
<context>
@ -1818,17 +1818,17 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="83"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Menyimpan file untuk kemudian...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="89"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Tiada file yang dikonfigurasi untuk penyimpanan nanti.</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="145"/>
<source>Not all of the configured files could be preserved.</source>
<translation type="unfinished"/>
<translation>Tidak semua file yang dikonfigurasi dapat dipertahankan.</translation>
</message>
</context>
<context>

View File

@ -4,7 +4,7 @@
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="69"/>
<source>The &lt;strong&gt;boot environment&lt;/strong&gt; of this system.&lt;br&gt;&lt;br&gt;Older x86 systems only support &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;Modern systems usually use &lt;strong&gt;EFI&lt;/strong&gt;, but may also show up as BIOS if started in compatibility mode.</source>
<translation>L&apos;&lt;strong&gt;ambiente di avvio&lt;/strong&gt; di questo sistema. &lt;br&gt;&lt;br&gt;I vecchi sistemi x86 supportano solo &lt;strong&gt;BIOS&lt;/strong&gt;. &lt;bt&gt;I sistemi moderni normalmente usano &lt;strong&gt;EFI&lt;/strong&gt; ma possono anche usare BIOS se l&apos;avvio viene eseguito in modalità compatibile.</translation>
<translation>L&apos;&lt;strong&gt;ambiente di avvio&lt;/strong&gt; di questo sistema. &lt;br&gt;&lt;br&gt;I vecchi sistemi x86 supportano solo &lt;strong&gt;BIOS&lt;/strong&gt;. &lt;bt&gt;I sistemi moderni normalmente usano &lt;strong&gt;EFI&lt;/strong&gt; ma possono anche apparire come sistemi BIOS se avviati in modalità compatibile.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="79"/>
@ -241,7 +241,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="262"/>
<source>The installation is complete. Close the installer.</source>
<translation>L&apos;installazione è terminata. Chiudere l&apos;installer.</translation>
<translation>L&apos;installazione è terminata. Chiudere il programma d&apos;installazione.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="159"/>
@ -485,12 +485,12 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
<source>The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined.</source>
<translation type="unfinished"/>
<translation>Il comando viene eseguito nell&apos;ambiente host e richiede il percorso di root ma nessun rootMountPoint (punto di montaggio di root) è definito.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>Il comando richiede il nome utente, nessun nome utente definito.</translation>
</message>
</context>
<context>
@ -498,7 +498,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/contextualprocess/ContextualProcessJob.cpp" line="117"/>
<source>Contextual Processes Job</source>
<translation>Attività dei processi contestuali</translation>
<translation>Job dei processi contestuali</translation>
</message>
</context>
<context>
@ -536,7 +536,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="151"/>
<source>LVM LV name</source>
<translation>Nome LVM LV</translation>
<translation>Nome LV di LVM</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="188"/>
@ -915,7 +915,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When this box is checked, your system will restart immediately when you click on &lt;span style=&quot; font-style:italic;&quot;&gt;Done&lt;/span&gt; or close the installer.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"/>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Quando questa casella è selezionata, il sistema sarà riavviato immediatamente al click su &lt;span style=&quot; font-style:italic;&quot;&gt;Fatto&lt;/span&gt; o alla chiusura del programma d&apos;installazione.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
@ -943,12 +943,12 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="124"/>
<source>Installation Complete</source>
<translation>Installazione Eseguita</translation>
<translation>Installazione completata</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="125"/>
<source>The installation of %1 is complete.</source>
<translation>L&apos;installazione di %1 è completa.</translation>
<translation>L&apos;installazione di %1 è completata.</translation>
</message>
</context>
<context>
@ -979,12 +979,12 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="53"/>
<source>Konsole not installed</source>
<translation>Konsole non installato</translation>
<translation>Konsole non installata</translation>
</message>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="54"/>
<source>Please install KDE Konsole and try again!</source>
<translation>Si prega di installare KDE Konsole e provare nuovamente!</translation>
<translation>Si prega di installare KDE Konsole e riprovare!</translation>
</message>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="116"/>
@ -1195,7 +1195,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="96"/>
<source>Network Installation. (Disabled: Received invalid groups data)</source>
<translation>Installazione di rete. (Disabilitata: Ricevuti dati non validi sui gruppi)</translation>
<translation>Installazione di rete. (Disabilitata: Ricevuti dati non validi dei gruppi)</translation>
</message>
</context>
<context>
@ -1221,12 +1221,12 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="151"/>
<source>Password is too weak</source>
<translation>La password è troppo debole</translation>
<translation>Password troppo debole</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="158"/>
<source>Memory allocation error when setting &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>Errore di allocazione della memoria quando si imposta &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="162"/>
@ -1236,217 +1236,217 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="164"/>
<source>The password is the same as the old one</source>
<translation>La nuova password coincide con la precedente</translation>
<translation>La password coincide con la precedente</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="166"/>
<source>The password is a palindrome</source>
<translation>La password è palindroma</translation>
<translation>La password è un palindromo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="168"/>
<source>The password differs with case changes only</source>
<translation type="unfinished"/>
<translation>La password differisce solo per lettere minuscole e maiuscole</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="170"/>
<source>The password is too similar to the old one</source>
<translation>La nuova password è troppo simile a quella precedente</translation>
<translation>La password è troppo simile a quella precedente</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="172"/>
<source>The password contains the user name in some form</source>
<translation>La password contiene il nome utente in una qualche forma</translation>
<translation>La password contiene il nome utente in qualche campo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="174"/>
<source>The password contains words from the real name of the user in some form</source>
<translation>La password contiene parte del nome reale dell&apos;utente in qualche forma</translation>
<translation>La password contiene parti del nome utente reale in qualche campo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
<source>The password contains forbidden words in some form</source>
<translation type="unfinished"/>
<translation>La password contiene parole vietate in alcuni campi</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="179"/>
<source>The password contains less than %1 digits</source>
<translation>La password contiene meno di %1 numeri</translation>
<translation>La password contiene meno di %1 cifre</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
<source>The password contains too few digits</source>
<translation>La password contiene troppo pochi numeri</translation>
<translation>La password contiene poche cifre</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="183"/>
<source>The password contains less than %1 uppercase letters</source>
<translation type="unfinished"/>
<translation>La password contiene meno di %1 lettere maiuscole</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
<source>The password contains too few uppercase letters</source>
<translation type="unfinished"/>
<translation>La password contiene poche lettere maiuscole</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="187"/>
<source>The password contains less than %1 lowercase letters</source>
<translation type="unfinished"/>
<translation>La password contiene meno di %1 lettere minuscole</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
<source>The password contains too few lowercase letters</source>
<translation type="unfinished"/>
<translation>La password contiene poche lettere minuscole</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="191"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>La password contiene meno di %1 caratteri non alfanumerici</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
<source>The password contains too few non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>La password contiene pochi caratteri non alfanumerici</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="195"/>
<source>The password is shorter than %1 characters</source>
<translation type="unfinished"/>
<translation>La password ha meno di %1 caratteri</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password is too short</source>
<translation type="unfinished"/>
<translation>La password è troppo corta</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="198"/>
<source>The password is just rotated old one</source>
<translation type="unfinished"/>
<translation>La password è solo una rotazione della precedente</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="201"/>
<source>The password contains less than %1 character classes</source>
<translation type="unfinished"/>
<translation>La password contiene meno di %1 classi di caratteri</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
<source>The password does not contain enough character classes</source>
<translation type="unfinished"/>
<translation>La password non contiene classi di caratteri sufficienti</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation type="unfinished"/>
<translation>La password contiene più di %1 caratteri uguali consecutivi</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
<source>The password contains too many same characters consecutively</source>
<translation type="unfinished"/>
<translation>La password contiene troppi caratteri uguali consecutivi</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>La password contiene più di %1 caratteri consecutivi della stessa classe</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>La password contiene molti caratteri consecutivi della stessa classe</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation>La password contiene una sequenza monotona più lunga di %1 caratteri</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation>La password contiene una sequenza di caratteri monotona troppo lunga</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="216"/>
<source>No password supplied</source>
<translation type="unfinished"/>
<translation>Nessuna password fornita</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
<source>Cannot obtain random numbers from the RNG device</source>
<translation type="unfinished"/>
<translation>Impossibile ottenere numeri casuali dal dispositivo RNG</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
<source>Password generation failed - required entropy too low for settings</source>
<translation type="unfinished"/>
<translation>Generazione della password fallita - entropia richiesta troppo bassa per le impostazioni</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="225"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation>La password non supera il controllo del dizionario - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="227"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation>La password non supera il controllo del dizionario</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>Unknown setting - %1</source>
<translation type="unfinished"/>
<translation>Impostazioni sconosciute - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
<source>Unknown setting</source>
<translation type="unfinished"/>
<translation>Impostazione sconosciuta</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Valore intero non valido per l&apos;impostazione - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value</source>
<translation type="unfinished"/>
<translation>Valore intero non valido</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>Setting %1 is not of integer type</source>
<translation type="unfinished"/>
<translation>Impostazione %1 non è di tipo intero</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="251"/>
<source>Setting is not of integer type</source>
<translation type="unfinished"/>
<translation>Impostazione non è di tipo intero</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="255"/>
<source>Setting %1 is not of string type</source>
<translation type="unfinished"/>
<translation>Impostazione %1 non è di tipo stringa</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="259"/>
<source>Setting is not of string type</source>
<translation type="unfinished"/>
<translation>Impostazione non è di tipo stringa</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="261"/>
<source>Opening the configuration file failed</source>
<translation type="unfinished"/>
<translation>Apertura del file di configurazione fallita</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
<source>The configuration file is malformed</source>
<translation type="unfinished"/>
<translation>Il file di configurazione non è corretto</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
<source>Fatal failure</source>
<translation type="unfinished"/>
<translation>Errore fatale</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
<source>Unknown error</source>
<translation type="unfinished"/>
<translation>Errore sconosciuto</translation>
</message>
</context>
<context>
@ -1665,12 +1665,12 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="193"/>
<source>Can not create new partition</source>
<translation type="unfinished"/>
<translation>Impossibile creare nuova partizione</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="194"/>
<source>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.</source>
<translation type="unfinished"/>
<translation>La tabella delle partizioni su %1 contiene già %2 partizioni primarie, non se ne possono aggiungere altre. Rimuovere una partizione primaria e aggiungere una partizione estesa invece.</translation>
</message>
</context>
<context>
@ -1776,13 +1776,13 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="41"/>
<source>Plasma Look-and-Feel Job</source>
<translation>Attività del tema di Plasma</translation>
<translation>Job di Plasma Look-and-Feel</translation>
</message>
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="73"/>
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="74"/>
<source>Could not select KDE Plasma Look-and-Feel package</source>
<translation>Impossibile selezionare il pacchetto del tema di KDE Plasma</translation>
<translation>Impossibile selezionare il pacchetto di KDE Plasma Look-and-Feel</translation>
</message>
</context>
<context>
@ -1800,7 +1800,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="67"/>
<source>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.</source>
<translation type="unfinished"/>
<translation>Scegliere il tema per il desktop KDE Plasma. Si può anche saltare questa scelta e configurare il tema dopo aver installato il sistema. Cliccando su selezione del tema, ne sarà mostrata un&apos;anteprima dal vivo. </translation>
</message>
</context>
<context>
@ -1808,7 +1808,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfViewStep.cpp" line="68"/>
<source>Look-and-Feel</source>
<translation>Tema</translation>
<translation>Look-and-Feel</translation>
</message>
</context>
<context>
@ -1816,17 +1816,17 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="83"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Salvataggio dei file per dopo ...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="89"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Nessun file configurato per dopo.</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="145"/>
<source>Not all of the configured files could be preserved.</source>
<translation type="unfinished"/>
<translation>Non tutti i file configurati possono essere preservati.</translation>
</message>
</context>
<context>
@ -1835,7 +1835,7 @@ Il programma d&apos;installazione sarà terminato e tutte le modifiche andranno
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="271"/>
<source>
There was no output from the command.</source>
<translation type="unfinished"/>
<translation>Non c&apos;era output dal comando.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="272"/>
@ -1864,7 +1864,8 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="282"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; failed to start.</source>
<translation>Il comando %1 non si è avviato.</translation>
<translation>Il comando %1 non si è avviato.
</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="286"/>
@ -1874,7 +1875,7 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="287"/>
<source>Bad parameters for process job call.</source>
<translation>Parametri errati per elaborare l&apos;attività richiesta</translation>
<translation>Parametri errati per elaborare la chiamata al job.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="290"/>
@ -2334,7 +2335,7 @@ Output:
<message>
<location filename="../src/modules/shellprocess/ShellProcessJob.cpp" line="51"/>
<source>Shell Processes Job</source>
<translation type="unfinished"/>
<translation>Job dei processi della shell</translation>
</message>
</context>
<context>
@ -2343,7 +2344,7 @@ Output:
<location filename="../src/qml/calamares/slideshow/SlideCounter.qml" line="36"/>
<source>%L1 / %L2</source>
<extracomment>slide counter, %1 of %2 (numeric)</extracomment>
<translation type="unfinished"/>
<translation>%L1 / %L2</translation>
</message>
</context>
<context>
@ -2372,7 +2373,7 @@ Output:
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="53"/>
<source>Sending installation feedback.</source>
<translation>Invio in corso della valutazione dell&apos;installazione</translation>
<translation>Invio della valutazione dell&apos;installazione.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="88"/>
@ -2382,7 +2383,7 @@ Output:
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="89"/>
<source>HTTP request timed out.</source>
<translation>La richiesta HTTP ha raggiunto il timeout.</translation>
<translation>La richiesta HTTP è scaduta.</translation>
</message>
</context>
<context>
@ -2406,12 +2407,12 @@ Output:
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="134"/>
<source>Could not configure machine feedback correctly, script error %1.</source>
<translation>Non è stato possibile configurare correttamente la valutazione automatica, errore script %1.</translation>
<translation>Non è stato possibile configurare correttamente la valutazione automatica, errore dello script %1.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="137"/>
<source>Could not configure machine feedback correctly, Calamares error %1.</source>
<translation>Non è stato possibile configurare correttamente la valutazione automatica, errore Calamares %1.</translation>
<translation>Non è stato possibile configurare correttamente la valutazione automatica, errore di Calamares %1.</translation>
</message>
</context>
<context>
@ -2429,7 +2430,7 @@ Output:
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="72"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By selecting this, you will send &lt;span style=&quot; font-weight:600;&quot;&gt;no information at all&lt;/span&gt; about your installation.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selezionando questo, non verrà inviata &lt;span style=&quot; font-weight:600;&quot;&gt;alcuna informazione&lt;/span&gt; riguardo la propria installazione.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selezionando questo, non verrà inviata &lt;span style=&quot; font-weight:600;&quot;&gt;alcuna informazione&lt;/span&gt; relativa alla propria installazione.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="123"/>
@ -2448,27 +2449,27 @@ Output:
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="271"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;placeholder&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#2980b9;&quot;&gt;Click here for more information about user feedback&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;placeholder&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#2980b9;&quot;&gt;Cliccare qui per maggiori informazioni riguardo la valutazione degli utenti&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;placeholder&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#2980b9;&quot;&gt;Cliccare qui per maggiori informazioni sulla valutazione degli utenti&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="44"/>
<source>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.</source>
<translation>Il tracciamento dell&apos;installazione aiuta %1 a capire quanti utenti vengono serviti, su quale hardware installano %1 e (con le ultime due opzioni qui sotto), a ricevere continue informazioni riguardo le applicazioni preferite. Per vedere cosa verrà inviato, si prega di cliccare sull&apos;icona di aiuto vicino ad ogni area.</translation>
<translation>Il tracciamento dell&apos;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&apos;icona di aiuto accanto ad ogni area.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
<source>By selecting this you will send information about your installation and hardware. This information will &lt;b&gt;only be sent once&lt;/b&gt; after the installation finishes.</source>
<translation>Selezionando questa opzione verranno inviate informazioni riguardo l&apos;installazione e l&apos;hardware. Queste informazioni verranno &lt;b&gt;inviate solo una volta&lt;/b&gt; dopo che l&apos;installazione è terminata.</translation>
<translation>Selezionando questa opzione saranno inviate informazioni relative all&apos;installazione e all&apos;hardware. I dati saranno &lt;b&gt;inviati solo una volta&lt;/b&gt; al termine dell&apos;installazione.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="46"/>
<source>By selecting this you will &lt;b&gt;periodically&lt;/b&gt; send information about your installation, hardware and applications, to %1.</source>
<translation>Selezionando questa opzione verranno inviate &lt;b&gt;periodicamente&lt;/b&gt; informazioni riguardo l&apos;installazione, l&apos;hardware e le applicazioni, a %1.</translation>
<translation>Selezionando questa opzione saranno inviate &lt;b&gt;periodicamente&lt;/b&gt; informazioni sull&apos;installazione, l&apos;hardware e le applicazioni, a %1.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="47"/>
<source>By selecting this you will &lt;b&gt;regularly&lt;/b&gt; send information about your installation, hardware, applications and usage patterns, to %1.</source>
<translation>Selezionando questa opzione verranno inviate &lt;b&gt;regolarmente&lt;/b&gt; informazioni riguardo l&apos;installazione, l&apos;hardware, le applicazioni e il modo di utilizzo, a %1.</translation>
<translation>Selezionando questa opzione verranno inviate &lt;b&gt;regolarmente&lt;/b&gt; informazioni sull&apos;installazione, l&apos;hardware, le applicazioni e i modi di utilizzo, a %1.</translation>
</message>
</context>
<context>
@ -2571,7 +2572,7 @@ Output:
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>
<source>&lt;h1&gt;%1&lt;/h1&gt;&lt;br/&gt;&lt;strong&gt;%2&lt;br/&gt;for %3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Copyright 2014-2017 Teo Mrnjavac &amp;lt;teo@kde.org&amp;gt;&lt;br/&gt;Copyright 2017 Adriaan de Groot &amp;lt;groot@kde.org&amp;gt;&lt;br/&gt;Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the &lt;a href=&quot;https://www.transifex.com/calamares/calamares/&quot;&gt;Calamares translators team&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;https://calamares.io/&quot;&gt;Calamares&lt;/a&gt; development is sponsored by &lt;br/&gt;&lt;a href=&quot;http://www.blue-systems.com/&quot;&gt;Blue Systems&lt;/a&gt; - Liberating Software.</source>
<translation type="unfinished"/>
<translation>&lt;h1&gt;%1&lt;/h1&gt;&lt;br/&gt;&lt;strong&gt;%2&lt;br/&gt;for %3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Copyright 2014-2017 Teo Mrnjavac &amp;lt;teo@kde.org&amp;gt;&lt;br/&gt;Copyright 2017 Adriaan de Groot &amp;lt;groot@kde.org&amp;gt;&lt;br/&gt;Grazie a: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg e al &lt;a href=&quot;https://www.transifex.com/calamares/calamares/&quot;&gt;team dei traduttori di Calamares&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Lo sviluppo di&lt;a href=&quot;https://calamares.io/&quot;&gt;Calamares&lt;/a&gt; è sponsorizzato da &lt;br/&gt;&lt;a href=&quot;http://www.blue-systems.com/&quot;&gt;Blue Systems&lt;/a&gt; - Liberating Software.</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="290"/>

2587
lang/calamares_ko.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@ -490,7 +490,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>Polecenie musi znać nazwę użytkownika, ale żadna nazwa nie została jeszcze zdefiniowana.</translation>
</message>
</context>
<context>
@ -1816,17 +1816,17 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="83"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Zapisywanie plików na później ...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="89"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Nie skonfigurowano żadnych plików do zapisania na później.</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="145"/>
<source>Not all of the configured files could be preserved.</source>
<translation type="unfinished"/>
<translation>Nie wszystkie pliki konfiguracyjne mogą być zachowane.</translation>
</message>
</context>
<context>

View File

@ -10,6 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: guillermo pacheco <guillopacheco@gmail.com>, 2018\n"
"Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,39 +20,39 @@ msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
msgstr "Desmontar sistemas de archivo."
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr ""
msgstr "Trabajo python ficticio."
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr ""
msgstr "Paso python ficticio {}"
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr ""
msgstr "Generar identificación de la maquina."
#: src/modules/packages/main.py:61
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr ""
msgstr "Procesando paquetes (%(count)d/%(total)d)"
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
msgid "Install packages."
msgstr ""
msgstr "Instalar paquetes."
#: src/modules/packages/main.py:66
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Instalando un paquete."
msgstr[1] "Instalando%(num)d paquetes."
#: src/modules/packages/main.py:69
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Removiendo un paquete."
msgstr[1] "Removiendo %(num)dpaquetes."

Binary file not shown.

View File

@ -41,18 +41,18 @@ msgstr "Pakkide töötlemine (%(count)d / %(total)d)"
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
msgid "Install packages."
msgstr "Installi pakid."
msgstr "Paigalda paketid."
#: src/modules/packages/main.py:66
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] "Installin ühe paki."
msgstr[1] "Installin %(num)d pakki."
msgstr[0] "Paigaldan ühe paketi."
msgstr[1] "Paigaldan %(num)d paketti."
#: src/modules/packages/main.py:69
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] "Eemaldan ühe paki."
msgstr[1] "Eemaldan %(num)d pakki."
msgstr[0] "Eemaldan ühe paketi."
msgstr[1] "Eemaldan %(num)d paketti."

View File

@ -10,7 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Mark <marco_pace@msn.com>, 2018\n"
"Last-Translator: Pietro Francesco Fontana, 2017\n"
"Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -20,15 +20,15 @@ msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr "Smontaggio del file system"
msgstr "Smonta i file system."
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr "Dummy python job."
msgstr "Job python fittizio."
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr "Dummy python step {}"
msgstr "Python step {} fittizio"
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
@ -37,7 +37,7 @@ msgstr "Genera machine-id."
#: src/modules/packages/main.py:61
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr "Elaborando i pacchetti (%(count)d / %(total)d)"
msgstr "Elaborazione dei pacchetti (%(count)d / %(total)d)"
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
msgid "Install packages."
@ -48,11 +48,11 @@ msgstr "Installa pacchetti."
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] "Installando un pacchetto."
msgstr[1] "Installando %(num)d pacchetti."
msgstr[1] "Installazione di %(num)d pacchetti."
#: src/modules/packages/main.py:69
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] "Rimuovendo un pacchetto."
msgstr[1] "Rimuovendo %(num)d pacchetti."
msgstr[1] "Rimozione di %(num)d pacchetti."

Binary file not shown.

View File

@ -0,0 +1,55 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr ""
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr ""
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr ""
#: src/modules/packages/main.py:61
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr ""
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
msgid "Install packages."
msgstr ""
#: src/modules/packages/main.py:66
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] ""
#: src/modules/packages/main.py:69
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] ""

View File

@ -335,6 +335,8 @@ CalamaresApplication::initView()
connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded,
this, &CalamaresApplication::initViewSteps );
connect( m_moduleManager, &Calamares::ModuleManager::modulesFailed,
this, &CalamaresApplication::initFailed );
m_moduleManager->loadModules();
@ -356,6 +358,12 @@ CalamaresApplication::initViewSteps()
cDebug() << "STARTUP: Window now visible and ProgressTreeView populated";
}
void
CalamaresApplication::initFailed(const QStringList& l)
{
cError() << "STARTUP: failed modules are" << l;
m_mainwindow->show();
}
void
CalamaresApplication::initJobQueue()

View File

@ -70,6 +70,7 @@ public:
private slots:
void initView();
void initViewSteps();
void initFailed( const QStringList& l );
private:
void initQmlPath();

View File

@ -40,6 +40,7 @@ mark_thirdparty_code( ${kdsagSources} )
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${YAMLCPP_INCLUDE_DIR}
)
if( WITH_PYTHON )

View File

@ -30,6 +30,32 @@
#include <yaml-cpp/yaml.h>
/** Helper function to grab a QString out of the config, and to warn if not present. */
static QString
requireString( const YAML::Node& config, const char* key )
{
if ( config[ key ] )
return QString::fromStdString( config[ key ].as< std::string >() );
else
{
cWarning() << "Required settings.conf key" << key << "is missing.";
return QString();
}
}
/** Helper function to grab a bool out of the config, and to warn if not present. */
static bool
requireBool( const YAML::Node& config, const char* key, bool d )
{
if ( config[ key ] )
return config[ key ].as< bool >();
else
{
cWarning() << "Required settings.conf key" << key << "is missing.";
return d;
}
}
namespace Calamares
{
@ -41,7 +67,6 @@ Settings::instance()
return s_instance;
}
Settings::Settings( const QString& settingsFilePath,
bool debugMode,
QObject* parent )
@ -148,11 +173,9 @@ Settings::Settings( const QString& settingsFilePath,
}
}
m_brandingComponentName = QString::fromStdString( config[ "branding" ]
.as< std::string >() );
m_promptInstall = config[ "prompt-install" ].as< bool >();
m_doChroot = config[ "dont-chroot" ] ? !config[ "dont-chroot" ].as< bool >() : true;
m_brandingComponentName = requireString( config, "branding" );
m_promptInstall = requireBool( config, "prompt-install", false );
m_doChroot = requireBool( config, "dont-chroot", true );
}
catch ( YAML::Exception& e )
{
@ -175,7 +198,7 @@ Settings::modulesSearchPaths() const
}
QList<QMap<QString, QString> >
Settings::InstanceDescriptionList
Settings::customModuleInstances() const
{
return m_customModuleInstances;

View File

@ -43,7 +43,9 @@ public:
QStringList modulesSearchPaths() const;
QList< QMap< QString, QString > > customModuleInstances() const;
using InstanceDescription = QMap< QString, QString >;
using InstanceDescriptionList = QList< InstanceDescription >;
InstanceDescriptionList customModuleInstances() const;
QList< QPair< ModuleAction, QStringList > > modulesSequence() const;
@ -60,7 +62,7 @@ private:
QStringList m_modulesSearchPaths;
QList< QMap< QString, QString > > m_customModuleInstances;
InstanceDescriptionList m_customModuleInstances;
QList< QPair< ModuleAction, QStringList > > m_modulesSequence;
QString m_brandingComponentName;

View File

@ -15,6 +15,7 @@ set( calamaresui_SOURCES
utils/qjsonitem.cpp
viewpages/AbstractPage.cpp
viewpages/BlankViewStep.cpp
viewpages/ViewStep.cpp
widgets/ClickableLabel.cpp

View File

@ -20,6 +20,7 @@
#include "ViewManager.h"
#include "utils/Logger.h"
#include "viewpages/BlankViewStep.h"
#include "viewpages/ViewStep.h"
#include "ExecutionViewStep.h"
#include "JobQueue.h"
@ -172,6 +173,27 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail
}
void
ViewManager::onInitFailed( const QStringList& modules)
{
QString title( tr( "Calamares Initialization Failed" ) );
QString description( tr( "%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution." ) );
QString detailString;
if ( modules.count() > 0 )
{
description.append( tr( "<br/>The following modules could not be loaded:" ) );
QStringList details;
details << QLatin1Literal("<ul>");
for( const auto& m : modules )
details << QLatin1Literal("<li>") << m << QLatin1Literal("</li>");
details << QLatin1Literal("</ul>");
detailString = details.join( QString() );
}
insertViewStep( 0, new BlankViewStep( title, description.arg( *Calamares::Branding::ShortProductName ), detailString ) );
}
ViewStepList
ViewManager::viewSteps() const
{

View File

@ -117,6 +117,12 @@ public slots:
*/
void onInstallationFailed( const QString& message, const QString& details );
/** @brief Replaces the stack with a view step stating that initialization failed.
*
* @param modules a list of failed modules.
*/
void onInitFailed( const QStringList& modules );
signals:
void currentStepChanged();
void enlarge( QSize enlarge ) const; // See ViewStep::enlarge()

View File

@ -154,12 +154,33 @@ ModuleManager::moduleInstance( const QString& instanceKey )
}
/**
* @brief Search a list of instance descriptions for one matching @p module and @p id
*
* @return -1 on failure, otherwise index of the instance that matches.
*/
static int findCustomInstance( const Settings::InstanceDescriptionList& customInstances,
const QString& module,
const QString& id )
{
for ( int i = 0; i < customInstances.count(); ++i )
{
const auto& thisInstance = customInstances[ i ];
if ( thisInstance.value( "module" ) == module &&
thisInstance.value( "id" ) == id )
return i;
}
return -1;
}
void
ModuleManager::loadModules()
{
QTimer::singleShot( 0, this, [ this ]()
{
QList< QMap< QString, QString > > customInstances =
QStringList failedModules;
Settings::InstanceDescriptionList customInstances =
Settings::instance()->customModuleInstances();
const auto modulesSequence = Settings::instance()->modulesSequence();
@ -177,10 +198,9 @@ ModuleManager::loadModules()
if ( moduleEntrySplit.length() < 1 ||
moduleEntrySplit.length() > 2 )
{
cError() << "Wrong module entry format for module" << moduleEntry << '.';
cError() << "Calamares will now quit.";
qApp->exit( 1 );
return;
cError() << "Wrong module entry format for module" << moduleEntry;
failedModules.append( moduleEntry );
continue;
}
moduleName = moduleEntrySplit.first();
instanceId = moduleEntrySplit.last();
@ -191,37 +211,21 @@ ModuleManager::loadModules()
{
cError() << "Module" << moduleName << "not found in module search paths."
<< Logger::DebugList( m_paths );
cError() << "Calamares will now quit.";
qApp->exit( 1 );
return;
failedModules.append( moduleName );
continue;
}
auto findCustomInstance =
[ customInstances ]( const QString& module,
const QString& id) -> int
{
for ( int i = 0; i < customInstances.count(); ++i )
{
auto thisInstance = customInstances[ i ];
if ( thisInstance.value( "module" ) == module &&
thisInstance.value( "id" ) == id )
return i;
}
return -1;
};
if ( moduleName != instanceId ) //means this is a custom instance
{
if ( findCustomInstance( moduleName, instanceId ) > -1 )
if ( int found = findCustomInstance( customInstances, moduleName, instanceId ) > -1 )
{
configFileName = customInstances[ findCustomInstance( moduleName, instanceId ) ].value( "config" );
configFileName = customInstances[ found ].value( "config" );
}
else //ought to be a custom instance, but cannot find instance entry
{
cError() << "Custom instance" << moduleEntry << "not found in custom instances section.";
cError() << "Calamares will now quit.";
qApp->exit( 1 );
return;
failedModules.append( moduleEntry );
continue;
}
}
@ -241,10 +245,9 @@ ModuleManager::loadModules()
m_loadedModulesByInstanceKey.value( instanceKey, nullptr );
if ( thisModule && !thisModule->isLoaded() )
{
cError() << "Module" << instanceKey << "exists but not loaded."
<< "\nCalamares will now quit.";
qApp->exit( 1 );
return;
cError() << "Module" << instanceKey << "exists but not loaded.";
failedModules.append( instanceKey );
continue;
}
if ( thisModule && thisModule->isLoaded() )
@ -260,8 +263,8 @@ ModuleManager::loadModules()
m_moduleDirectoriesByModuleName.value( moduleName ) );
if ( !thisModule )
{
cWarning() << "Module" << instanceKey << "cannot be created from descriptor.";
Q_ASSERT( thisModule );
cError() << "Module" << instanceKey << "cannot be created from descriptor" << configFileName;
failedModules.append( instanceKey );
continue;
}
// If it's a ViewModule, it also appends the ViewStep to the ViewManager.
@ -269,8 +272,8 @@ ModuleManager::loadModules()
m_loadedModulesByInstanceKey.insert( instanceKey, thisModule );
if ( !thisModule->isLoaded() )
{
cWarning() << "Module" << moduleName << "loading FAILED";
Q_ASSERT( thisModule->isLoaded() );
cError() << "Module" << instanceKey << "loading FAILED.";
failedModules.append( instanceKey );
continue;
}
}
@ -292,7 +295,13 @@ ModuleManager::loadModules()
}
}
}
emit modulesLoaded();
if ( !failedModules.isEmpty() )
{
ViewManager::instance()->onInitFailed( failedModules );
emit modulesFailed( failedModules );
}
else
emit modulesLoaded();
} );
}

View File

@ -82,7 +82,8 @@ public:
signals:
void initDone();
void modulesLoaded();
void modulesLoaded(); /// All of the modules were loaded successfully
void modulesFailed( QStringList ); /// .. or not
private slots:
void doInit();

View File

@ -95,6 +95,9 @@ PythonQtViewModule::loadSelf()
s_utils = new ::Utils( Calamares::JobQueue::instance()->globalStorage() );
cala.addObject( "utils", s_utils );
// Append configuration object, in module PythonQt.calamares
cala.addVariable("configuration", m_configurationMap);
// Basic stdout/stderr handling
QObject::connect( PythonQt::self(), &PythonQt::pythonStdOut,
[]( const QString& message )

View File

@ -52,27 +52,32 @@ ViewModule::loadSelf()
PluginFactory* pf = qobject_cast< PluginFactory* >( m_loader->instance() );
if ( !pf )
{
cDebug() << Q_FUNC_INFO << "No factory:" << m_loader->errorString();
cWarning() << Q_FUNC_INFO << "No factory:" << m_loader->errorString();
return;
}
m_viewStep = pf->create< Calamares::ViewStep >();
if ( !m_viewStep )
{
cDebug() << Q_FUNC_INFO << "create() failed" << m_loader->errorString();
cWarning() << Q_FUNC_INFO << "create() failed" << m_loader->errorString();
return;
}
// cDebug() << "ViewModule loading self for instance" << instanceKey()
// << "\nViewModule at address" << this
// << "\nCalamares::PluginFactory at address" << pf
// << "\nViewStep at address" << m_viewStep;
}
// TODO: allow internal view steps to be created here; they would
// have to be linked into the main application somehow.
// If any method created the view step, use it now.
if ( m_viewStep )
{
m_viewStep->setModuleInstanceKey( instanceKey() );
m_viewStep->setConfigurationMap( m_configurationMap );
ViewManager::instance()->addViewStep( m_viewStep );
m_loaded = true;
cDebug() << "ViewModule" << instanceKey() << "loading complete.";
}
else
cWarning() << Q_FUNC_INFO << "No view step was created";
}

View File

@ -226,10 +226,20 @@ defaultFont()
}
QFont
largeFont()
{
QFont f;
f.setPointSize( defaultFontSize() + 4 );
return f;
}
void
setDefaultFontSize( int points )
{
s_defaultFontSize = points;
s_defaultFontHeight = 0; // Recalculate on next call to defaultFontHeight()
}

View File

@ -115,6 +115,7 @@ UIDLLEXPORT void setDefaultFontSize( int points );
UIDLLEXPORT int defaultFontSize(); // in points
UIDLLEXPORT int defaultFontHeight(); // in pixels, DPI-specific
UIDLLEXPORT QFont defaultFont();
UIDLLEXPORT QFont largeFont();
UIDLLEXPORT QSize defaultIconSize();
/**

View File

@ -0,0 +1,118 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2018, Adriaan de Groot <groot@kde.org>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#include "BlankViewStep.h"
#include "utils/CalamaresUtilsGui.h"
#include <QLabel>
#include <QVBoxLayout>
#include <QWidget>
namespace Calamares
{
BlankViewStep::BlankViewStep( const QString& title, const QString& description, const QString& details, QObject* parent)
: Calamares::ViewStep( parent )
, m_widget( new QWidget() )
{
QBoxLayout* layout = new QVBoxLayout();
constexpr int const marginWidth = 10;
constexpr int const spacingHeight = 10;
auto* label = new QLabel( title );
label->setAlignment( Qt::AlignHCenter );
label->setFont( CalamaresUtils::largeFont() );
layout->addWidget( label );
label = new QLabel( description );
label->setWordWrap( true );
label->setMargin( marginWidth );
layout->addSpacing( spacingHeight );
layout->addWidget( label );
if ( !details.isEmpty() )
{
label = new QLabel( details );
label->setMargin( marginWidth );
layout->addSpacing( spacingHeight );
layout->addWidget( label );
}
layout->addStretch( 1 ); // Push the rest to the top
m_widget->setLayout( layout );
}
BlankViewStep::~BlankViewStep()
{
}
QString
BlankViewStep::prettyName() const
{
return tr( "Blank Page" );
}
void
BlankViewStep::back()
{
}
void
BlankViewStep::next()
{
}
bool
BlankViewStep::isBackEnabled() const
{
return false;
}
bool
BlankViewStep::isNextEnabled() const
{
return false;
}
bool
BlankViewStep::isAtBeginning() const
{
return true;
}
bool
BlankViewStep::isAtEnd() const
{
return false;
}
QWidget*
BlankViewStep::widget()
{
return m_widget;
}
Calamares::JobList
BlankViewStep::jobs() const
{
return JobList();
}
} // namespace

View File

@ -0,0 +1,65 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2018, Adriaan de Groot <groot@kde.org>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef BLANKVIEWSTEP_H
#define BLANKVIEWSTEP_H
#include <QObject>
#include <utils/PluginFactory.h>
#include <viewpages/ViewStep.h>
class QWidget;
namespace Calamares
{
/** @brief A "blank" view step, used for error and status reporting
*
* This view step never allows navigation (forward or back); it's a trap.
* It displays a title and explanation, and optional details.
*/
class BlankViewStep : public Calamares::ViewStep
{
Q_OBJECT
public:
explicit BlankViewStep( const QString& title, const QString& description, const QString& details = QString(), QObject* parent = nullptr );
virtual ~BlankViewStep() override;
QString prettyName() const override;
QWidget* widget() override;
void next() override;
void back() override;
bool isNextEnabled() const override;
bool isBackEnabled() const override;
bool isAtBeginning() const override;
bool isAtEnd() const override;
Calamares::JobList jobs() const override;
private:
QWidget* m_widget;
};
} // namespace
#endif // BLANKVIEWSTEP_H

View File

@ -6,7 +6,7 @@ set( LIST_SKIPPED_MODULES "" )
if( BUILD_TESTING )
add_executable( test_conf test_conf.cpp )
target_link_libraries( test_conf ${YAMLCPP_LIBRARY} )
target_link_libraries( test_conf ${YAMLCPP_LIBRARY} Qt5::Core )
target_include_directories( test_conf PUBLIC ${YAMLCPP_INCLUDE_DIR} )
endif()

View File

@ -66,7 +66,7 @@ struct ContextualProcessBinding
void append( const QString& value, CalamaresUtils::CommandList* commands )
{
checks.append( ValueCheck( value, commands ) );
if ( value == '*' )
if ( value == QString( "*" ) )
wildcard = commands;
}

View File

@ -17,7 +17,10 @@
#
# As a special case, the value-check "*" matches any value, but **only**
# if no other value-check matches. Use it as an *else* form for value-
# checks. Take care to put the asterisk in quotes.
# checks. Take care to put the asterisk in quotes. The value-check "*"
# **also** matches a literal asterisk as value; a confusing corner case
# is checking for an asterisk **and** having a wildcard match with
# different commands. This is currently not possible.
#
# Global configuration variables are not checked in a deterministic
# order, so do not rely on commands from one variable-check to

View File

@ -8,8 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-04 08:16-0400\n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: guillermo pacheco <guillopacheco@gmail.com>, 2018\n"
"Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,24 +20,24 @@ msgstr ""
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr ""
msgstr "¡Haz clic en mí!"
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr ""
msgstr "Una nueva QLabel."
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr ""
msgstr "Vision del PythonQt ficticio"
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr ""
msgstr "Trabajo del PythonQt ficticio"
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr ""
msgstr "Este es el Trabajo PythonQt ficticio. El trabajo ficticio dice: {}"
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr ""
msgstr "Un mensaje de estado para el trabajo PythonQt ficticio."

View File

@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-21 16:44+0100\n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Marco Z. <minaz666@gmail.com>, 2017\n"
"Last-Translator: Saverio <saverio.brancaccio@gmail.com>, 2016\n"
"Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -28,7 +28,7 @@ msgstr "Una nuova QLabel."
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr "PythonQt ViewStep Fittizio"
msgstr "PythonQt ViewStep fittizio"
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"

View File

@ -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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr ""
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr ""
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr ""
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr ""
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr ""
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr ""

View File

@ -44,16 +44,21 @@ def modify_grub_default(partitions, root_mount_point, distributor):
dracut_bin = libcalamares.utils.target_env_call(
["sh", "-c", "which dracut"]
)
have_dracut = dracut_bin == 0 # Shell exit value 0 means success
plymouth_bin = libcalamares.utils.target_env_call(
["sh", "-c", "which plymouth"]
)
# Shell exit value 0 means success
have_plymouth = plymouth_bin == 0
have_dracut = dracut_bin == 0
use_splash = ""
swap_uuid = ""
swap_outer_uuid = ""
swap_outer_mappername = None
if libcalamares.globalstorage.contains("hasPlymouth"):
if libcalamares.globalstorage.value("hasPlymouth"):
use_splash = "splash"
if have_plymouth:
use_splash = "splash"
cryptdevice_params = []

View File

@ -46,7 +46,7 @@ def run():
libcalamares.utils.debug("Hwclock returned error code {}".format(ret))
libcalamares.utils.debug(" .. ISA bus method failed.")
else:
libcalamares.utils.debug("Hwclock set using ISA bus methode.")
libcalamares.utils.debug("Hwclock set using ISA bus method.")
if is_broken_rtc and is_broken_isa:
libcalamares.utils.debug("BIOS or Kernel BUG: Setting hwclock failed.")

View File

@ -4,6 +4,12 @@ if( ECM_FOUND AND BUILD_TESTING )
find_package( Qt5 COMPONENTS Core Test REQUIRED )
endif()
# When debugging the timezone widget, add this debugging definition
# to have a debugging-friendly timezone widget, debug logging,
# and no intrusive timezone-setting while clicking around.
#
# add_definitions( -DDEBUG_TIMEZONES )
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
set( geoip_src GeoIP.cpp GeoIPJSON.cpp )

View File

@ -23,6 +23,10 @@
#include "GeoIPXML.h"
#endif
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QtTest/QtTest>
QTEST_GUILESS_MAIN( GeoIPTests )

View File

@ -494,13 +494,15 @@ LocalePage::updateGlobalStorage()
Calamares::JobQueue::instance()->globalStorage()->insert( "locale", bcp47 );
// If we're in chroot mode (normal install mode), then we immediately set the
// timezone on the live system.
// timezone on the live system. When debugging timezones, don't bother.
#ifndef DEBUG_TIMEZONES
if ( Calamares::Settings::instance()->doChroot() )
{
QProcess ::execute( "timedatectl", // depends on systemd
{ "set-timezone",
location.region + '/' + location.zone } );
}
#endif
// Preserve those settings that have been made explicit.
auto newLocale = guessLocaleConfiguration();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -23,9 +23,19 @@
#include <cmath>
#include "utils/Logger.h"
#include "timezonewidget.h"
constexpr double MATH_PI = 3.14159265;
static constexpr double MAP_Y_OFFSET = 0.125;
static constexpr double MAP_X_OFFSET = -0.0370;
constexpr static double MATH_PI = 3.14159265;
#ifdef DEBUG_TIMEZONES
// Adds a label to the timezone with this name
constexpr static QLatin1Literal ZONE_NAME( "zone" );
#endif
TimeZoneWidget::TimeZoneWidget( QWidget* parent ) :
QWidget( parent )
@ -48,7 +58,12 @@ TimeZoneWidget::TimeZoneWidget( QWidget* parent ) :
// Zone images
QStringList zones = QString( ZONES ).split( " ", QString::SkipEmptyParts );
for ( int i = 0; i < zones.size(); ++i )
{
timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ).scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) );
#ifdef DEBUG_TIMEZONES
timeZoneImages.last().setText( ZONE_NAME, zones.at( i ) );
#endif
}
}
@ -78,6 +93,15 @@ void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location )
// Set zone
QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
#ifdef DEBUG_TIMEZONES
cDebug() << "Setting location" << location.region << location.zone << location.country;
cDebug() << " .. long" << location.longitude << "lat" << location.latitude;
cDebug() << " .. x" << pos.x() << "y" << pos.y();
bool found = false;
#endif
for ( int i = 0; i < timeZoneImages.size(); ++i )
{
QImage zone = timeZoneImages[i];
@ -85,8 +109,21 @@ void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location )
// If not transparent set as current
if ( zone.pixel( pos ) != RGB_TRANSPARENT )
{
#ifdef DEBUG_TIMEZONES
// Log *all* the zones that contain this point,
// but only pick the first.
if ( !found )
{
currentZoneImage = zone;
found = true;
cDebug() << " .. First zone found" << i << zone.text( ZONE_NAME );
}
else
cDebug() << " .. Also in zone" << i << zone.text( ZONE_NAME );
#else
currentZoneImage = zone;
break;
#endif
}
}
@ -109,13 +146,27 @@ QPoint TimeZoneWidget::getLocationPosition( double longitude, double latitude )
double x = ( width / 2.0 + ( width / 2.0 ) * longitude / 180.0 ) + MAP_X_OFFSET * width;
double y = ( height / 2.0 - ( height / 2.0 ) * latitude / 90.0 ) + MAP_Y_OFFSET * height;
//Far north, the MAP_Y_OFFSET no longer holds, cancel the Y offset; it's noticeable
// Far north, the MAP_Y_OFFSET no longer holds, cancel the Y offset; it's noticeable
// from 62 degrees north, so scale those 28 degrees as if the world is flat south
// of there, and we have a funny "rounded" top of the world. In practice the locations
// of the different cities / regions looks ok -- at least Thule ends up in the right
// country, and Inuvik isn't in the ocean.
if ( latitude > 62.0 )
y -= sin( MATH_PI * ( latitude - 62.0 ) / 56.0 ) * MAP_Y_OFFSET * height;
if ( latitude > 70.0 )
y -= sin( MATH_PI * ( latitude - 70.0 ) / 56.0 ) * MAP_Y_OFFSET * height * 0.8;
if ( latitude > 74.0 )
y += 4;
if ( latitude > 69.0 )
y -= 2;
if ( latitude > 59.0 )
y -= 4 * int( ( latitude - 54.0 ) / 5.0 );
if ( latitude > 54.0 )
y -= 2;
if ( latitude > 49.0 )
y -= int ( (latitude - 44.0) / 5.0 );
// Far south, some stretching occurs as well, but it is less pronounced.
// Move down by 1 pixel per 5 degrees past 10 south
if ( latitude < 0 )
y += int( (-latitude) / 5.0 );
// Antarctica isn't shown on the map, but you could try clicking there
if ( latitude < -60 )
y = height - 1;
@ -149,8 +200,28 @@ void TimeZoneWidget::paintEvent( QPaintEvent* )
// Draw zone image
painter.drawImage( 0, 0, currentZoneImage );
// Draw pin
#ifdef DEBUG_TIMEZONES
QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
// Draw latitude lines
for ( int y_lat = -50; y_lat < 80 ; y_lat+=5 )
{
QPen p( y_lat ? Qt::black : Qt::red );
p.setWidth( 0 );
painter.setPen( p );
QPoint latLine0( getLocationPosition( 0, y_lat ) );
int llx = latLine0.x() + ((y_lat & 1) ? -10 : 0);
int lly = latLine0.y();
for ( int c = 0 ; c < width ; ++c )
painter.drawPoint( c, lly );
}
// Just a dot in the selected location, no label
painter.setPen( Qt::red );
painter.drawPoint( point );
#else
// Draw pin at current location
QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
painter.drawImage( point.x() - pin.width()/2, point.y() - pin.height()/2, pin );
// Draw text and box
@ -173,6 +244,7 @@ void TimeZoneWidget::paintEvent( QPaintEvent* )
painter.drawRoundedRect( rect, 3, 3 );
painter.setPen( Qt::white );
painter.drawText( rect.x() + 5, rect.bottom() - 4, LocaleGlobal::Location::pretty( currentLocation.zone ) );
#endif
painter.end();
}

View File

@ -36,8 +36,6 @@
#include "localeglobal.h"
#define MAP_Y_OFFSET 0.125
#define MAP_X_OFFSET -0.0370
#define RGB_TRANSPARENT 0
#define ZONES "0.0 1.0 2.0 3.0 3.5 4.0 4.5 5.0 5.5 5.75 6.0 6.5 7.0 8.0 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.75 13.0 -1.0 -2.0 -3.0 -3.5 -4.0 -4.5 -5.0 -5.5 -6.0 -7.0 -8.0 -9.0 -9.5 -10.0 -11.0"
#define X_SIZE 780

View File

@ -40,14 +40,9 @@ class PlymouthController:
"/etc/plymouth/plymouthd.conf"])
def detect(self):
isPlymouth = target_env_call(["which", "plymouth"])
isPlymouth = target_env_call(["sh", "-c", "which plymouth"])
debug("which plymouth exit code: {!s}".format(isPlymouth))
if isPlymouth == 0:
libcalamares.globalstorage.insert("hasPlymouth", True)
else:
libcalamares.globalstorage.insert("hasPlymouth", False)
return isPlymouth
def run(self):

View File

@ -93,7 +93,7 @@ Calamares::JobResult PreserveFiles::exec()
prefix.append( '/' );
int count = 0;
for ( const auto it : m_items )
for ( const auto& it : m_items )
{
QString source = it.source;
QString dest = prefix + atReplacements( it.dest );
@ -162,7 +162,7 @@ void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap)
QVariantList l = files.toList();
unsigned int c = 0;
for ( const auto li : l )
for ( const auto& li : l )
{
if ( li.type() == QVariant::String )
{

View File

@ -21,43 +21,86 @@
* shipped with each module for correctness -- well, for parseability.
*/
#include <unistd.h>
#include <stdlib.h>
#include <iostream>
#include <yaml-cpp/yaml.h>
#include <QFile>
#include <QByteArray>
using std::cerr;
static const char usage[] = "Usage: test_conf [-v] [-b] <file> ...\n";
int main(int argc, char** argv)
{
if (argc != 2)
bool verbose = false;
bool bytes = false;
int opt;
while ((opt = getopt(argc, argv, "vb")) != -1) {
switch (opt) {
case 'v':
verbose = true;
break;
case 'b':
bytes = true;
break;
default: /* '?' */
cerr << usage;
return 1;
}
}
if ( optind >= argc )
{
cerr << "Usage: test_conf <file.conf>\n";
cerr << usage;
return 1;
}
const char* filename = argv[optind];
try
{
YAML::Node doc = YAML::LoadFile( argv[1] );
YAML::Node doc;
if ( bytes )
{
QFile f( filename );
if ( f.open( QFile::ReadOnly | QFile::Text ) )
doc = YAML::Load( f.readAll().constData() );
}
else
doc = YAML::LoadFile( filename );
if ( doc.IsNull() )
{
// Special case: empty config files are valid,
// but aren't a map. For the example configs,
// this is still an error.
cerr << "WARNING:" << argv[1] << '\n';
cerr << "WARNING:" << filename << '\n';
cerr << "WARNING: empty YAML\n";
return 1;
}
if ( !doc.IsMap() )
{
cerr << "WARNING:" << argv[1] << '\n';
cerr << "WARNING:" << filename << '\n';
cerr << "WARNING: not-a-YAML-map\n";
return 1;
}
if ( verbose )
{
cerr << "Keys:\n";
for ( auto i = doc.begin(); i != doc.end(); ++i )
cerr << i->first.as<std::string>() << '\n';
}
}
catch ( YAML::Exception& e )
{
cerr << "WARNING:" << argv[1] << '\n';
cerr << "WARNING:" << filename << '\n';
cerr << "WARNING: YAML parser error " << e.what() << '\n';
return 1;
}